Good practices for release management #152
Replies: 5 comments 4 replies
-
It seems the main purpose of "release/vX" branches is only to test the release before publishing it:
But I think we can get the same result using a tag. That's what we are doing right now. We create a new tag, for example: |
Beta Was this translation helpful? Give feedback.
-
I've asked on the GitHub Action Template repo. |
Beta Was this translation helpful? Give feedback.
-
I've also asked on the Community Forum about how GitHub uses tag or branches when it imports an action to be used in a workflow. |
Beta Was this translation helpful? Give feedback.
-
After reading again the documentation I think I've found the reason why at some point you need release branches anyway.
At this point you want people using It basically the problem of maintaining different major versions. Instead of waiting until you find a bug in the major version, you can create the servicing branch even before releasing the final version. That way:
It seems the standard name for those branches is: I was trying to find out if that branch name has a special treatment on GitHub but I have not found anything. You can use an action using a branch name, so I guess you only need to do it like this:
This comment should answer question 1 in my first comment (Whether we continue using tag releases or we switch to branch releases). In our case, it has an extra side effect. Since we are generating releases automatically with a workflow, when you create the |
Beta Was this translation helpful? Give feedback.
-
In our latest meeting, we were discussing again this topic. We agree that maybe using GitFlow could be a good idea for some reasons:
Some of the extra ideas we want to apply on top of GitFlow:
I think we could create the branches for GitFlow before publishing the first stable release. |
Beta Was this translation helpful? Give feedback.
-
We forked the repo from the official Typescript GitHub Action Template. On its README it explains how to publish to a distribution branch.
We have been discussing the release process. We agreed that each commit should build the app (in the
dist
folder).But the template and the GitHub Actions toolkit docs promote the use of "releases/v1, releases/..." branches.
Currently, we are not using releases branches but we should know exactly why they are used for.
We are using tags and we include the build app (
dist
folder) on each commit, that seems to be enough for users to use any specific version they want to use: concrete commit hash or tag release (following semantic versioning).It seems both methods are acceptable:
But on other part of the official documentation, It seems GitHub promotes not to include the built app on each commit, but only on tag for releases. I suppose you can do this with tag releases of branch releases.
So we should review:
I do not see any reason to change what we are doing right now. In fact, using an concrete commit in a workflow can be a fast way to apply an action patch without releasing a new version. Or maybe that's exactly the reason why we should not do it, because it forces you to use semantic versioning. In that case, branches seem to be a faster way to apply fixes and guarantee therelease inmutability.
cc @da2ce7 @yeraydavidrodriguez
LINKS
Beta Was this translation helpful? Give feedback.
All reactions