Skip to content

Conversation

@DamianReeves
Copy link
Member

Problem

Deployment workflow failing on all platforms after PR #199 merge with E2E test regression:

  • "Verify JSON output for invalid file includes errors" failing
  • Expected IsValid=false but getting IsValid=true for invalid files
  • This is a new regression introduced by the ILLink descriptor changes

Root Cause

The initial ILLink.Descriptors.xml in PR #199 was too narrow - it only preserved specific types and resources, but JsonSchema.Net uses extensive reflection for JSON Schema validation that requires the entire assembly to be preserved during trimming.

Solution

Update ILLink.Descriptors.xml to preserve the entire JsonSchema.Net assembly with preserve="all":

  • Keeps resource preservation with correct dotted naming convention
  • Removes type-specific preservation (SchemaLoader, SchemaValidator)
  • Adds full assembly preservation for JsonSchema.Net

Testing

✅ Verified locally with trimmed executable:

  • Invalid file correctly returns IsValid=false
  • Valid files correctly return IsValid=true
  • JSON output parsing works correctly
  • All schema versions (v1, v2, v3) load successfully

Impact

  • Slightly larger executable size due to preserving JsonSchema.Net
  • Should resolve all platform E2E failures from previous deployment
  • No functional impact - validation works correctly

Related

🤖 Generated with Claude Code

Update ILLink descriptor to preserve the entire JsonSchema.Net assembly
instead of specific types. The library uses extensive reflection for
JSON Schema validation which requires all types to be available.

**Changes**:
- Preserve JsonSchema.Net assembly completely (preserve="all")
- Keep resource preservation with correct dotted naming convention
- Remove type-specific preservation (was too narrow)

**Testing**: Verified locally that trimmed executable correctly validates
both valid and invalid IR files with proper IsValid results.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@DamianReeves DamianReeves merged commit dc63c72 into main Dec 17, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants