Skip to content

Preserve deprecated explicit pre-release mode - #20246

Merged
charliermarsh merged 3 commits into
charlie/transitive-prerelease-pubgrubfrom
charlie/deprecate-explicit-prerelease
Jul 8, 2026
Merged

charliermarsh merged 3 commits into
charlie/transitive-prerelease-pubgrubfrom
charlie/deprecate-explicit-prerelease

Conversation

@charliermarsh

@charliermarsh charliermarsh commented Jul 8, 2026 •

Copy link
Copy Markdown
Member

Summary

The parent PR currently treats explicit as an alias for if-necessary-or-explicit, which changes existing configurations to fall back to pre-releases when no stable candidate satisfies the active constraints.

This restores the standalone explicit policy with its legacy solve-static behavior: only first-party requirements with explicit pre-release specifiers authorize pre-releases, packages without that authorization do not fall back, and transitive pre-release requirements do not enable the mode dynamically. Keeping the authorization set fixed before resolution preserves PubGrub's candidate-universe assumptions, including the legacy scoped-override behavior.

(The mode remains deprecated, but we warn rather than failing.)

@charliermarsh
charliermarsh marked this pull request as ready for review July 8, 2026 15:28
@charliermarsh
charliermarsh merged commit 4c394d2 into charlie/transitive-prerelease-pubgrub Jul 8, 2026
55 of 56 checks passed
@charliermarsh
charliermarsh deleted the charlie/deprecate-explicit-prerelease branch July 8, 2026 15:30
charliermarsh added a commit that referenced this pull request Jul 10, 2026
## Summary

The parent PR currently treats `explicit` as an alias for
`if-necessary-or-explicit`, which changes existing configurations to
fall back to pre-releases when no stable candidate satisfies the active
constraints.

This restores the standalone `explicit` policy with its legacy
solve-static behavior: only first-party requirements with explicit
pre-release specifiers authorize pre-releases, packages without that
authorization do not fall back, and transitive pre-release requirements
do not enable the mode dynamically. Keeping the authorization set fixed
before resolution preserves PubGrub's candidate-universe assumptions,
including the legacy scoped-override behavior.

(The mode remains deprecated, but we warn rather than failing.)
charliermarsh added a commit that referenced this pull request Jul 14, 2026
## Summary

The parent PR currently treats `explicit` as an alias for
`if-necessary-or-explicit`, which changes existing configurations to
fall back to pre-releases when no stable candidate satisfies the active
constraints.

This restores the standalone `explicit` policy with its legacy
solve-static behavior: only first-party requirements with explicit
pre-release specifiers authorize pre-releases, packages without that
authorization do not fall back, and transitive pre-release requirements
do not enable the mode dynamically. Keeping the authorization set fixed
before resolution preserves PubGrub's candidate-universe assumptions,
including the legacy scoped-override behavior.

(The mode remains deprecated, but we warn rather than failing.)
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.

1 participant