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
chore: bootstrap release-release for automatic changelog & version changes #7209
Conversation
d6f1638
to
6e41625
Compare
Hey @Dschoordsch @rafaelromcar-parabol , I updated the Release Please workflow, but still need to discuss with you about the overall release process, for now (you can see the demo above):
|
The bot should create a PR that targets staging with the release version and changelog entries prepared. Release owner reviews it, merges it and then staging is tested. I wonder how the bot would do the tags in this case? This would only work for fast-forward merge, wouldn't it? |
If it targets Staging, it would only create the PR and add the content once we have merged master into staging, isn't it? We will then not see the changes that are merged into master and waiting to be released. I would say we could change our current release process to something like:
I see a problem: we should not merge anything into master while the release is ongoing. But well, I think it's not a big deal to do that at the end. It does not stop developers from working, it just stops integrating their work into master for a while. Just remember that once we would be into the Kubernetes logic, we will only have master and dev-branches. No prod and no staging. Master will be used to test things and build the docker image everything we merge the PR from Release Please (actually, every time there is a tag). Then, deployment will be done in a different place using a similar logic to the one I just described. |
I was playing with release-please in the terraform module I'm building for the future GCP deployments and I found out it doesn't add to the Changelog commits starting with chore or anything else than fix and feat I think. Also, I think that, if using release-please, we really should start using the scope in all our commits to master. It makes the changelog much easy to read that way. Here is my current PR by Release Please |
@Dschoordsch When the Release PR is merged, release-please should automatically add the corresponding git tag. As the document said:
And that PR will go through these lifecycles in the process: Footnotes |
@rafaelromcar-parabol yes, this could be interesting. I just got another very simple solution:
If
🤔 What if the branch created by the release PR is deployed directly to the
Is it theoretically possible? I think I'll add a diagram of the branches later to make the flow clearer. 😁 |
I've added the Git branching diagrams, hopefully it will help:
view on diagrams.net (previously draw.io) |
@JimmyLv I'm not sure I get the full picture. How is this whole process triggered?
Would this bot do 1) and 3)? @rafaelromcar-parabol I'm strongly opposed to having a merge freeze to master, that wouldn't be a step forward. |
fb0e9d1
to
810d89d
Compare
Kudos, SonarCloud Quality Gate passed! 0 Bugs No Coverage information |
@Dschoordsch yeah, your understanding is exactly correct! the bot will tags the commit with the version number.
For 1) and 2), I would like to add: currently, the Bot only can monitor one branch and create a PR for the corresponding branch, so the Release Owner needs to manually change the PR base from
How does that sound? |
Just a question about hotfixes-- today we branch off of production & merge the hotfix back to production. This is because master (and staging, technically) could have additional PRs that we don't want to introduce at the same time as the hotfix. Would this be the same going forward? |
You linked the documentation before, but it lists the steps in the wrong order, that's why I was asking. When we merge the PR, we will do a squash+rebase, i.e. the hash changes and the tag is no longer valid. Does it update the tag after the PR was merged?
Sounds ok from a workflow perspective. |
@mattkrick yeah, hotfix is the case. I found release please support multiple release branches, so it can monitor Configuration for on:
push:
branches:
- production
name: release-please
jobs:
release-please:
steps:
- uses: google-github-actions/release-please-action@v3
with:
default-branch: production So when branching off of production & merge the hotfix back to production, the release-please bot will automatically create the release PR to automatically modify the versions and CHANGELOG, and of course eventually the production branch will merge to master. |
Hey @Dschoordsch , you're correct 😁 it lists the steps in the wrong order. So I tried it out myself to verify, and after this Release PR #7229 (using the By the way, I found that the git tags contained package component names, so I changed the Could you please revisit the workflows config file for this PR? Footnotes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's try this. I propose when we merge this now, you should do the next release and update the Release Playbook to the new workflow.
.release-please-manifest.json
Outdated
@@ -0,0 +1,7 @@ | |||
{ | |||
".": "6.75.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 I just did the release and this should now be 6.76.0
As this week's Release Owner, I will first merge this PR, to see if it works properly to create the Release PR, after which I will update the Release Playbook to the new workflow. |
* fix: other tabs break when accepting a team invitation via a link (#7200) * fix(noImplicitAny): Fixup 200 ts rules (Part 2 of 2) (#7193) * dx: begin client noImplicitAny Signed-off-by: Matt Krick <matt.krick@gmail.com> * fix: 50 file checkpoint Signed-off-by: Matt Krick <matt.krick@gmail.com> * remove getInProxy Signed-off-by: Matt Krick <matt.krick@gmail.com> * finish all bugs in mutations dir Signed-off-by: Matt Krick <matt.krick@gmail.com> * fix: finish remaining lint Signed-off-by: Matt Krick <matt.krick@gmail.com> * turn on noImplicitAny for repo Signed-off-by: Matt Krick <matt.krick@gmail.com> * address CR comments Signed-off-by: Matt Krick <matt.krick@gmail.com> Signed-off-by: Matt Krick <matt.krick@gmail.com> * chore: bootstrap release-release for automatic changelog & version changes (#7209) * ci: bootstrap release-please * ci: also add staging as the branch to trigger * ci: add release-hotfix for production branch * fix: don't include component in released Git tag * fix: update the boostrap version & git hash * fix: unsubscribe analytics bug (#7255) * make subscribeToSummaryEmail an object in analytics * second commit for pr rules * update track type * feat(metrics): Send isPatient0 property to Google Analytics (#7261) * fix: participants follow facilitator (#7269) Signed-off-by: Matt Krick <matt.krick@gmail.com> Signed-off-by: Matt Krick <matt.krick@gmail.com> * chore: release v6.78.0 Signed-off-by: Matt Krick <matt.krick@gmail.com> Co-authored-by: Igor Lesnenko <igor.lesnenko@gmail.com> Co-authored-by: Matt Krick <matt.krick@gmail.com> Co-authored-by: JimmyLv_吕立青 <jimmy.jinglv@gmail.com> Co-authored-by: Nick O'Ferrall <nickoferrall@gmail.com> Co-authored-by: Bruce Tian <tianrunhe@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Configuring release-please for multiple node packges by using manifest-releaser, https://github.com/googleapis/release-please/blob/main/docs/manifest-releaser.md
node-workspace
plugin, to update all packages' version with dependency"group-pull-request-title-pattern"
to"chore: release v${version}"
Demo
Please see chore: release v6.74.1 by github-actions[bot] · Pull Request #7212 · ParabolInc/parabol
Temporarily configuring the
default-branch
(37b16a1) torelease-please/bootstrap/default
, creating the expected effect of draft PR at #7212 as a demonstration.After this PR merge, a new release-please PR will be created based on the latest changes to
master
.One detail to note: in addition to CHNAGELOG in the root directory, a CHNAGELOG.md file is also generated in each
packages/*
directory, but the update log only contains the contents of the submodule. From my research, there is no release-please configuration found to remove at the moment.ACs
chore(DX): add release draft notes
is converted to**DX**: add release draft notes