You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: RELEASE.md
+50-89
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,12 @@
2
2
3
3
These are basic instructions for internal use. Will be expanded as the need arises.
4
4
5
-
### Major or minor version update
5
+
### Table of Contents
6
+
-[Major or minor release](#major-or-minor-release)
7
+
-[Patch release](#patch-release)
8
+
-[conda-forge build](#conda-forge-build)
9
+
10
+
### Major or minor release
6
11
7
12
(e.g. 1.4 --> 1.5, or 1.5 --> 2.0)
8
13
@@ -21,7 +26,17 @@ git pull
21
26
git checkout -b release/1.5.x
22
27
```
23
28
24
-
2. Update `heat/core/version.py` like this:
29
+
2. Create a new branch off `release/1.5.x` and update the version number in `heat/core/version.py`:
30
+
31
+
```bash
32
+
git checkout release/1.5.x
33
+
git pull
34
+
git checkout -b workflows/version-update
35
+
```
36
+
37
+
38
+
39
+
Update `heat/core/version.py` like this:
25
40
26
41
```python
27
42
"""This module contains Heat's version information."""
@@ -36,81 +51,80 @@ extension: str = "dev" # <-- set to None
36
51
"""Indicates special builds, e.g. for specific hardware."""
37
52
```
38
53
39
-
3. Commit and push new `version.py` in `release/1.5.x`
54
+
3. Commit and push new `version.py` in `workflows/version-update`.
55
+
56
+
4. If necessary, also update the Requirements section on README.md to reflect the latest version of the dependencies.
57
+
58
+
5. Update `CITATION.cff` if needed, i.e. add names of non-core contributors (they are included in the Release notes draft you just created). Push to `workflows/version-update`.
59
+
60
+
6. Create a pull request from `workflows/version-update` to `release/1.5.x`
61
+
62
+
- Remember to get a reviewers approval.
63
+
- Wait for the tests to finish.
64
+
- Squash and merge.
40
65
41
-
4. Draft release notes:
66
+
7. Draft release notes:
42
67
43
68
- Go to the GitHub repo's [Releases](https://github.com/helmholtz-analytics/heat/releases) page.
44
69
- The release notes draft is automated. Click on Edit Draft
45
-
- Select the new tag: v1.3.0. Modify Target branch: `release/1.5.x`
70
+
- Select the new tag: v1.5.0. Modify Target branch: `release/1.5.x`
46
71
- Edit release notes as needed (see older releases)
47
-
- Click on Save but do not publish yet
48
-
49
-
5. Update `CITATION.cff` if needed, i.e. add names of non-core contributors (they are included in the Release notes draft you just created). Push to the release branch.
72
+
- Click on Save **but do not publish yet**
50
73
51
-
6. Build wheel in your local `heat/` directory, make sure you are on branch `release/1.5.x`.
74
+
8. Build wheel in your local `heat/` directory, make sure you are on branch `release/1.5.x`.
52
75
53
76
```bash
54
77
rm -f dist/*
55
78
python -m build
56
79
```
57
80
58
-
You might have to install the `build` package first (i.e. with `conda install build` or `pip install build`)
81
+
You might have to install the `build` package first (i.e. with `conda install -c conda-forge build` or `pip install build`)
59
82
60
-
7. Upload to Test PyPI and verify things look right. You need to install `twine` first.
83
+
9. Upload to Test PyPI and verify things look right. You need to install `twine` first.
61
84
62
85
```bash
63
86
twine upload -r testpypi dist/*
64
87
```
65
88
66
89
`twine` will prompt for your username and password.
67
90
68
-
8. When everything works, upload to PyPI:
91
+
10. When everything works, upload to PyPI:
69
92
70
93
```bash
71
94
twine upload dist/*
72
95
```
73
96
74
-
9. Go back to the Release Notes draft and publish them. The new release is out!
97
+
11. Go back to the Release Notes draft and publish them. The new release is out!
75
98
76
99
- Make sure the CHANGELOG.md got updated, if not, call @JuanPedroGHM.
77
100
- Check our [Zenodo page](https://zenodo.org/doi/10.5281/zenodo.2531472) to make sure a DOI was created for the release.
78
101
79
-
10. Check status of our conda-forge recipe: (Need to be listed as maintainer, either @ClaudiaComito, @mrfh92, @JuanPedroGHM)
80
-
- Go to https://github.com/conda-forge/heat-feedstock
81
-
- A new PR should have been automatically created.
82
-
- Changes can be pushed to the PR.
83
-
- Make sure the version number is correct.
84
-
- Make sure the SHA points to the correct PyPI release.
85
-
- Make sure dependencies match.
86
-
- Once the PR is done, waitfor the CI checks to finish and merge.
87
-
- Refer to the conda-forge docs if there are any issues: https://conda-forge.org/docs/maintainer/updating_pkgs.html#pushing-to-regro-cf-autotick-bot-branch
88
-
89
-
11. Now we want to update `main` to include the latest release, we want to modify the version on main so that `minor` is increased by 1, and `extension` is "dev". In this example we want the version on `main` to be:`1.4.0-dev`.
102
+
12. On branch `main`, we want to modify the version so that `minor` is increased by 1, and `extension` is "dev". In this example we want the version on `main` to be:`1.6.0-dev`. We need to create a new branch from `main`:
90
103
91
104
```bash
92
105
git checkout main
93
106
git pull
94
107
git checkout -b workflows/update-version-main
95
-
git merge release/1.5.x --no-ff --no-commit
108
+
git branch
96
109
```
97
110
98
-
Modify `version.py` so that `extension` is `"dev"`. Commit and push the changes.
111
+
On branch `workflows/update-version-main`, modify `version.py` so that`minor` is increased by 1, and`extension` is `"dev"`. Commit and push the changes.
99
112
100
-
12. Create a PR with `main` as the base branch.
113
+
13. Create a PR with `main` as the base branch.
114
+
115
+
14. Get approval and merge. You're done! Except if you're a conda-forge maintainer, then see [conda-forge build](#conda-forge-build).
101
116
102
-
13. Get approval and merge. You're done!
103
117
104
118
### Patch release
105
119
106
-
(e.g. 1.3.0 --> 1.3.1)
120
+
(e.g. 1.5.0 --> 1.5.1)
107
121
108
-
1. Check that all intended branches have been merged to the release branch you want to upgrade, in this example `release/1.3.x`. Branch off from `release/1.3.x` and create a new branch:
122
+
1. Check that all intended branches have been merged to the release branch you want to upgrade, in this example `release/1.5.x`. Create a new branch off `release/1.5.x`, e.g.:
"""Indicates special builds, e.g. for specific hardware."""
129
143
```
130
144
131
-
3. Commit and push new `version.py` in `minor-version-update`
132
-
133
-
4. Create a pull request from `minor-version-update` to `release/1.3.x`
134
-
135
-
- Remember to get a reviewers approval.
136
-
- Wait for the test to finish.
137
-
- Squash and merge.
138
-
139
-
140
-
5. Draft release notes:
141
-
142
-
- Go to the GitHub repo's [Releases](https://github.com/helmholtz-analytics/heat/releases) page.
143
-
- The release notes draft is automated. Click on Edit Draft
144
-
- Select the new tag: `v1.3.1`
145
-
- Edit release notes as needed (see older releases)
146
-
- Save the changes to the release notes WITHOUT PUBLISHING!!
147
-
148
-
6. Build wheel in your local`heat/` directory, make sure you are on branch `release/1.3.x`.
149
-
150
-
```bash
151
-
rm -f dist/*
152
-
python -m build
153
-
```
154
-
155
-
You might have to install the `build` package first (i.e. with `conda install build` or `pip install build`)
156
-
157
-
7. Upload to Test PyPI and verify things look right. You need to install `twine` first.
145
+
3. Follow steps 3-14 from the [Major or minor release section](#major-or-minor-release).
158
146
159
-
```bash
160
-
twine upload -r testpypi dist/*
161
-
```
162
-
163
-
`twine` will prompt for your username and password.
164
-
165
-
- Look at the testpypi repository and make sure everything is correct (version number, readme, etc.)
166
-
167
-
8. When everything works, upload to PyPI:
168
147
169
-
```bash
170
-
twine upload dist/*
171
-
```
172
-
173
-
9. Update conda-forge recipe (Need to be listed as maintainer, either @ClaudiaComito, @mrfh92, @JuanPedroGHM)
174
-
- Go to https://github.com/conda-forge/heat-feedstock
175
-
- A new PR should have been automatically created.
148
+
## conda-forge build
149
+
After releasing, the conda-forge automation will create a new PR on https://github.com/conda-forge/heat-feedstock. It's normal if this takes hours. conda-forge maintainers will review the PR and merge it if everything is correct.
176
150
- Changes can be pushed to the PR.
177
151
- Make sure the version number is correct.
178
152
- Make sure the SHA points to the correct PyPI release.
179
153
- Make sure dependencies match.
180
154
- Once the PR is done, wait for the CI checks to finish and merge.
181
155
- Refer to the conda-forge docs if there are any issues: https://conda-forge.org/docs/maintainer/updating_pkgs.html#pushing-to-regro-cf-autotick-bot-branch
182
-
183
-
184
-
10. Go back to the Release Notes draft and publish them. The new release is out!
185
-
- Make sure the CHANGELOG.md got updated in the release branch, in this case`release/1.3.x`, if not, call @JuanPedroGHM.
186
-
- Check Zenodo to make sure a DOI was created for the release.
187
-
188
-
11. Now we want to update `main` to the latest version, and we want the version on `main` to be `1.4.0-dev`.
189
-
- Create a new branch from `release/1.3.x`, for example `merge-latest-release-into-main`
190
-
- Merge `main` into `merge-latest-release-into-main`, resolve conflicts and push.
191
-
- Create a PR from `merge-latest-release-into-main`, base branch must be `main`
192
-
- Make sure the version number in`merge-latest-release-into-main` is correct (i.e., it matches that in`main`).
193
-
- Make sure the CHANGELOG.md in`merge-latest-release-into-main` matches that in the latest release branch, in this example`release/1.3.x`.
194
-
- Get a reviewers approval, waitfor the CI checks to pass, and merge.
0 commit comments