-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Micronaut Framework 3 Release Process
Sergio del Amo edited this page May 10, 2023
·
2 revisions
- Align Micronaut GraalVM test projects @autodone(true)
https://github.com/micronaut-graal-tests/
They should match the projects generated in stater. Use bash scripts at https://gitlab.com/micronaut-projects/upgrade-micronaut-version/.
-
./upgrade-gradle-version.sh
-
./upgrade-gradle-plugin-version.sh
Micronaut Gradle Plugins https://plugins.gradle.org/search?term=micronaut -
./upgrade-micronaut-data-version.sh
https://github.com/micronaut-projects/micronaut-data/releases -
upgrade-micronaut-version.sh
-
upgrade-shadow-plugin-version.sh
Gradle Shadow Plugin https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow
-
- GraalVM Tests Suite @autodone(true)
- Verify stable GraalVM Tests pipeline for the Release passes https://gitlab.com/micronaut-projects/micronaut-graal-tests/-/pipelines
- Guides @autodone(true)
- If minor Release, create a Guides pull request @autodone(true)
https://github.com/micronaut-projects/micronaut-guides.
- Set Micronaut version to the Release version snapshot https://github.com/micronaut-projects/micronaut-guides/blob/master/version.txt
- Verify it passes.
- If patch Release, verify Github Action Test SNAPSHOT passed @autodone(true) https://github.com/micronaut-projects/micronaut-guides/actions/workflows/snapshot.yml
- Ensure
micronaut-starter
branch is publishing snapshots correct. Github actions should use the correct branch name. https://github.com/micronaut-projects/micronaut-starter/pull/1259
- If minor Release, create a Guides pull request @autodone(true)
https://github.com/micronaut-projects/micronaut-guides.
- Core @autodone(true)
- Review release Milestone and Reschedule unfinished issues https://github.com/micronaut-projects/micronaut-core/milestones
- Review Project Board. Reschedule unfinished issues to the next project board. https://github.com/orgs/micronaut-projects/projects
- Refresh versions (if applicable) in micronaut-parent https://github.com/micronaut-projects/micronaut-core/blob/3.4.x/parent/build.gradle
- Fill what's new documentation section for the Release https://github.com/micronaut-projects/micronaut-core/blob/3.3.x/src/main/docs/guide/introduction/whatsNew.adoc
- Merge up any prior branch if applicable in micronaut-core
- Wait until the build passes and it publishes the snapshot
- Starter @autodone(true)
- Ensure a micronaut-starter has a branch testing the version to be released. https://github.com/micronaut-projects/micronaut-starter/
- Run
./test-lambda.sh
- Run
./test-lambda-graalvm.sh
Prerequisites AWS Account AWS CLI https://aws.amazon.com/cli/ AWS CDK https://aws.amazon.com/cdk/ - Merge up any prior branch if applicable in micronaut-starter https://github.com/micronaut-projects/micronaut-starter
- Trigger a build of micronaut-starter using the latest core snapshot to ensure the latest changes are compatible
- Wait for the starter build to pass.
- Marketing @autodone(true)
- Create a blog post. Share the blog post with the core development team via discussions https://github.com/orgs/micronaut-projects/teams/core-developers
- Release @autodone(true)
- Core @autodone(true)
- Verify Github Status is Operational https://www.githubstatus.com
- Verify Sonatype is Operational https://status.maven.org
- Verify Gradle Status https://status.gradle.com/
- Trigger the release of micronaut-core @autodone(true)
https://github.com/micronaut-projects/micronaut-core/releases
- Set the correct tag. Release Tags start with
v
and follow the semantic version. - Select the branch you want to release. For example, If you want to release 3.4.0, select the 3.4.x branch.
- Set the correct tag. Release Tags start with
- Wait for the release to be available in maven central https://repo1.maven.org/maven2/io/micronaut/micronaut-bom/
- If minor, set the default branch to the version released https://github.com/micronaut-projects/micronaut-core/settings/branches
- If minor, create a branch for the next minor.
- In the new minor branch, set
projectVersion
ingradle.properties
. For example, if you create branch 3.5.x set project version to 3.5.0-SNAPSHOT - If patch, merge up the branch you released into the next minor
- Starter @autodone(true)
- Update
micronautVersion
ingradle.properties
of starter to the release version and push - Wait for the build to pass
- Trigger the release of micronaut-starter https://github.com/micronaut-projects/micronaut-starter/releases)
- Set the correct tag. Release Tags start with
v
and follow the semantic version. - Select the branch you want to release. For example, If you're going to release
3.4.0
, select the3.4.x
branch.
- Wait for the Release Github Action to pass. https://github.com/micronaut-projects/micronaut-starter/actions/workflows/release.yml
- Update
micronautVersion
ingradle.properties
of starter to the next snapshot version and push. For example, if you released 3.4.0, setmicronautVersion
to3.4.1-SNAPSHOT
- If minor, set the default branch to the version released https://github.com/micronaut-projects/micronaut-starter/settings/branches
- If minor, do a commit to Publish snapshots https://github.com/micronaut-projects/micronaut-starter/pull/1132
- If minor, create a new branch for the next minor. For example, if you released
3.4.0
, create a3.5.x
branch. @autodone(true)- Set project version to
3.5.0-SNAPSHOT
. Set Micronaut version to3.5.0-SNAPSHOT
. - Update Github actions should use the correct branch name. https://github.com/micronaut-projects/micronaut-starter/pull/1259
- Push the new branch.
- Set project version to
- If patch, merge up the branch you released into the next minor
- Update
- Website @autodone(true)
- add release to releases.yml https://github.com/micronaut-projects/micronaut-docs-index/blob/main/releases.yml
- Post Release checklist @autodone(true)
- Verify https://micronaut.io/docs/ shows the latest release https://micronaut.io/docs/
- Verify the new version appears in SDKMan
sdk list micronaut
. - Verify docs are accesible. For example, Docs for 3.4.0 are available at https://docs.micronaut.io/3.3.4/guide/
- Verify https://docs.micronaut.io/latest/guide/ shows the Release version documentation. https://docs.micronaut.io/latest/guide/
- Verify Launch shows the released version and the next snapshot as options. https://launch.micronaut.io
- Verify the new version is listed at chocolatey https://community.chocolatey.org/packages/micronaut It takes some time.
- Generate an application in Micronaut Launch, unzip it and check build.gradle is not corrupt https://launch.micronaut.io
- Post Release Announcement @autodone(true)
- Publish blog post
- Publish Tweet
- Announce to Gitter
https://github.com/softamo/gitter-rest-api
java -jar gitter-cli/build/libs/gitter-cli-0.1-all.jar -m="Micronaut Framework X.X.X Released! BLOG_POST_URL" --room=5b03d8ded73408ce4f9a3daa -t
- Core @autodone(true)
- After Core and Starter Release @autodone(true)
- Update project-template @autodone(true)
https://github.com/micronaut-projects/micronaut-project-template
- Set
micronaut
to the Release version ingradle/libs.versions.toml
. - Set
githubCoreBranch
to the next minor release of Micronaut Framework.
- Set
- Update project-template @autodone(true)
https://github.com/micronaut-projects/micronaut-project-template
- Guides @autodone(true)
- If minor, in the micronaut-guides PR to update to the next version change to use the stable release. https://github.com/micronaut-projects/micronaut-guides
- If patch, create a new PR in micronaut-guides to use released version by updating version.txt. https://github.com/micronaut-projects/micronaut-guides https://github.com/micronaut-projects/micronaut-guides/blob/master/version.txt
- Merge PR, updating every guide to the latest version once the Guides Finish building.
- TechEmpower Benchmarks @autodone(true)
- Update Micronaut Framework version in TechEmpower Benchmarks repository https://github.com/TechEmpower/FrameworkBenchmarks/pull/7840/files
- Archive Github Release Project https://github.com/orgs/micronaut-projects/projects/
- GraalVM Test Suite @autodone(true)
- Branch need to point to next patch snapshot
For example if you release 3.4.0. you should run:
./upgrade-micronaut-version.sh 3.4.x 3.4.0 3.4.1
. Script found in Gitlab:micronaut-projects/upgrade-micronaut-version
- Branch need to point to next patch snapshot
For example if you release 3.4.0. you should run:
- Minor Release Changes for GraalVM Test Suite @autodone(true)
The following tasks are necessary if the released version is a new minor.
-
micronaut-graal-tests-scheduler
pipelines @autodone(true)- Stable Pipeline for next minor @autodone(true)
- Create a new
stable
branch to test the next minor. For example, if you released 3.4.0, you should create a new branch3.5.x-stable' from
3.4.x-stable`. - Edit
should-trigger-the-build.sh
, set the Micronaut branch. - Commit, use
[ci skip]
in the commit message. - Push the branch to Gitlab.
- Disable old default
stable
pipeline https://gitlab.com/micronaut-projects/micronaut-graal-tests-scheduler/-/pipeline_schedules?scope=active For example, if you release 3.4.0, disable pipeline3.3.x-stable
. Click the edit button (button with a pencil) toggle the active checkmark to disable it. - Create stable Pipeline for next minor. You can reuse the old stable pipeline. Make sure to select the next minor as target branch, update the description and enable active checkmark.
- Create a new
- Dev Pipeline for next minor @autodone(true)
- Create a new
dev
branch to test the next minor. For example, if you released 3.4.0, you should create a new branch,3.5.x-dev', from
3.4.x-dev`. - Edit
should-trigger-the-build.sh
, set the Micronaut branch. - Commit, use
[ci skip]
in the commit message. - Push the branch to Gitlab.
- Disable old default
dev
pipeline https://gitlab.com/micronaut-projects/micronaut-graal-tests-scheduler/-/pipeline_schedules?scope=active For example, if you release 3.4.0, disable pipeline3.3.x-dev
. Click the edit button (button with a pencil) toggle the active checkmark to disable it. - Create a dev Pipeline for next minor.
You can reuse the old
dev
pipeline. Make sure to select the next minor as target branch, update the description and enable active checkmark.
- Create a new
- Stable Pipeline for next minor @autodone(true)
- Branches in GraalVM Tests projects @autodone(true)
- Clone upgrade-micronaut-version and a create new branch for the next minor in the GraalVM tests projects
https://gitlab.com/micronaut-projects/upgrade-micronaut-version
For example, if you release, 3.4.0 you will create 3.5.x a branch.
./create-new-branch.sh 3.4.x 3.5.x
- Set the micronaut version of the new branch to the next minor snapshot.
If you released 3.4.0, and just created 3.5.x, the next minor branch, you will set 3.5.x branch's micronaut version to be 3.5.0-SNAPSHOT.
./upgrade-micronaut-version.sh 3.5.x 3.4.1 3.5.0
- Clone upgrade-micronaut-version and a create new branch for the next minor in the GraalVM tests projects
https://gitlab.com/micronaut-projects/upgrade-micronaut-version
For example, if you release, 3.4.0 you will create 3.5.x a branch.
- Align
micronaut-graal-tests
branches @autodone(true)- Stable branch for next minor @autodone(true)
- Create a new
stable
branch to test the next minor. For example, if you released 3.4.0, you should create a new branch3.5.x-stable' from
3.4.x-stable`. - Create a new
dev
branch to test the next minor. For example, if you released 3.4.0, you should create a new branch3.5.x-dev' from
3.4.x-dev`.
- Create a new
- Stable branch for next minor @autodone(true)
-