-
-
Couldn't load subscription status.
- Fork 300
feat(bump_rule): add BumpRule, VersionIncrement, Prerelease Enum #1518
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
base: master
Are you sure you want to change the base?
feat(bump_rule): add BumpRule, VersionIncrement, Prerelease Enum #1518
Conversation
bb305ad to
8a6c84f
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1518 +/- ##
==========================================
+ Coverage 97.33% 98.29% +0.95%
==========================================
Files 42 59 +17
Lines 2104 2760 +656
==========================================
+ Hits 2048 2713 +665
+ Misses 56 47 -9
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
8a6c84f to
8dd8d42
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is definitely a great pull request that cleans up a lot of legacy code. However, we need to be cautious about maintaining backward compatibility. We can likely add some of the logic incrementally while keeping compatibility for a few minor versions. After that, we can bump the major version and remove the compatibility handling code.
commitizen/commands/bump.py
Outdated
| return bump.find_increment(commits, regex=bump_pattern, increments_map=bump_map) | ||
| return VersionIncrement.get_highest_by_messages( | ||
| (commit.message for commit in commits), | ||
| lambda x: self.cz.bump_rule.get_increment(x, is_major_version_zero), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this might be a breaking change for other non-standard czs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'll need a way to keep backward compatibility or move it to 5.0.0 instead (but that would be a pity since the PR looks os good)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you provide more details about why this might be a breaking change for non-standard cz s? I am not familiar with non-standard cz. Thanks
83c02fe to
650c720
Compare
bb61b44 to
9cacfcb
Compare
|
Can we do squash rebase on this PR when it is ready for merge? |
yep, I can do that |
3cf6689 to
6d0aa11
Compare
|
What are the next steps for this PR? If there are backward compatibility issues, I can adjust it so that this PR can be checked in. Thanks |
6d0aa11 to
972d9f5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Core feature change
|
We can get back to this PR after #1598 |
Related issue: #129
Original PR: #1431
Description
Please see
bump_rule.py,bump.py,cz/base.py,version_scheme.pyandcommands/bump.py(~350 lines).The rest 1000+ lines are just tests and renaming.
CustomBumpRule.Simplified code.SemVerIncrementand replaceMAJOR,MINOR,PATCHwith the Enum.Prereleaseis Enum.find_incrementlogic inSemVerIncrement.get_highest_by_messages.find_incrementwas the combination of 2 features: "finding the highest semantic version increment" and "parsing the semantic version increment from each git commit message".Checklist
Code Changes
poetry alllocally to ensure this change passes linter check and testsDocumentation Changes
poetry doclocally to ensure the documentation pages renders correctlyExpected Behavior
Steps to Test This Pull Request
Additional Context