-
-
Notifications
You must be signed in to change notification settings - Fork 269
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
Add --exact option to bump, to force it to honor the increment for prereleases #981
Conversation
ae0c133
to
66896bc
Compare
For the record, I'm thinking of wrapping up some of the functionality from my gitlfow autopilot demo into a |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #981 +/- ##
==========================================
+ Coverage 97.33% 97.44% +0.11%
==========================================
Files 42 55 +13
Lines 2104 2392 +288
==========================================
+ Hits 2048 2331 +283
- Misses 56 61 +5
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
9779ee4
to
255878c
Compare
Hey, I'll have to read this in detail once I'm no longer sick. I would like to hear the thoughts from @noirbizarre @Lee-W @jenstroeger |
We have a longer holiday in the following week. I think I'll have some time to check |
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.
Hi @chadrik , thanks for your great contribution! I'm good with the overall implementation. But I'm not sure whether we should name this argument as exact
. I'm not able to understand it even after reading it for a while. Would it be possible for us to come up with a more descriptive name? @woile @noirbizarre would appreciate if you have some idea on this one.
Also we might need some documentation and examples for this chanhge
commitizen/cli.py
Outdated
"action": "store_true", | ||
"help": ( | ||
"treat the increment and prerelease arguments " | ||
"explicitly. Disables logic that attempts to deduce " |
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.
"explicitly. Disables logic that attempts to deduce " | |
"explicitly. Disables logic that attempts to deduce " |
What this flag does is apply the exact changes that have been specified (or determined from the commit log). For example, Here are some new examples that I think are illustrative of the new behavior:
The second to last example is particularly interesting. without Here are some other potential names:
I'm open to ideas! |
This is helpful! It would be great if we could add these examples somewhere in |
Sorry, I'm on a trip without computer and with very limited connectivity. I'll be able to review it next week. |
Forgot to say, this seems helpful and I'm totally okay with it. |
255878c
to
9f7b3d4
Compare
I made some updates:
|
9f7b3d4
to
1d66c3d
Compare
When bumping a prerelease to a new prerelease, honor the detected increment and preserve the prerelease suffix, rather than bumping to the next non-prerelease version
This avoids calls to git and additional validations that are not necessary when using --increment
This provides some future proofing for implementing new version progression behaviors
e6da5df
to
4d666cb
Compare
Note: I changed the This provides some future proofing for implementing new version progression behaviors, since this is a subjective area with plenty of room for valid and differing opinions. For example, if someone creates an issue complaining about how the linear progression change introduced in #799 broke backward compatibility for them, it would be possible to implement a "legacy" mode. I could also foresee a "gitflow" mode that determines |
nudge |
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.
Really good idea, I like the new naming, and the docs. Code looks good.
I'll merge Monday if there are no other comments 👍🏻
Sounds good! I'm traveling these days, but i've checked before the minor fixes. I think I'm good with merging it as well! |
Description
PR #799 just merged which adds some nuance to prerelease bumping by improving the default logic for when to bump major versions and prerelease suffixes. While this is an improvement over the original logic, it's still very prescriptive and I think there's room for debate over whether this is a one-size-fits-all solution. There are scenarios where more control is required.
This PR adds
bump --exact
to honor the increment when a prerelease suffix is present, which provides the user with more control rather utilizing the current approach with its various edge cases.I made this change in support of a gitflow-on-autopilot workflow (demo here) using the common set of 3 branches:
develop
,staging
,master
. In this autopilot workflow, when a sprint ends and it's time to create a new release, all of the branches merge to the right (develop
→staging
→master
), anddevelop
is restarted for the next round of beta development. When restarting beta, I wantcz bump --increment MINOR --prelease beta
to increment to1.0.0b5 → 1.1.0b0
Here's a sample git graph:
Checklist
./scripts/format
and./scripts/test
locally to ensure this change passes linter check and testExpected behavior
These tests cases compare the behavior with and without
exact
:Steps to Test This Pull Request
Additional context