ReleasingTor.txt 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. Putting out a new release
  2. -------------------------
  3. Here are the steps Roger takes when putting out a new Tor release:
  4. 1) Use it for a while, as a client, as a relay, as a hidden service,
  5. and as a directory authority. See if it has any obvious bugs, and
  6. resolve those.
  7. 1.5) As applicable, merge the maint-X branch into the release-X branch.
  8. 2) Gather the changes/* files into a changelog entry, rewriting many
  9. of them and reordering to focus on what users and funders would find
  10. interesting and understandable.
  11. 2.1) Make sure that everything that wants a bug number has one.
  12. Make sure that everything which is a bugfix says what version
  13. it was a bugfix on.
  14. 2.2) Concatenate them.
  15. 2.3) Sort them by section. Within each section, sort by "version it's
  16. a bugfix on", else by numerical ticket order.
  17. 2.4) Clean them up:
  18. Standard idioms:
  19. "Fixes bug 9999; bugfix on 0.3.3.3-alpha."
  20. One space after a period.
  21. Make stuff very terse
  22. Make sure each section name ends with a colon
  23. Describe the user-visible problem right away
  24. Mention relevant config options by name. If they're rare or unusual,
  25. remind people what they're for
  26. Avoid starting lines with open-paren
  27. Present and imperative tense: not past.
  28. 'Relays', not 'servers' or 'nodes' or 'Tor relays'.
  29. "Stop FOOing", not "Fix a bug where we would FOO".
  30. Try not to let any given section be longer than about a page. Break up
  31. long sections into subsections by some sort of common subtopic. This
  32. guideline is especially important when organizing Release Notes for
  33. new stable releases.
  34. If a given changes stanza showed up in a different release (e.g.
  35. maint-0.2.1), be sure to make the stanzas identical (so people can
  36. distinguish if these are the same change).
  37. 2.5) Merge them in.
  38. 2.6) Clean everything one last time.
  39. 2.7) Run ./scripts/maint/format_changelog.py to make it prettier.
  40. 3) Compose a short release blurb to highlight the user-facing
  41. changes. Insert said release blurb into the ChangeLog stanza. If it's
  42. a stable release, add it to the ReleaseNotes file too. If we're adding
  43. to a release-0.2.x branch, manually commit the changelogs to the later
  44. git branches too.
  45. 4) In maint-0.2.x, bump the version number in configure.ac and run
  46. scripts/maint/updateVersions.pl to update version numbers in other
  47. places, and commit. Then merge maint-0.2.x into release-0.2.x.
  48. (NOTE: TO bump the version number, edit configure.ac, and then run
  49. either make, or 'perl scripts/maint/updateVersions.pl', depending on
  50. your version.)
  51. 5) Make dist, put the tarball up somewhere, and tell #tor about it. Wait
  52. a while to see if anybody has problems building it. Try to get Sebastian
  53. or somebody to try building it on Windows.
  54. 6) Get at least two of weasel/arma/sebastian to put the new version number
  55. in their approved versions list.
  56. 7) Sign the tarball, then sign and push the git tag:
  57. gpg -ba <the_tarball>
  58. git tag -u <keyid> tor-0.2.x.y-status
  59. git push origin tag tor-0.2.x.y-status
  60. 8a) scp the tarball and its sig to the dist website, i.e.
  61. /srv/dist-master.torproject.org/htdocs/ on dist-master. When you want
  62. it to go live, you run "static-update-component dist.torproject.org"
  63. on dist-master.
  64. 8b) Edit "include/versions.wmi" and "Makefile" to note the new version.
  65. 9) Email the packagers (cc'ing tor-assistants) that a new tarball is up.
  66. The current list of packagers is:
  67. {weasel,gk,mikeperry} at torproject dot org
  68. {blueness} at gentoo dot org
  69. {paul} at invizbox dot io
  70. {ondrej.mikle} at gmail dot com
  71. {lfleischer} at archlinux dot org
  72. 10) Add the version number to Trac. To do this, go to Trac, log in,
  73. select "Admin" near the top of the screen, then select "Versions" from
  74. the menu on the left. At the right, there will be an "Add version"
  75. box. By convention, we enter the version in the form "Tor:
  76. 0.2.2.23-alpha" (or whatever the version is), and we select the date as
  77. the date in the ChangeLog.
  78. 11) Forward-port the ChangeLog.
  79. 12) Wait up to a day or two (for a development release), or until most
  80. packages are up (for a stable release), and mail the release blurb and
  81. changelog to tor-talk or tor-announce.
  82. (We might be moving to faster announcements, but don't announce until
  83. the website is at least updated.)
  84. 13) If it's a stable release, bump the version number in the maint-x.y.z
  85. branch to "newversion-dev", and do a "merge -s ours" merge to avoid
  86. taking that change into master. Do a similar 'merge -s theirs'
  87. merge to get the change (and only that change) into release. (Some
  88. of the build scripts require that maint merge cleanly into release.)