-
-
Notifications
You must be signed in to change notification settings - Fork 212
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
Automate more of the release process and document it (including rationale) #860
Comments
Adding some more thoughts here. I think more of the current process can be automated, making releases easier and less error-prone. I'll provide a framework for how I'd like the process to work, and we can discuss what needs to be changed about it.
|
The issue with I like to think about these things in a ”documentation first” perspective. It is enough to look at the current instructions for how to publish a release to see that it is a bit error prone. What if the instructions looked like so:
I'm not sure how easy it is to achieve, but I don't see any obvious blockers. We need to figure out how to commit changes from CI, but I've done that in other pipelines (even if on Gitlab). I imagine that the npm script will start by pushing a tag, and probably the rest can happen in CI. |
So, if accumulating changes is the goal, then this makes sense, but even if we didn't have a dev branched and we developed features off of Would the npm task to publish also merge Is it necessary to have the approve button? I assume this is to ensure that not just anyone can publish, so I suppose that makes sense, but this also works I think by restricting who can merge to published, and making the merge to published kick off the release process. Then there's no need to approve because only authorized devs can merge to published (eliminating one more step). |
I mean since I both want the default README people find to reflect what is published and want to accumulate changes,
Yes, we're om the same page here. I meant that those proposed instructions of mine would be all. When those steps are done, we are done and nothing can slip through because we forget it. About the approve step, it is not about preventing someone to publish. All who have push access to this repo can and should be able to release, I think. (Even if it is only you and I who dare. 😄). The step is there because I sometime need to chill a bit and have a chance to change my mind. I sometimes inspect the VSIX there and sometimes also try it out. |
This is not what I meant, sorry if I was unclear. What I meant was that if a merge/push to
Fair enough 😄 |
Also, to be fair, maybe I'm trying to lump more than one concern into this issue. Maybe a step toward more automation with the current approach is best. |
And what I mean is that I do not want a merge of a PR to cause a release. Because then we cannot accumulate changes and test them together before releasing. This is called Real Options strategy. If we merge PR's to |
I see that having the dev branch gives us the option to accumulate changes before release, so I agree with keeping it, but even if we didn't have it, all new changes would still be tested with other latest changes since we'd be merging them in from Let's forget about PRs of changes going to So going off your proposed steps above:
Keep in mind that the bumping of the version and the publishing of the docs would be done by the CI pipeline. (I don't know the details of the version bump + commit but I assume it's possible.) This also ensures that |
I have, at least twice, happened to merge PRs that are pointed at master/published. The approve step would stop it, but anyway... Also, that updating some docs on |
Those are very good points! Ok... no merge release trigger. We'll keep the npm script and just automate the existing process better. 👍 |
Not sure what pipeline step is saved by the merging vs the npm script, but we could maybe push towards a |
I was referring to if we add a pipeline step that merges |
Ah, so then pushing to a third branch would risk add pipeline steps instead. 😂 |
I think with the current improvements we want, adding a pipeline step to merge dev to published is a good idea. Not sure about if we were to use a release branch. |
Added a note in the title to document the release process after we improve it. Was thinking if we include points from this discussion then we're less likely to have to remember or repeat ourselves in the future. |
We should try to get the docs updated and published as part of a release too, right? |
Yeah, I'm planning to include that with these changes. |
Taking a shot at revising these steps before working on them:
So, with the above, when we're ready to release, we would, from
|
I like it! |
I think we can improve the CI/CD to publish from the master branch when a commit is tagged. I just realized that after the last release I must have forgotten to merge dev into master, but now dev is newer and another release needs to be made before a merge.
I think we can prevent this issue and ensure that what's on master is always the latest release by having a similar process as now, but instead of making the deploy happen from dev when a tag is pushed, we can make it happen on master.
I'm not sure this is wise though. What do you think, @PEZ?
The text was updated successfully, but these errors were encountered: