Skip to content

[Discussion] Bug fixes across branches #25

@robbie-demuth

Description

@robbie-demuth

First of all, I wanted to say thanks for providing a great explanation of how to effectively leverage Git tags and branches in order to support workflows for releasing semantically versioned artifacts. I'm currently working to define the release process for a project I'm working on and found this extremely useful.

I wanted to discuss the Bugfixes section in a bit more detail. In particular, you mention that bugfixes in a patch release can be ported to the branches for minor and major releases by merging upwards. You also describe how bugfixes in master can, if necessary, be ported to the branches for minor and patch releases by cherry picking downwards.

What are your recommendations for porting bugfixes not upwards or downwards, but across branches? Let's say, for example, that I've released v1.0.0, but am still working toward v1.1.0 when an issue is noticed with the former. In this situation, it makes sense to branch from v1.0.0, fix the issue, and merge the branch back into release/1.Y because v1.1.0 has not yet been released. What if it has been released and is also affected by the issue? Given that minor versions shouldn't introduce backward incompatible changes, should the release/1.0.z branch be merged into the release/1.1.z branch or should the issue be fixed directly in release/1.1.z without providing a fix in release/1.0.z?

In the same light, what if v2.0.0 has already been released and is also affected by the issue? I assume in this case that the merge into release/2.0.z is necessary given that users may have a more difficult time adopting the new major version. Does that make sense?

I hope creating an issue for this discussion is okay. If not, feel free to close it and let me know what I should do instead. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions