You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug: new-resolver-config feature branch] Reject source and legacy settings mixed across package and variant levels #1368
Summary
A package-level source can be combined with variant-level legacy source settings. Validation accepts the config even though the effective settings for that variant conflict. Context PR #1307 added separate validators to PackageSettings and VariantInfo. The package validator checks package-level legacy fields, the variant validator returns early when that variant has no source. Neither catches a conflict spread across both levels.
This affects the new-resolver-config feature branch.
Steps to reproduce
Load these package settings with PackageSettings.from_string() and select the cpu variant:
The config loads. For cpu, PackageBuildInfo.source_resolver could return PyPISDistResolver, while PackageBuildInfo.pre_built is True.
Expected behavior
Loading the config raises a clear validation error identifying source and variants.cpu.pre_built, before resolution or building begins.
Acceptance Criteria
Reject package-level source combined with an explicitly set variant pre_built or wheel_server_url.
Activity
fix(packagesettings): reject cross-level source conflicts