Replies: 12 comments 8 replies
-
Super-quick answer: Sure. Longer answer - to me the workload around patch releases is mainly:
The actual release is now done through a github actions workflow and is not too much work, especially for patch releases. Another question though - what kind of frequency would you be looking for? I wouldn't be against doing minor releases more often (I slipped on this latest one, but could try to do better in future 😉)
Given what was said above, if you wanted to update any missing notes in a master PR, then make a PR against the release branch (e.g. 2.2.X) of cherry-picked bug fix commits, that would be a great help. In some cases, I suppose there might need to be some prior discussion if there are multiple inter-related fixes/issues on the go. |
Beta Was this translation helpful? Give feedback.
-
To follow up on this: I have had the same experience (waiting for the release of bug fixes) with other projects several times, so I fully support this. I have been a fan of "Release early, release often" since I read The Cathedral and the Bazaar, and now this is much easier than at the time that was written - I just had to add my 2 eurocent here :) |
Beta Was this translation helpful? Give feedback.
-
I tend agree with @mrbean-bremen's response and would say as often as possible :) If the process is more or less automated, a release after every accepted PR would be great.
I would be happy to do that if that is the preferred workflow. |
Beta Was this translation helpful? Give feedback.
-
We've been using semantic-release for this in dcmjs and I have found it very handy to have a link between the commit messages and the release types and then automatic packaging. It makes the intent of the commits/PRs clear and then handles the details. There's a python option but I have never tried it. |
Beta Was this translation helpful? Give feedback.
-
I'm not sure I'm ready for that kind of granularity on releases - and besides, by my understanding of semantic versioning, patch releases should only be bug fixes, not new features. There is also always the option of people
Hmmm, again I know this is a common workflow, but I'm reluctant to change what we have now, at least at this point. I think they are pretty equivalent, just comes down to what is labelled what. 'Master' for us is basically 'dev' - but since most of the action happens there, and not generally over long periods with conflicts emerging, I think it works fine. There is also a worry in my mind that fixes sometimes inadvertently create new bugs - and at least if that occurs in master, such a new error can be confined to a small number of users rather than everyone getting hit. But I am hearing the message from several key users here, that more releases would be much appreciated. I'd suggest we try the increased patch release path discussed above first and see how that goes. |
Beta Was this translation helpful? Give feedback.
-
Ok! Let's stick to the existing workflow. I will work on a patch release branch (bugfixes only) as you suggested. |
Beta Was this translation helpful? Give feedback.
-
That's true and works fine for applications. However, for a library (e.g., highdicom) that is itself distributed via pypi, this is not a great option. |
Beta Was this translation helpful? Give feedback.
-
That's true, but that just means that you increase the minor version instead of the patch version for a new release. It would just mean that the minor version increaes faster than before.
As already mentioned, this is not an option for libraries, and in my experience, hardly anyone does it, or wants to do this, because it feels like an unstable version.
This is basically what we do in large PRs. I'm generally not a friend of large PRs or long-running feature branches (they tend to introduce regressions, especially with several such branches existing at once), but try to go for incremental changes as much as possible, and holding the main branch stable.
That is true, and the most valid concern IMO, but there are a couple of things that would mitigate that. Ok, I think I made my point - will stop preaching now 😏 |
Beta Was this translation helpful? Give feedback.
-
I'm happy either way. I do think it gets increasingly difficult to do cherry-picked bugfix releases as more and more regular PRs get merged, though. |
Beta Was this translation helpful? Give feedback.
-
@darcymason I created a pull request for the patch release targeting the |
Beta Was this translation helpful? Give feedback.
-
@darcymason @scaramallion the last patch release (v2.2.1) went well in my opinion. However, I still think that releases are not frequent enough and release planning is too strict. While I generally think it's good practice to plan for the next release (e.g., v2.3), I also think that this can create problems. For example, I would now like to update the dictionary to make new attributes available (#1514) and it would be desirable for those changes to become available via a package on pypi as soon as possible. This should probably not just be a patch release, but I also don't want to wait for all the other features planned for v2.3 to be finalized beforehand. In conclusion, I suggest moving away from strict release planning (for minor versions) and instead just release a new version as soon as critical changes have been introduced (and tested). Thoughts? |
Beta Was this translation helpful? Give feedback.
-
What I usually do after a fix that is not critical is asking if the reporter needs a released version, or is ok with the master and a later release, and make a patch release depending on the response. |
Beta Was this translation helpful? Give feedback.
-
During the development of highdicom, we having been regularly contributing bug fixes to pydicom, but recently found ourselves waiting for critical fixes to be included in a new release and for the next version of the package to become available on pypi. This currently prevents us from releasing highdicom more frequently.
Would it be possible to create and publish patch releases for bug fixes more frequently? Can we somehow help in expediting the release life cycle?
Beta Was this translation helpful? Give feedback.
All reactions