Summary
Support policy-based handling of the floating latest package alias so preview releases do not replace the production-safe stable alias.
Problem
Some consumers always deploy latest in production. That alias should continue to point to the newest stable release.
Preview users should opt in explicitly by using a versioned preview package name instead of consuming latest.
Proposed configuration
Allow Package.Latest to accept these values:
"never" — never create or update a floating alias
"stable" — only stable releases update latest
"always" — both stable and preview releases update latest
Recommended configuration:
"Package": {
"Latest": "stable"
}
Backward compatibility
Temporarily support the existing boolean values:
true => "always"
false => "never"
The string values should be the preferred configuration going forward.
Documentation and deprecation approach
- Docs and examples should show only the string-based policy values.
CHANGELOG.md should mark boolean Package.Latest values as deprecated.
- Add clear
TODO: markers where legacy boolean handling exists so it is easy to remove in the next major version.
Acceptance criteria
Package.Latest = "stable" publishes the versioned package for all releases, but only updates latest for stable releases.
Package.Latest = "always" updates latest for both stable and preview releases.
Package.Latest = "never" disables the floating alias entirely.
- Legacy booleans still work for now, with
true mapped to "always" and false mapped to "never".
- Docs and examples present only the string-based values as the supported configuration style.
CHANGELOG.md records boolean deprecation.
- Code contains TODO markers for removing legacy boolean support in the next major version.
Why this helps
latest stays trustworthy for production.
- Preview consumers must opt in explicitly.
- Nova gets a clearer and more extensible configuration model without an immediate breaking change.
Summary
Support policy-based handling of the floating
latestpackage alias so preview releases do not replace the production-safe stable alias.Problem
Some consumers always deploy
latestin production. That alias should continue to point to the newest stable release.Preview users should opt in explicitly by using a versioned preview package name instead of consuming
latest.Proposed configuration
Allow
Package.Latestto accept these values:"never"— never create or update a floating alias"stable"— only stable releases updatelatest"always"— both stable and preview releases updatelatestRecommended configuration:
Backward compatibility
Temporarily support the existing boolean values:
true=>"always"false=>"never"The string values should be the preferred configuration going forward.
Documentation and deprecation approach
CHANGELOG.mdshould mark booleanPackage.Latestvalues as deprecated.TODO:markers where legacy boolean handling exists so it is easy to remove in the next major version.Acceptance criteria
Package.Latest = "stable"publishes the versioned package for all releases, but only updateslatestfor stable releases.Package.Latest = "always"updateslatestfor both stable and preview releases.Package.Latest = "never"disables the floating alias entirely.truemapped to"always"andfalsemapped to"never".CHANGELOG.mdrecords boolean deprecation.Why this helps
lateststays trustworthy for production.