|
| 1 | +# Release |
| 2 | + |
| 3 | +## Release cycle |
| 4 | + |
| 5 | +A release of the whole SDK should be created at least every 2 weeks. |
| 6 | + |
| 7 | +## Release creation |
| 8 | + |
| 9 | +### Single service |
| 10 | + |
| 11 | +The SDK is split into all the different STACKIT [services](https://github.com/stackitcloud/stackit-sdk-python/tree/main/services), each of them having their own version numbers. |
| 12 | + |
| 13 | +**Checklist before releasing a single service** |
| 14 | + |
| 15 | +- [ ] Changelog entries were added to the `CHANGELOG.md` in the root directory of the repository (see [here](https://github.com/stackitcloud/stackit-sdk-python/blob/608176ab8cdfa60a3cfb09da49de0b1aba5fea84/CHANGELOG.md)) |
| 16 | +- [ ] Changelog entries were added to the `CHANGELOG.md` file of the service to be released (see e.g. [here](https://github.com/stackitcloud/stackit-sdk-python/blob/608176ab8cdfa60a3cfb09da49de0b1aba5fea84/services/dns/CHANGELOG.md)) |
| 17 | +- [ ] Version number of the `pyproject.toml` of the service was adjusted (see e.g. [here](https://github.com/stackitcloud/stackit-sdk-python/blob/608176ab8cdfa60a3cfb09da49de0b1aba5fea84/services/dns/pyproject.toml)) |
| 18 | + |
| 19 | +**Releasing a single service** |
| 20 | + |
| 21 | +1. As soon as a PR is merged to the main branch, which bumps the version of a service in it's `pyproject.toml` file, a release for this service will be created [automatically](https://github.com/stackitcloud/stackit-sdk-python/actions/workflows/cd.yaml). |
| 22 | + - This means a git tag will be created: `services/<SERVICE-NAME>/vX.X.X`. E.g. for the `sqlserverflex` service version `v1.0.1` the git tag would be named `services/sqlserverflex/v1.0.1` |
| 23 | + |
| 24 | +### Whole SDK |
| 25 | + |
| 26 | +**Checklist before releasing the whole SDK** |
| 27 | + |
| 28 | +- [ ] Date was set/updated in the `CHANGELOG.md` file in the root directory of the repository (see [here](https://github.com/stackitcloud/stackit-sdk-python/blob/608176ab8cdfa60a3cfb09da49de0b1aba5fea84/CHANGELOG.md)) |
| 29 | + |
| 30 | +**Releasing the whole SDK** |
| 31 | + |
| 32 | +> [!IMPORTANT] |
| 33 | +> Consider informing / syncing with the team before creating a new release. |
| 34 | +
|
| 35 | +1. Check out latest main branch on your machine |
| 36 | +2. Create git tag: `git tag release-YYYY-MM-DD` |
| 37 | +3. Push the git tag: `git push origin --tags` |
| 38 | +4. Copy the changelog entries for the new release from the `CHANGELOG.md` file in the root directory of the repository (see [here](https://github.com/stackitcloud/stackit-sdk-python/blob/608176ab8cdfa60a3cfb09da49de0b1aba5fea84/CHANGELOG.md)) to your clipboard. |
| 39 | +5. Go to the [releases page](https://github.com/stackitcloud/stackit-sdk-python/releases) on GitHub and create a new release. Select the git tag you just created. |
| 40 | +6. Before creating the GitHub release, add the *Highlights* heading at the top of the markdown description and paste the changelog entries from your clipboard (see [previous releases](https://github.com/stackitcloud/stackit-sdk-python/releases/tag/release-2025-03-27) to see what it should look like). Then create and publish the GitHub release. |
| 41 | + |
0 commit comments