Context
The new SourceResolver data model is complete in _resolver.py (PRs #1228, #1235), but the source field is still commented out on PackageSettings and VariantInfo in _models.py, and PackageBuildInfo has no source_resolver property. This is the foundation that all other wiring work depends on.
Parent epic: #1254 (Phase 1 — critical path, blocks all other phases)
Problem
The new resolver config cannot be used at runtime because the source field isn't active on the settings models and there's no way to access it through PackageBuildInfo.
Acceptance criteria
Files
src/fromager/packagesettings/_models.py
src/fromager/packagesettings/_pbi.py
src/fromager/packagesettings/__init__.py
Related
Context
The new
SourceResolverdata model is complete in_resolver.py(PRs #1228, #1235), but thesourcefield is still commented out onPackageSettingsandVariantInfoin_models.py, andPackageBuildInfohas nosource_resolverproperty. This is the foundation that all other wiring work depends on.Parent epic: #1254 (Phase 1 — critical path, blocks all other phases)
Problem
The new resolver config cannot be used at runtime because the
sourcefield isn't active on the settings models and there's no way to access it throughPackageBuildInfo.Acceptance criteria
source: SourceResolver | Nonefield is active on bothPackageSettingsandVariantInfoSourceResolveris importable fromfromager.packagesettingsPackageBuildInfohas asource_resolverproperty that returns variant-levelsourceif set, else package-levelsource, elseNonesource:config produces the correctSourceResolverinstancepbi.source_resolverreturnsNonewhen nosource:is configured (legacy config unchanged)Files
src/fromager/packagesettings/_models.pysrc/fromager/packagesettings/_pbi.pysrc/fromager/packagesettings/__init__.pyRelated