-
Notifications
You must be signed in to change notification settings - Fork 256
fix(algorithm): enable maintenance prereleases #864
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
codejedi365
merged 7 commits into
python-semantic-release:master
from
codejedi365:fix/enable-maintenance-prereleases
Dec 15, 2024
Merged
fix(algorithm): enable maintenance prereleases #864
codejedi365
merged 7 commits into
python-semantic-release:master
from
codejedi365:fix/enable-maintenance-prereleases
Dec 15, 2024
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
928aef0
to
54136f8
Compare
408b500
to
0db9a01
Compare
0db9a01
to
236101b
Compare
236101b
to
5d33b30
Compare
2e06030
to
8314655
Compare
8314655
to
c0623a0
Compare
188cbb9
to
68e19fa
Compare
2716519
to
967cf9f
Compare
Adds an automatic cancelation of in-progress pipelines to limit action minutes used (especially for e2e testing) when developer has already pushed a new update
… support & prereleases
This clarifies repeated function calls and pytest parameter names included the unclear assert diff. Adds additional tests to check bad states for failures and refactored to match new function signature.
967cf9f
to
f61db36
Compare
refactor duplicate logging messages and flow to process out odd cases in a fail fast methodology. This removes the reliance on any last full release that is not within the history of the current branch. Resolves: python-semantic-release#861
f61db36
to
c85d520
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
Refactors the version incrementation algorithm to handle prereleases & official releases when supporting more than the latest major release
Resolves: Unclear how to release a patch of an old version #861
Rationale
This change implies that where ever you are releasing from within the repository, the only tags you know about are the ones in your direct history line. This means that prereleases of older versions can be created which were not possible as documented in #861. Official releases were possible of older versions but this maintains that implementation.
How you tested
I added 2 more repo rebuild tests that demonstrate and validate the use of PSR for a dual version support environment of both official releases and prerelease variants of the last major version (after the latest major version has been released).
Note that the rebuild repos will need to demonstrate going back to the latest version and releasing a new release but currently the test infrastructure does not support building a changelog relevant to its git history.
We also could extend a dual version environment to GitHub Flow and Git Flow strategies but I did not take the additional time to make that implementation as I don't think it added a lot of value.
How to verify
pytest --comprehensive
, see failures:test_trunk_repo_rebuild_dual_version_spt_official_releases_only
test_trunk_repo_rebuild_dual_version_spt_w_official_n_prereleases
test_increment_version_no_major_on_zero
test_increment_version_invalid_operation
pytest --comprehensive
and see failures are resolved