MultiCloudJ uses Release Please for automated release management.
-
Development: Commit changes to feature branches using Conventional Commits format:
feat:- New featuresfix:- Bug fixesperf:- Performance improvementsblobstore:- Blob Store changesdocstore:- Document Store changessts:- STS changespubsub:- PubSub changesiam:- IAM changesrefactor:- Code refactoringdocs:- Documentation updatestest:- Test updateschore:- Maintenance tasks
-
Merge to Main: When PRs are merged to the
mainbranch, Release Please automatically:- Analyzes commit messages
- Creates/updates a release PR with:
- Updated version in
pom.xml - Generated
CHANGELOG.mdentries - Release notes
- Updated version in
Release PRs are of this format:
chore(main): release multicloudj <version>IMPORTANT: the release PR is updated on every merge to main, merge ONLY when ready to release. Example of the release PR #218
-
Create Release: When the release PR is merged:
- Maintainers get the notification to approve the release on email. Once approved:
- Release Please create a GitHub release and tag. Example: https://github.com/salesforce/multicloudj/releases/tag/multicloudj-v0.2.22
- CHANGELOG is updated.
- GitHub Actions workflow automatically:
- Builds the project (
mvn clean verify) - Runs all tests
- Deploys artifacts to Maven Central using the
releaseprofile - Signs artifacts with GPG
- Builds the project (
- Creates the PR for the snapshot version bump with title
chore(main): release multicloudj <version++>-SNAPSHOT. For example: #229
