Please refer to the end user versioning guide
The release is done as part of the 2 steps:
- Automatic bump as part of the OpenAPI generation process that creates API bot update PR.
- Release tag when update PR is merged
In situations where we do not want to perform automatic release please remove changes from ./internal/core/version.go
file.
Manual release is possible by updating ./internal/core/version.go
file with minor version bump.
Automation reads Resource Version in the version.go
file and in the OpenAPI versions.json
For the new Resource Version introduced in the versions.json
- Reset the minor version
- Replace all occurrences of the Major version in the repository
- Update versions in versions.go
- Generate breaking changes file
- Issue new Minor release
- Update versions in versions.go
In situations when breaking changes are present automation will recognize them and automatically create major version bump.
- Automatically bump the Major version in versions.go
- Replace all occurrences of the Major version in the repository
- Generate breaking changes file
When introducing breaking changes outside generation process we need to manually run script:
- Run
make update-version
- Add breaking changes information to
./breaking _changes/{major_version}
- Run
npm run format
to ensure that file contains correct release notes. - Commit all the changes.
If the release contains breaking changes (it is a major release)
we should provide a list of breaking changes notes under ./breaking _changes/{major_version}.md
file.
This file is automatically generated during release.
Preview generates SDK version by substituting github.com/mongodb/atlas-sdk-go
as module path.
Version should never be committed to the main branch. This task should only be used in Generate Preview SDK Github action which creates a PR with latest changes.
./scripts
- release scripts. Please do not edit them without testing them on the fork repository.
./breaking_changes
- folder containing a list of breaking changes. It is generally safe to prune old files in that folder as values are used during the release.