Skip to content

Commit a3be55c

Browse files
authored
chore(doc): add documentation of release process (#818)
relates to STACKITTPR-200
1 parent a137a04 commit a3be55c

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ make install-dev
185185
When using the `make install-dev` command it is important to prevent `poetry` from creating a different environment for every package.
186186
This can be achieved by running `poetry config virtualenvs.create false`, but there are multiple way to achieve this. You can check the [`poetry` docs](https://python-poetry.org/docs/configuration/) to see which option fits best for you.
187187

188+
## Release creation
189+
190+
See the [release documentation](./RELEASE.md) for further information.
191+
188192
## License
189193

190194
Apache 2.0

RELEASE.md

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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

Comments
 (0)