Skip to content
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

ci: adjust release branches #52

Merged
merged 42 commits into from
Sep 1, 2022
Merged

ci: adjust release branches #52

merged 42 commits into from
Sep 1, 2022

Conversation

cletustboone
Copy link
Contributor

@cletustboone cletustboone commented Sep 1, 2022

Pre v1.0 (time of writing)

Updates the release config to care about these branches:

main <-- current production code
next (pre) <-- next iteration of current code
next-major (pre) <-- for bumblebee dev work

While still in a pre 1.0 release, the main branch will contain the current aardvark v0.x code and next will have any new v0.x features or fixes.

For releases to the current v0.x production code, developers will branch from next, do their feature or bug fix work, and make a pull request back to the next branch. On approval, their commits need to be squashed and merged. ADMINS, make sure the title of the merge follows conventional commit spec.

Work for the future bumblebee (v1.x) milestone will happen on the next-major branch which will necessarily diverge from main and next.

Someone needs to do a breaking change PR that starts from main and targets the next-major branch. Developers will branch from next-major, and make features/fixes to be merged back to next-major.

Meanwhile, regular development on the v0.x release can continue from main and next.

Feature and fix work on v0.x must be ported (cherry-picked) to next-major if those new features and fixes are meant to be carried into the next major release.

v1.0.0 boundary

At this boundary, we will create a v0.x branch and tag from whatever the last v0.x version of firebolt exists on main at that point. This branch will support feature and bug fix releases to the v0.x versions of firebolt.

Post v1.0.0

Now the release job cares about these branches:

main <-- current production (v1.x code)
next(pre) <-- next production
v0.x <-- maintenance releases
next-major <-- for v2.x dev work

At this point, developers working on v1.x would simply follow the branch from next merge to next workflow. As v1.x prereleases happen, consumers can try them.

Working on v0.x maintenance releases

A developer would make a feature/fix branch from the v0.x branch and make a pull request back to that branch. After PR merge, someone would trigger a release and v0.x.x would be released.

Porting features/fixes across releases

TLDR; This often requires cherry-picking commits from one branch to another and resolving merge conflicts since release branches are out of sync by design. The semantic release gitbook has some fantastic info on this topic. Well worth a read if you want to understand more.

cletustboone and others added 30 commits August 23, 2022 21:21
commit-msg hook will run commitlint on the incoming commit message and make sure it conforms to the preset.
Uses angular commit message format by default.
Needed due to introduction of husky dependency.
Default behavior is DO NOT install git-hooks when running in a CI environment.
The environment variable is the more sensible approach that I should have taken at the outset.
* adding typescript tests
If it fails, what's the point of proceeding?
Do it after the individual validation. Can't proceed if the fully assembled spec is invalid.
Adds git and changelog plugs. Switches commit-analyzer to use conventionalcommit instead of angular.
commit-msg hook will run commitlint on the incoming commit message and make sure it conforms to the preset.
Uses angular commit message format by default.
Needed due to introduction of husky dependency.
Default behavior is DO NOT install git-hooks when running in a CI environment.
The environment variable is the more sensible approach that I should have taken at the outset.
If it fails, what's the point of proceeding?
Adds git and changelog plugs. Switches commit-analyzer to use conventionalcommit instead of angular.
# Conflicts:
#	.github/workflows/release-github.yml
Will have a `v.0.x` branch that starts from the current v0.8.0 tag.

Make a new `v1.x` tag from wherever the bumblebee branch is.
@cletustboone cletustboone merged commit 5d25617 into next Sep 1, 2022
@github-actions
Copy link

🎉 This PR is included in version 0.9.0-next.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@cletustboone
Copy link
Contributor Author

🎉 This PR is included in version 0.9.0-next.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@kpears201 kpears201 deleted the ci/refactor branch May 4, 2023 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants