v6.1.11
⚙️ [Maintenance]: Internalize runtime settings by phase (#402)
Runtime execution flags and test matrices are now owned by each phase object instead of a shared root Run/TestSuites contract.
Changed: Runtime execution state is phase-owned
Get-PSModuleSettings now enriches each phase with Desired/Enabled state and stores suites under the owning test phase:
Linter.Repository/Linter.SourceCodeBuild.Module/Build.Docs/Build.SiteTest.SourceCode.Suites,Test.PSModule.Suites,Test.Module.SuitesTest.Module.BeforeAllEnabled,Test.Module.MainEnabled,Test.Module.AfterAllEnabledTest.TestResults.Enabled,Test.CodeCoverage.EnabledPublish.Module.Enabled,Publish.Site.Enabled
Changed: Workflows now consume the new phase-owned schema
Reusable workflows and the root workflow were updated to reference phase-local state instead of Settings.Run.* and Settings.TestSuites.*.
Changed: Version resolution is scoped under publish phase
Plan.yml now stores resolved version metadata under:
Settings.Publish.Module.Resolution.VersionSettings.Publish.Module.Resolution.PrereleaseSettings.Publish.Module.Resolution.FullVersionSettings.Publish.Module.Resolution.ReleaseTypeSettings.Publish.Module.Resolution.CreateRelease
Build-Module.yml and Test-ModuleLocal.yml were updated to read this new location.
Changed: Settings schema deprecates root Run contract
Settings.schema.json no longer defines root TestSuites and marks root Run as deprecated.
Technical Details
- Preserved existing behavior by deriving phase
Enabledvalues from the same event/state logic previously used to buildRun.*. - Kept the input settings shape stable for repository owners; this refactor targets the internal enriched settings object passed between workflow jobs.
Related issues
- Opened directly from maintainer request (no linked issue).