-
Notifications
You must be signed in to change notification settings - Fork 252
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
fix: version determination of 4 branch GitFlow repo #789
Comments
@ZionStage, Thank you for submitting your issue. I believe your branching strategy is almost exactly the Git Flow strategy with a slight variation to include a separate The downside, Git Flow is a fairly complex workflow and we may not be covering all scenarios. In fact, as I was just yesterday refactoring the testing code for angular style repository scenarios, and the current testing does not cover merges of Git Flow branches. This gap in test coverage could have some bugs in it that you are experiencing. To help isolate the problem further, can you provide the output log of one such circumstance where it creates the version with the wrong token but with debug level verbosity enabled. The option is Secondly, if you can confirm that you are using the included angular parser? If not, please specify which included parser or provide the code for your custom parser. Lastly, what is your merging strategy? I suspect it is just |
Hi @codejedi365, thanks for your quick answer Here is an example of something I don't quite understand with the implemented logic. I just merged The parser I use is the included angular parser indeed, I did not change anything concerning the parser, and it is the default parser from what I understand. As for my merging strategy, it is just Here's the tip of the git graph I have. Let me know if there are still some gray zones or if you need me to provide more info |
That definitely sounds like the incorrect version determination. Thank you for the info, I didn't find anything yet but should have some time tomorrow. Would you be able to run the version determination again without the latest incorrect version? Right now it is hard to tell since it thinks it evaluated correctly and no new version is required Steps:
|
Of course, no problem. I followed your steps and here are the resulting logs : next_beta_version_stderr.log Just so you know, I created a feature branch from development for a new feature. I just finished it today and the last version is |
@ZionStage, The logs along with the picture were really helpful. I pieced apart logs to identify the flawed decision. Will start reviewing the code for optimizations and improvements. It seems to not to fully evaluate merges but only walks down the latest parent chain of commits until it reaches a tag and stops. It forgets to look down the beta branch for tags, and it also forgets to use the prerelease token configuration that it previously identified for the beta branch. Lots of unintended behavior, thank you for bringing this to our attention! |
Glad to know this was helpful to you. Have a nice one ! |
Just for an update on this, I believe I have found a fix, I'm working on building a test case to prevent regression however it is taking a bit longer fitting into the newer test structure. |
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
Hi @codejedi365, facing the exact same issue. I've tried your fix in codejedi365@7f65a78 and it was able to correctly compute the next version as expected. Do you know when you will be able to release the fix? thanks |
Hi @mac-vtl, thanks a bunch for validating my fix worked for you. As for when it will be released, I got a bit stuck with the testing earlier. I want to validate that it doesn't break other git branching strategies before release. I'll circle back around to this fix and see if I can get it in over the next two months. Hopefully sooner than later but life has thrown me a curve ball and my time is limited at the moment. |
Hey, we are also quite keen on this feature to enable some of our more advanced CI cases. |
@jbw-vtl, thank you for being willing to help. I've just been very busy and unable to put much time into this project for the past month. I believe the fix resolves the merge commit to separate release branch problem as it adds a filter to only match on prereleases of the same token rather than all prereleases within the HEAD's ancestry. I have not thought through all the alternative branching strategies nor finished the test case for a 4x release branch Git Flow branching strategy. So as of this time it's more of a comfort level that it doesn't break other things. And while doing that most of the other test cases don't have any merge commits which makes me more worrisome. That's what I have been working on in a different branch as the precursor to this resolution. |
It has been 60 days since the last update on this confirmed issue. @python-semantic-release/team can you provide an update on the status of this issue? |
No update yet but this is something I plan to look at again within this next month. |
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
It has been 60 days since the last update on this confirmed issue. @python-semantic-release/team can you provide an update on the status of this issue? |
Should be accomplished and released over the next week |
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
In the case where there are alpha and beta releases, we must only consider the previous beta release even if alpha releases exist due to merging into beta release only branches which have no changes considerable changes from alphas but must be marked otherwise. Resolves: python-semantic-release#789
🎉 This issue has been resolved in version 9.15.2 🎉The release is available on: |
Hello everyone (and a happy new year to all),
I have been using
python-semantic-release
for 2 months now, and I still encounter problems setting it up for my current work flow.I have a python package with 3 main branches (
main
,beta
anddevelopment
) and some feature branches (feat-*
). I need to have a dependable versioning system on all these branches in order to generate a front end client in the CI. My workflow is as is :development
development
intobeta
beta
intomain
main
intobeta
andbeta
intodevelopment
I have the following conf file :
When creating a feature branch the versioning works well, however as soon as I merge into
development
and mergedevelopment
intobeta
I run into some versioning problems.Sometimes even if I'm on
beta
the output version is taggedalpha
, sometimes the output version does not have apre-release
token.Obviously, there's something wrong with my configuration for my workflow, but I can't seem to pinpoint what it is even after reading the whole docs. So here are my questions :
python-semantic-release
work with the workflow I described ?Thank you !
The text was updated successfully, but these errors were encountered: