Commit 689bf0de authored by's avatar Committed by amnesia
Browse files


parent 33916bfd
... including:
[[!toc levels=1]]
Coordinate with Debian security updates
See [[release_process/Debian_security_updates]].
Update included files
Merge the `master` branch into the one used to build the release.
### version number
In the branch used to build the release, update the `inc/*` files to
match the *version number* and *date* of the new release. Don't update
`/inc/stable_i386_hash.html` since the hash can't be computed yet.
### design documentation
git grep PENDING wiki/src/contribute/design*
... and remove the `PENDING-FOR-N.M` warnings.
AdBlock patterns
Patterns are stored in
upgrade i2p
See [[todo/upgrade i2p]].
Update Changelog
./release 0.3 0.2
This populates the Changelog with the Git log entries.
Now cleanup some parts of it (semi-)automatically:
perl -pi'' -e 's/\A \[ IkiWiki::Plugin::po::change \]\n//' debian/changelog
perl -pi'' -e 's/\A \* updated PO files\n//' debian/changelog
perl -pi'' -e 's/\A \[ 127\.0\.0\.1 \]\n//' debian/changelog
perl -pi'' -e 's/\A \[ amnesia \]\n//' debian/changelog
perl -pi'' -e 's/\A \[ anonym \]\n//' debian/changelog
perl -pi'' -e 's/\A \[ T\(A\)ILS developers \]\n//' debian/changelog
perl -pi'' -e 's/\A \[ Tails developers \]\n//' debian/changelog
perl -pi'' -e 's/\A \* Added a comment\n//' debian/changelog
perl -pi'' -e 's/\A \* Added a comment:.*\n//' debian/changelog
perl -pi'' -e 's/\A \* todo\+\+\n//i' debian/changelog
perl -pi'' -e 's/\A \* todo--\n//i' debian/changelog
... then launch an editor for the needed cleanup of the result.
Build images
[[Build images|build]] and carefully read the build logs to make sure
nothing bad happened.
image size
Check the image size has not changed much since the last release.
SquashFS files order
Build ISO images, profile them and update `squashfs.order` in the Git
repository. Then rebuild images.
See [[todo/improve_boot_time_on_cd]] for details.
Until [[todo/automated_builds_and_tests]] are setup, some minimal, manual testing
has to be done by the person doing the release, in addition to the
real-world tests done by fellow beta-testers.
The manual testing process [[is documented on a dedicated
page|release_process/test]] in order not to clutter this one too much.
Tag the release in Git
git tag -u BE2CD9C1 -m "tagging version ${NEW_VERSION}" "${NEW_VERSION}"
Generate the Torrents
First, create a directory with a suitable name for every image to be
released, such as `tails-i386-0.7`.
Second, copy the built images to these brand new directories and
rename it to fit our `tails-ARCH-DEBIAN_CODENAME-VERSION.iso` naming
convention e.g.:
mv tails-i386-squeeze-0.7-20110303.iso \
Third, generate detached GnuPG signatures for every published image,
in the same directory as the image and with a .pgp extension; e.g.
gpg --armor --default-key BE2CD9C1 --detach-sign *.iso
ls --color=never -1 *.asc | while read asc ; do mv $asc ${asc%%.asc}.pgp ; done
Fourth, create a `.torrent` file for every directory to be published:
mktorrent -a \
',http://z6gw6skubmo2pj43.onion:8080/announce' \
Fifth, check the generated `.torrent` files metainfo, e.g.
using `btshowmetainfo`, to make sure they don't contain
unwanted information.
Sixth, generate detached GnuPG signatures for every published
`.torrent` file:
gpg --armor --default-key BE2CD9C1 --detach-sign \
FIXME: mv the .torrent detached signature to have the .pgp extension
as well.
Upload images
## Upload to HTTP mirrors
- upload
- make sure every webserver listed in the `` round
robin pool has the new version
- test downloading
## Announce, seed and test the Torrents
Announce and seed the Torrents using whatever box you can.
A decent, stable and permanent Internet connexion is required.
Test them with a BitTorrent client running in a different place.
Update the website and Git repository
Rename the `.packages` file to remove the `.iso` part of its name.
Copy the `.iso.pgp`, `.packages`, `.torrent` and `.torrent.pgp`
files to the Git repository's `wiki/src/torrents/files/` directory.
Update the latest version and related information in `inc/*`.
Generate the SHA-256 hash of every image to be released in `inc/*`; e.g.
sha256sum tails-i386-0.7.1.iso | cut -f 1 -d ' ' | tr -d '\n' \
> stable_i386_hash.html
Update todo and bugs tags:
- in `todo/*`: replace `pending` tags with `todo/done` tags
- in `bugs/*`: replace links to `pending` with links to `done` (`[[done]]`)
Update the [[features]] page.
Write the announce for the release in `news/version_X.Y.mdwn`. Use the
meta directive to set the post title to "Tails X.Y was released" so
that aggregators (such as Planet Debian Derivatives) display a more
catchy title.
Write an announce listing the security bugs affecting the previous
version in `security/` in order to let the users of the old versions
know that they have to upgrade. This announce page shall be dated back
to a few days before the one to be released was *built*.
Then add the updated `debian/changelog` and you should be ready to
record the last commit before tagging happens:
git commit -m "releasing version ${NEW_VERSION}"
Go wild!
Push the last commits and the release tag to our Git repository:
git push --tags
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment