Merge branch 'reldoc'

This commit is contained in:
Nick Mathewson 2016-03-28 16:07:27 -04:00
commit 1275d92399

View File

@ -4,13 +4,42 @@ Putting out a new release
Here are the steps Roger takes when putting out a new Tor release: Here are the steps Roger takes when putting out a new Tor release:
=== 0. Preliminaries
1. Get at least two of weasel/arma/Sebastian to put the new version number
in their approved versions list.
=== I. Make sure it works
1. Use it for a while, as a client, as a relay, as a hidden service, 1. Use it for a while, as a client, as a relay, as a hidden service,
and as a directory authority. See if it has any obvious bugs, and and as a directory authority. See if it has any obvious bugs, and
resolve those. resolve those.
As applicable, merge the `maint-X` branch into the `release-X` branch. As applicable, merge the `maint-X` branch into the `release-X` branch.
2. Gather the `changes/*` files into a changelog entry, rewriting many 2. Are all of the jenkins builders happy? See jenkins.torproject.org.
What about the bsd buildbots?
See http://buildbot.pixelminers.net/builders/
What about Coverity Scan?
Is make check-spaces happy?
Does 'make distcheck' compain?
How about 'make test-stem' and 'make test-network'?
- Are all those tests still happy with --enable-expensive-hardening ?
Any memory leaks?
=== II. Write a changelog.
1. Gather the `changes/*` files into a changelog entry, rewriting many
of them and reordering to focus on what users and funders would find of them and reordering to focus on what users and funders would find
interesting and understandable. interesting and understandable.
@ -62,13 +91,13 @@ Here are the steps Roger takes when putting out a new Tor release:
7. Run `./scripts/maint/format_changelog.py` to make it prettier. 7. Run `./scripts/maint/format_changelog.py` to make it prettier.
3. Compose a short release blurb to highlight the user-facing 2. Compose a short release blurb to highlight the user-facing
changes. Insert said release blurb into the ChangeLog stanza. If it's changes. Insert said release blurb into the ChangeLog stanza. If it's
a stable release, add it to the ReleaseNotes file too. If we're adding a stable release, add it to the ReleaseNotes file too. If we're adding
to a release-0.2.x branch, manually commit the changelogs to the later to a release-0.2.x branch, manually commit the changelogs to the later
git branches too. git branches too.
If you're doing the first stable release in a series, you need to 3. If you're doing the first stable release in a series, you need to
create a ReleaseNotes for the series as a whole. To get started create a ReleaseNotes for the series as a whole. To get started
there, copy all of the Changelog entries from the series into a new there, copy all of the Changelog entries from the series into a new
file, and run `./scripts/maint/sortChanges.py` on it. That will file, and run `./scripts/maint/sortChanges.py` on it. That will
@ -78,7 +107,10 @@ Here are the steps Roger takes when putting out a new Tor release:
to start sorting and condensing entries. (Generally, we don't edit the to start sorting and condensing entries. (Generally, we don't edit the
text of existing entries, though.) text of existing entries, though.)
4. In `maint-0.2.x`, bump the version number in `configure.ac` and run
=== III. Making the source release.
1. In `maint-0.2.x`, bump the version number in `configure.ac` and run
`scripts/maint/updateVersions.pl` to update version numbers in other `scripts/maint/updateVersions.pl` to update version numbers in other
places, and commit. Then merge `maint-0.2.x` into `release-0.2.x`. places, and commit. Then merge `maint-0.2.x` into `release-0.2.x`.
@ -86,20 +118,19 @@ Here are the steps Roger takes when putting out a new Tor release:
either `make`, or `perl scripts/maint/updateVersions.pl`, depending on either `make`, or `perl scripts/maint/updateVersions.pl`, depending on
your version.) your version.)
5. Make distcheck, put the tarball up somewhere, and tell `#tor` about 2. Make distcheck, put the tarball up somewhere, and tell `#tor` about
it. Wait a while to see if anybody has problems building it. Try to it. Wait a while to see if anybody has problems building it. Try to
get Sebastian or somebody to try building it on Windows. get Sebastian or somebody to try building it on Windows.
6. Get at least two of weasel/arma/Sebastian to put the new version number === IV. Commit, upload, announce
in their approved versions list.
7. Sign the tarball, then sign and push the git tag: 1. Sign the tarball, then sign and push the git tag:
gpg -ba <the_tarball> gpg -ba <the_tarball>
git tag -u <keyid> tor-0.2.x.y-status git tag -u <keyid> tor-0.2.x.y-status
git push origin tag tor-0.2.x.y-status git push origin tag tor-0.2.x.y-status
8. scp the tarball and its sig to the dist website, i.e. 2. scp the tarball and its sig to the dist website, i.e.
`/srv/dist-master.torproject.org/htdocs/` on dist-master. When you want `/srv/dist-master.torproject.org/htdocs/` on dist-master. When you want
it to go live, you run "static-update-component dist.torproject.org" it to go live, you run "static-update-component dist.torproject.org"
on dist-master. on dist-master.
@ -110,7 +141,7 @@ Here are the steps Roger takes when putting out a new Tor release:
once. Nonetheless, do not call your version "alpha" if it is stable, once. Nonetheless, do not call your version "alpha" if it is stable,
or people will get confused.) or people will get confused.)
9. Email the packagers (cc'ing tor-assistants) that a new tarball is up. 3. Email the packagers (cc'ing tor-assistants) that a new tarball is up.
The current list of packagers is: The current list of packagers is:
- {weasel,gk,mikeperry} at torproject dot org - {weasel,gk,mikeperry} at torproject dot org
@ -120,24 +151,29 @@ Here are the steps Roger takes when putting out a new Tor release:
- {lfleischer} at archlinux dot org - {lfleischer} at archlinux dot org
- {tails-dev} at boum dot org - {tails-dev} at boum dot org
10. Add the version number to Trac. To do this, go to Trac, log in, 4. Add the version number to Trac. To do this, go to Trac, log in,
select "Admin" near the top of the screen, then select "Versions" from select "Admin" near the top of the screen, then select "Versions" from
the menu on the left. At the right, there will be an "Add version" the menu on the left. At the right, there will be an "Add version"
box. By convention, we enter the version in the form "Tor: box. By convention, we enter the version in the form "Tor:
0.2.2.23-alpha" (or whatever the version is), and we select the date as 0.2.2.23-alpha" (or whatever the version is), and we select the date as
the date in the ChangeLog. the date in the ChangeLog.
11. Forward-port the ChangeLog (and ReleaseNotes if appropriate). 5. Wait up to a day or two (for a development release), or until most
12. Wait up to a day or two (for a development release), or until most
packages are up (for a stable release), and mail the release blurb and packages are up (for a stable release), and mail the release blurb and
changelog to tor-talk or tor-announce. changelog to tor-talk or tor-announce.
(We might be moving to faster announcements, but don't announce until (We might be moving to faster announcements, but don't announce until
the website is at least updated.) the website is at least updated.)
13. If it's a stable release, bump the version number in the `maint-x.y.z`
=== V. Aftermath and cleanup
1. If it's a stable release, bump the version number in the `maint-x.y.z`
branch to "newversion-dev", and do a `merge -s ours` merge to avoid branch to "newversion-dev", and do a `merge -s ours` merge to avoid
taking that change into master. Do a similar `merge -s theirs` taking that change into master. Do a similar `merge -s theirs`
merge to get the change (and only that change) into release. (Some merge to get the change (and only that change) into release. (Some
of the build scripts require that maint merge cleanly into release.) of the build scripts require that maint merge cleanly into release.)
2. Forward-port the ChangeLog (and ReleaseNotes if appropriate).