Skip to content

Commit 94dc100

Browse files
committed
Add releasing instruction to CONTRIBUTING.md
Also add a RELEASE_NOTES template, so when releasing new versions is easy to clear the release notes by just copying the template. Signed-off-by: Leandro Lucarella <[email protected]>
1 parent d5b6f21 commit 94dc100

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

.github/RELEASE_NOTES.template.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Frequenz Channels Release Notes
2+
3+
## Summary
4+
5+
<!-- Here goes a general summary of what this release is about -->
6+
7+
## Upgrading
8+
9+
<!-- Here goes notes on how to upgrade from previous versions, including if there are any depractions and what they should be replaced with -->
10+
11+
## New Features
12+
13+
<!-- Here goes the main new features and examples or instructions on how to use them -->
14+
15+
## Bug Fixes
16+
17+
<!-- Here goes notable bug fixes that are worth a special mention or explanation -->

CONTRIBUTING.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,45 @@ You can also use `nox` to run the tests and other checks:
2828
python -m pip install nox
2929
nox
3030
```
31+
32+
Releasing
33+
=========
34+
35+
These are the steps to create a new release:
36+
37+
1. Get the latest head you want to create a release from.
38+
39+
1. Update the `RELEASE_NOTES.md` file if it is not complete, up to date, and
40+
clean from template comments (`<!-- ... ->`) and empty sections. Submit
41+
a pull request if an update is needed, wait until it is merged, and update
42+
the latest head you want to create a release from to get the new merged pull
43+
request.
44+
45+
3. Create a new signed tag using the release notes and
46+
a [semver](https://semver.org/) compatible version number with a `v` prefix,
47+
for example:
48+
49+
```sh
50+
git tag -s -F RELEASE_NOTES.md v0.0.1
51+
```
52+
53+
4. Push the new tag.
54+
55+
5. A GitHub action will test the tag and if all goes well it will create
56+
a [GitHub
57+
Release](https://github.com/frequenz-floss/frequenz-channels/releases),
58+
create a new
59+
[announcement](https://github.com/frequenz-floss/frequenz-channels/discussions/categories/announcements)
60+
about the release, and upload a new package to
61+
[PyPI](https://pypi.org/project/frequenz-channels/) automatically.
62+
63+
6. Once this is done, reset the `RELEASE_NOTES.md` with the template:
64+
65+
```sh
66+
cp .github/RELEASE_NOTES.template.md RELEASE_NOTES.md
67+
```
68+
69+
Commit the new release notes and create a PR (this step should be automated
70+
eventually too).
71+
72+
7. Celebrate!

0 commit comments

Comments
 (0)