README.RELEASE 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. # Magical Torbutton Release Process Incantations
  2. #
  3. # "May this part of my job one day be replaced by a small shell script"
  4. #
  5. #. Decide the version number.
  6. export VERSION="1.5.2"
  7. vim ./src/install.rdf # edit <em:version> tag to reflect version
  8. #. Test upgrades of candidate XPI in latest Firefox and TBB product matrix
  9. # TODO: Currently manual
  10. #. Generate changelog from git shortlog
  11. # TODO: Currently manual
  12. #. tx noise: https://svn.torproject.org/svn/translation/trunk/documentation/howto.txt
  13. cd torbutton.git/trans_tools/po
  14. torsocks svn up
  15. torsocks tx pull -a
  16. cd ..
  17. ./validate_all.sh | less
  18. torsocks ./new_tb_strings.sh
  19. ./mkmoz.sh
  20. ./mvmoz.sh
  21. cd ..
  22. git diff .
  23. git commit .
  24. #. Tag the release:
  25. git tag -u mikeperry@fscked.org -s ${VERSION}
  26. torsocks git push origin-push --tags
  27. #. Create the .xpi
  28. cd /tmp/
  29. torsocks git clone git://git.torproject.org/git/torbutton.git torbutton-release
  30. cd torbutton-release
  31. git tag -v ${VERSION} # verify signature against git protocol haaAAXXXX
  32. git checkout -b tag-${VERSION} ${VERSION}
  33. mkdir ./pkg
  34. sh makexpi.sh
  35. #. SHA1 + Sign the .xpi
  36. gpg -abs ./pkg/torbutton-${VERSION}.xpi
  37. sha1sum ./pkg/torbutton-${VERSION}.xpi
  38. #. Upload .xpi to website
  39. chmod 664 ./pkg/torbutton-${VERSION}.xpi*
  40. torsocks scp ./pkg/torbutton-${VERSION}.xpi* vescum:/srv/www-master.torproject.org/htdocs/dist/torbutton/
  41. torsocks scp ./pkg/torbutton-${VERSION}.xpi vescum:/srv/www-master.torproject.org/htdocs/dist/torbutton/torbutton-current.xpi
  42. torsocks scp ./pkg/torbutton-${VERSION}.xpi.asc vescum:/srv/www-master.torproject.org/htdocs/dist/torbutton/torbutton-current.xpi.asc
  43. #. Update update-unsigned.rdf in torbutton.git with package sha1
  44. cd torbutton.git
  45. vim update-unsigned.rdf # Add <li> and <description> w/ sha1 and version
  46. #. Sign the new update-unsigned.rdf.
  47. # Key creation based on these instructions:
  48. # Command line: http://blog.techno-barje.fr/post/2009/10/08/How-to-setup-a-mozilla-extension-update-server/
  49. # Gui: https://www.binaryturf.com/steps-release-extension-firefox-3/
  50. # TODO: Process currently manual due to offline signing.
  51. # No need to fear the reaper, man. We can do online signing if we just put
  52. # our minds to it: https://trac.torproject.org/projects/tor/ticket/6011
  53. # Special note: I was unable to update an already signed
  54. # copy of the update.rdf for a new release. We probably need to
  55. # keep the unsigned version around as input? See the root directory
  56. # of the torbutton.git for a copy.
  57. ./mccoy-cli.x86/mccoy -profile ./.mozilla/mccoy/*.default/ -signRDF update-unsigned.rdf -key Torbutton
  58. # Copy the signed update.rdf into place in the website svn
  59. #. Update update.rdf
  60. cd website-svn
  61. vim ./include/versions.wmi # Add sha1 and version
  62. cp /mnt/update-signed.rdf ./torbutton/update.rdf
  63. #. Update website
  64. torsocks svn up .
  65. torsocks svn commit .
  66. torsocks ssh vescum "/home/mirroradm/bin/trigger-mirrors"
  67. #. Test firefox autoupdate
  68. # Wait for mirrors to sync first.. Pester phobos/weasel/helix/Sebastian for
  69. # website push + dist chown + mirror update.
  70. # TODO: Currently manual
  71. #. Announce on tor-talk
  72. # FIXME: May need eventual minor improvements
  73. echo "Troll food." | mail tor-talk@lists.torproject.org -s "Feed the trolls"