Skip to content

Commit 7f3d837

Browse files
authored
Update release instructions (#7292)
* Update release instructions to reflect reality, add copy-paste checklist to ease issue.
1 parent 56bbb99 commit 7f3d837

File tree

1 file changed

+74
-22
lines changed

1 file changed

+74
-22
lines changed

package/README.md

Lines changed: 74 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ The purpose of the release process is to generate the following outputs from the
4141

4242
* Github Release for esp8266/Arduino project. This is used to host the boards manager package mentioned above, and also contains the release notes.
4343

44-
Here is an overview of the release process. See the section below for detailed instructions.
44+
Here is a rough overview of the effective release process. See the section below for detailed instructions.
4545

46-
1. Release process starts when a maintainer pushes a tag into the repository.
46+
1. Release process effectively starts when a maintainer pushes a tag into the repository.
4747

4848
2. Travis CI runs a build for this tag, and one of the jobs (with `BUILD_TYPE=package`) is used to prepare the boards manager package. This job runs `build_boards_manager_package.sh`.
4949

@@ -65,9 +65,11 @@ Here is an overview of the release process. See the section below for detailed i
6565

6666
## Creating a release (for maintainers)
6767

68-
0. Open a new issue to track activities, which will be closed after the release is done.
68+
1. [Open a new issue](https://github.com/esp8266/Arduino/issues/new/choose) to track activities, which will be closed after the release is done. Copy the checklist below into it, and check the steps one by one as they get completed.
6969

70-
1. Assemble release notes.
70+
2. Make sure that no issues or PRs are assigned to the milestone to be released. If there are any Issues/PRs assigned to the relevant milestone, they should either be addressed, pushed back to a future milestone, or closed.
71+
72+
3. Assemble release notes.
7173

7274
* Since most changes are integrated into master using squash-rebase policy (i.e. one commit per PR), `git log --oneline` gives a good overview of changes in the release.
7375

@@ -99,22 +101,24 @@ Here is an overview of the release process. See the section below for detailed i
99101
100102
* Not all commit descriptions which come from `git log` will explain changes well. Reword items as necessary, with the goal that a general user of this project should be able to understand what the change is related to. Preserve references to PRs or issues (`#XXXX`).
101103
102-
* Don't include fixes for regressions which have been introduced since last release.
103-
104104
* Aggregate minor fixes (e.g. typos, small documentation changes) in a few items. Focus on preparing a good overview of the release for the users, rather than mentioning every change.
105105
106-
* When done, put release notes into a private Gist and send the link to other maintainers for review.
106+
* When done, put release notes into a private [Gist](https://gist.github.com) or [firepad](https://demo.firepad.io) and send the link to other maintainers for review.
107107
108108
The following points assume work in a direct clone of the repository, and not in a personal fork.
109109
110-
2. Make a PR with the following, wait for Travis CI, and merge.
110+
4. Make a PR with the following, [wait for Travis CI](https://travis-ci.org/github/esp8266/Arduino/builds/), and merge.
111111
112-
* platform.txt and package.json: update `version` to the release E.g. `3.0.0`,
112+
* [platform.txt](https://github.com/esp8266/Arduino/blob/master/platform.txt) and [package.json](https://github.com/esp8266/Arduino/blob/master/package.json): update `version` to the release E.g. `3.0.0`,
113113
114-
* `cores/esp8266/TZ.h`: import the latest database with the following shell command:\
114+
* [cores/esp8266/TZ.h](https://github.com/esp8266/Arduino/blob/master/cores/esp8266/TZ.h): import the latest database with the following shell command:\
115115
`$ cd tools; sh TZupdate.sh`.
116116
117-
3. Tag the latest commit on the master branch. In this project, tags have form `X.Y.Z`, e.g. `3.0.0`, or `X.Y.Z-betaN` for release candiate versions. Notice that there's no `v`at the beginning of the tag. Tags must be annotated, not lightweight tags. To create a tag, use git command (assuming that the master branch is checked out):
117+
5. Wait until the release notes have been checked by other maintainers
118+
119+
6. Navigate to [Travis CI options](https://travis-ci.org/esp8266/Arduino/settings), enable ´Build pushed branches´ (before tagging in next step)
120+
121+
7. Tag the latest commit on the master branch. In this project, tags have form `X.Y.Z`, e.g. `3.0.0`, or `X.Y.Z-betaN` for release candiate versions. Notice that there's no `v`at the beginning of the tag. Tags must be annotated, not lightweight tags. To create a tag, use git command (assuming that the master branch is checked out):
118122
119123
```
120124
git tag -a -m "Release 3.0.0" 3.0.0
@@ -128,30 +132,78 @@ The following points assume work in a direct clone of the repository, and not in
128132
git push origin 3.0.0
129133
```
130134
131-
4. In case something goes wrong, release can be canceled at any time:
135+
In case something goes wrong, release can be canceled at any time:
132136
133137
* Tag must be removed (`git tag -d X.Y.Z; git push --delete origin X.Y.Z`)
134138
135139
* Release must be deleted: github > releases > edit x.y.z > remove all files > delete button appears
136140
137-
5. Wait for Travis CI build for the tag to pass, see https://travis-ci.org/esp8266/Arduino/builds,
141+
8. Wait for Travis CI build for the tag to pass, see https://travis-ci.org/esp8266/Arduino/builds,
138142
139-
return to the Travis CI options and disable `Build pushed branches`.
140143
141-
6. Check that the new (draft) release has been created (no editing at this point!), see https://github.com/esp8266/Arduino/releases. Check that the boards manager package .zip file has been successfully uploaded as a release artifact.
144+
9. Check that the new (draft) release has been created (no editing at this point!), see https://github.com/esp8266/Arduino/releases.
142145
143-
7. Check that the package index downloaded from https://arduino.esp8266.com/stable/package_esp8266com_index.json contains an entry for the new version (it may not be the first one).
146+
10. Check that the boards manager package .zip file has been successfully uploaded as a release artifact.
144147
145-
8. Navigate to release list in Github here https://github.com/esp8266/Arduino/releases, press "Edit" button to edit release description, paste release notes, and publish it.
148+
11. Check that the package index downloaded from https://arduino.esp8266.com/stable/package_esp8266com_index.json contains an entry for the new version (it may not be the first one).
146149
147-
9. In the issue tracker, remove "staged-for-release" label for all issues which have it, and close them. Close the milestone associated with the released version.
150+
12. Return to the [Travis CI options](https://travis-ci.org/esp8266/Arduino/settings) and disable `Build pushed branches`.
148151
149-
10. Check that https://arduino-esp8266.readthedocs.io/en/latest/ has a new doc build for the new tag, and that "stable" points to that build. If a new build did not trigger, log into readthedoc's home here https://readthedocs.org/ (account must have been added to project as maintainer) and trigger it manually.
152+
13. Navigate to release list in Github here https://github.com/esp8266/Arduino/releases, press "Edit" button to edit release description, paste release notes, and publish it.
150153
151-
11. Create a commit to the master branch, updating:
154+
14. In the issue tracker, remove "staged-for-release" label for all issues which have it, and close them. Close the milestone associated with the released version (the milestone should be empty per point 2 above)
155+
156+
15. Check that https://arduino-esp8266.readthedocs.io/en/latest/ has a new doc build for the new tag, and that "stable" points to that build. If a new build did not trigger, log into readthedoc's home here https://readthedocs.org/ (account must have been added to project as maintainer) and trigger it manually.
157+
158+
16. Create a commit to the master branch, updating:
152159
153160
* The version in platform.txt and package.json files. This should correspond to the version of the *next* milestone, plus `-dev` suffix. E.g. `3.1.0-dev`.
154161
155-
* In main README.md:
162+
* In main README.md go to "Latest release" section, change version number in the readthedocs link to the version which was just released, and verify that all links work.
163+
164+
165+
## Checklist helper, copy-paste into Release Process issue
166+
```
167+
--------------COPY BELOW THIS LINE--------------
168+
[Reference](https://github.com/esp8266/Arduino/tree/master/package#creating-a-release-for-maintainers) for details.
169+
170+
- [ ] 1. Open a new issue to track activities.
171+
172+
- [ ] 2. Make sure that no issues or PRs are assigned to the milestone to be released.
173+
174+
- [ ] 3. Assemble release notes.
175+
176+
- [ ] 4. Make a PR with the following, [wait for Travis CI](https://travis-ci.org/github/esp8266/Arduino/builds/), and merge.
177+
178+
* [platform.txt](https://github.com/esp8266/Arduino/blob/master/platform.txt)
179+
* [package.json](https://github.com/esp8266/Arduino/blob/master/package.json)
180+
* [cores/esp8266/TZ.h](https://github.com/esp8266/Arduino/blob/master/cores/esp8266/TZ.h)
156181

157-
- in "Latest release" section, change version number in the readthedocs link to the version which was just released, and verify that all links work.
182+
- [ ] 5. Wait until the release notes have been checked by other maintainers
183+
184+
- [ ] 6. Navigate to [Travis CI options](https://travis-ci.org/esp8266/Arduino/settings), enable ´Build pushed branches´ (before tagging in next step)
185+
186+
- [ ] 7. Tag the latest commit on the master branch, then push it to esp8266/Arduino
187+
188+
- [ ] 8. Wait for Travis CI build for the tag to pass, see https://travis-ci.org/esp8266/Arduino/builds,
189+
190+
- [ ] 9. Check that the new (draft) release has been created (no editing at this point!), see https://github.com/esp8266/Arduino/releases.
191+
192+
- [ ] 10. Check that the boards manager package .zip file has been successfully uploaded as a release artifact.
193+
194+
- [ ] 11. Check that the package index downloaded from https://arduino.esp8266.com/stable/package_esp8266com_index.json contains an entry for the new version (it may not be the first one).
195+
196+
- [ ] 12. Return to the [Travis CI options](https://travis-ci.org/esp8266/Arduino/settings) and disable `Build pushed branches`.
197+
198+
- [ ] 13. Navigate to [release list in Github](https://github.com/esp8266/Arduino/releases), press "Edit" button to edit release description, paste release notes, and publish it.
199+
200+
- [ ] 14. In the issue tracker, remove "staged-for-release" label for all issues which have it, and close them. Close the milestone associated with the released version (the milestone should be empty per point 2 above)
201+
202+
- [ ] 15. Check that https://arduino-esp8266.readthedocs.io/en/latest/ has a new doc build for the new tag, and that "stable" points to that build. If a new build did not trigger, log into readthedoc's home here https://readthedocs.org/ (account must have been added to project as maintainer) and trigger it manually.
203+
204+
- [ ] 16. Create a commit to the master branch, updating:
205+
206+
* The version in platform.txt and package.json files. This should correspond to the version of the *next* milestone, plus `-dev` suffix. E.g. `3.1.0-dev`.
207+
* In main README.md go to "Latest release" section, change version number in the readthedocs link to the version which was just released, and verify that all links work.
208+
--------------COPY ABOVE THIS LINE--------------
209+
```

0 commit comments

Comments
 (0)