Various release process doc improvements.
[tails/vicves.git] / wiki / src / contribute / release_process / persistence-setup.mdwn
blob5c1e10527518629cb07871c4343fe57609cbcdb4
1 [[!meta title="Releasing persistence-setup"]]
3 [[!toc levels=1]]
5 Install build and test dependencies
6 ===================================
8 Required dependencies on Debian:
10     libdist-zilla-perl libdist-zilla-plugins-cjm-perl
11     libdist-zilla-plugin-installguide-perl
12     libdist-zilla-plugin-test-perl-critic-perl
13     libdist-zilla-plugin-test-notabs-perl
14     libdist-zilla-plugin-git-perl
15     liblocale-msgfmt-perl libmoosex-has-sugar-perl
16     dh-make-perl
18 Install the dependencies:
20     DEB_BUILD_OPTIONS=nocheck dh-make-perl --build --install --cpan Dist::Zilla::Plugin::OurPkgVersion
21     dh-make-perl --build --install --cpan Dist::Zilla::Plugin::CheckChangeLog
22     DEB_BUILD_OPTIONS=nocheck dh-make-perl --build --install --cpan Dist::Zilla::Plugin::LocaleMsgfmt
25 Update POT and PO files
26 =======================
28     git checkout master && \
29         ( cd po && make pot && make update-po ) && \
30         git commit po -m 'Update POT and PO files.'
32 Make an upstream release
33 ========================
35 Enable new translations in `po/PACKAGE` and commit.
37 Export new upstream version number:
39     export VERSION=XXX
41 Update version number in `bin/tails-persistence-setup`:
43     perl -pi -E 's,^Version [0-9.]+,Version $ENV{VERSION},' bin/tails-persistence-setup
44     perl -pi -E "s,^our \\\$VERSION = '[0-9.]+';\$,our \\\$VERSION = '$VERSION';," bin/tails-persistence-setup
46 Commit all files that need to be:
48     git commit bin/tails-persistence-setup -m "tails-persistent-setup $VERSION"
50 Run the upstream test suite (point `PERL5LIB` to a checkout of the
51 relevant tag of Tails' perl5lib):
53     RELEASE_TESTING=1 PERL5LIB=/home/user/tails/perl5lib/lib fakeroot dzil test
55 Build an upstream tarball:
57     dzil build
59 Tag the release:
61     git tag -s $VERSION -m "tails-persistent-setup $VERSION"
63 Move the tarball out of the build repository and cleanup:
65     mv Tails-Persistence-*.tar.gz .. && \
66        rm -rf Tails-Persistence-* .build po/*.mo
68 Update the Debian package
69 =========================
71 Checkout the branch with Debian package specifics:
73     git checkout debian
75 Import the new upstream tarball:
77     git-import-orig --upstream-vcs-tag=$VERSION ../Tails-Persistence-$VERSION.tar.gz
79 Update `debian/changelog`:
81     git-dch && dch -e
83 (Do not forget to set the appropriate release.)
85 Commit `debian/changelog`:
87         git commit debian/changelog -m "$(head -n 1 debian/changelog | sed -e 's,).*,),')"
89 Build a Debian package (use a Squeeze/i386 + backports chroot, that
90 has either tails-perl5lib installed, or the Tails APT repository
91 configured):
93     git-buildpackage
95 If everything is fine, add a signed tag to the repository and push the
96 changes:
98     git-buildpackage --git-tag-only --git-sign-tags && \
99        git push && git push --tags
101 (Make sure `master`, `upstream`, `debian` and `pristine-tar` were all pushed.)
103 Add the Debian package to Tails
104 ===============================
106 Sign the package:
108     debsign $CHANGES_FILE
110 Upload:
112     dupload --to tails $CHANGES_FILE