-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Releasing
Marc Philipp edited this page Sep 24, 2024
·
66 revisions
- Release @API Guardian and change
apiguardian
version ingradle/libs.versions.toml
accordingly, if necessary. - Release ota4j and change
opentest4j
version ingradle/libs.versions.toml
accordingly, if necessary.
- Change
version
,platformVersion
, andvintageVersion
ingradle.properties
to the versions about to be released - Change release date in Release Notes
- Change release date in
README.MD
- Commit with message "Release ${VERSION}"
- Execute
./gradlew --no-build-cache --no-configuration-cache clean build publish closeSonatypeStagingRepository
- Sanity check the actual contents of the generated Maven POMs
- Update junit5-samples to use released version and create a branch for the released version (e.g.
r5.0.0-M1
) by runningjava src/Updater.java ${VERSION}
- The branch must be the same as for the
junit5
repo; otherwise, links in the User Guide will be broken. - Run
java src/Builder.java
to ensure there's no error reported. - Update the snapshot version in the snapshot-specific build files to match the release that's currently being worked on.
- The branch must be the same as for the
- Ensure the artifacts in the staging repo can be consumed using Gradle and Maven
- Release staging repo on Nexus
- Tag current commit (e.g.
r5.0.0-M1
) - Publish Javadoc and User Guide to GitHub pages
- For GA releases:
./gradlew --no-build-cache --no-configuration-cache -Pdocumentation.replaceCurrentDocs clean gitPublishPush
- For milestones/RCs:
./gradlew --no-build-cache --no-configuration-cache clean gitPublishPush
- For GA releases:
- Sanity check that the generated PDF for the User Guide is not corrupt
- Change
version
,platformVersion
, andvintageVersion
properties ingradle.properties
inmain
to new development versions and commit with message "Back to snapshots for further development" or similar - If this is a major release, update the security policy and commit with message "Update security policy to reflect 5.x release" or similar
- Create release notes for the subsequent release from the template, if applicable
- Push
main
and all tags to GitHub- For patch releases: Include the release notes of the patch release on
main
- For patch releases: Include the release notes of the patch release on
- Edit release description on GitHub: Link to User Guide and Javadoc for current version
- Close milestone in GitHub issues
- Drink some beer until release is on Maven central 🍻
VERSION=5.11.0-M1
URL=https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/$VERSION/junit-jupiter-api-$VERSION.pom
until curl --output /dev/null --silent --head --fail $URL; do
printf '.'
sleep 5
done
notify-send -u critical -i software-update-available "Release $VERSION published"
- Update JBang catalog
- Push samples release branch and main, if applicable, to GitHub
- Tweet about the new release from junitteam