Version 81 (modified by 4 years ago) (diff) | ,
---|
String Freeze
A string freeze should be announced about a week before each release, or longer if a large number of strings have changed. This is a guarantee from the developers to the translators that no more strings will be added or changed so that the translators aren't trying to hit a moving target.
- Are there any branches that need to be merged into trunk (e.g. pidgin.mxit)?
- In a clean workspace, cd into the po/ directory and run this command. It will print warnings if there are files that need to be added to either POTFILES.in or POTFILES.skip:
intltool-update --maintain
- Make sure the newest pidgin.pot exists on the l10n page
- Make sure the newest pidgin.pot exists at Transifex
- Send an email to translators@… and devel@… announcing the string freeze.
Pre-Release
Commit Updated Translations
Background
Transifex is configured to automatically pull pidgin.pot from https://developer.pidgin.im/l10n/. When it gets a new pidgin.pot it merges the updates to all translations and bumps the "last updated" timestamp. Because of this it's difficult to tell which translations have updates from translators. Because of this we fetch and commit all translations from Transifex before releasing. However, some translators have commit access to our repository and commit their translations directly. We need to upload these translations to Transifex before fetching everything.
Note
Ask Mark Doliner or Richard Laager if you need administrative access to Pidgin's Transifex project for the following steps.
Steps
- Upload pending translation updates from our Trac to Transifex.
- Find translations that have been committed directly since the last release and upload these to Transifex.
hg log -b BRANCH_NAME po/
- Fetch and commit all translations from Transifex.
cd po
make pidgin.pot
tx pull --force
- Pulls all translations from Transifex, even if local timestamp is newer than remote.XGETTEXT_ARGS=--no-location intltool-update --report
- Merges current strings into translations and strips filename and line numbers to keep diffs smaller.find -name \*.po -exec msgfmt -cv {} \;
- Check for mismatched c-format specifiers. These can cause crashes so look at the output carefully! If any are found, follow these steps:- Edit the translation in Transifex.
- Remove the string with the mismatched c-format specifiers (leave it blank).
tx pull --force --language=NN
- Pull the updated translation from Transifex.
Other Pre-Release Steps
- Make sure list of translators in pidgin/gtkdialogs.c matches the Transifex translations teams. (TODO: This is labor intensive and error prone. Should find a way to automate.)
- Check there are no open tickets for this release milestone
- Make sure the date and version number are correct in ChangeLog and ChangeLog.API
- Change version number at the top of configure.ac, set
purple_version_suffix
andgnt_version_suffix
to[betaN]
for betas and[]
for a full release - Check pidgin.spec.in, make sure that "%define beta 7" is commented/uncommented appropriately
- Run '
make distcheck
' and fix any problems it turns up - Test a tarball to make sure everything works
- Verify that win32 builds succeed (including building installers).
Release
- Tag the repository.
VERSION=2.6.2 # for example TAG=v$VERSION hg tag -r $REVISION $TAG
Extract the tagged codehg archive -r $TAG ../pidgin-$VERSION
cd ../pidgin-$VERSION
Run./autogen.sh
- The previous steps broke the revision number in the about dialog so don't do them.
- Run
hg up -r $TAG
- Run
make release
This will perform the following steps (which can also be done by hand at this point):make commit-check
- Checks a few files for correctness (UTF-8 encoding, sort order, etc.).make version-check
- Make sure version string does not contain "dev," version is correct in ChangeLogs?, and we're building from a clean hg tag.make distcheck
- Standard automake target. Builds and verifies tarballs. If "distcheck" fails and you're sure the failure is innocuous then you can usemake dist
, instead.make sign-packages
- Creates a gpg signature of the two tarballs.
- Build on Windows
- If there's a new GTK+ Bundle, upload the zip file to Sourceforge and make sure that the
BUNDLE_SHA1SUM
inpidgin/win32/nsis/generate_gtk_zip.sh
is correct (this should have been checked beforemake release
). - Check the authenticode signature and timestamp for the installers (unfortunately needs to be done on a Windows box with the Platform SDK installed)
signtool.exe verify /pa /tw pidgin-$VERSION-offline.exe signtool.exe verify /pa /tw pidgin-$VERSION.exe
- Install
pidgin-$VERSION-offline.exe
and check the authenticode signature and timestamp of pidgin.exesigntool.exe verify /pa /tw %ProgramFiles(x86)%\Pidgin\pidgin.exe
- If there's a new GTK+ Bundle, upload the zip file to Sourceforge and make sure that the
hg push
the tag.- Upload the two tarballs, the two signatures, and the Windows builds to Sourceforge
- Wait a few hours and let people test.
- Build and upload new API docs.
- Run
make
locally? scp docs/reference/libpurple/html nicobar.pidgin.im:/srv/www/developer.pidgin.im/doxygen/x.y.z/libpurple/
scp docs/reference/pidgin/html nicobar.pidgin.im:/srv/www/developer.pidgin.im/doxygen/x.y.z/pidgin/
scp docs/reference/finch/html nicobar.pidgin.im:/srv/www/developer.pidgin.im/doxygen/x.y.z/finch/
- Run
- Update the Pidgin website
- Change inc/version.inc.php (only for full releases, not for betas)
- Update the ChangeLog in https://hg.pidgin.im/www/pidgin/ (this is used by the release notification plugin)
- Update the ChangeLog wiki page
- Send announcement email to announce and packagers mailing lists (sending to announce also sends to support and devel)
Post Release
- Increment version number in configure.ac & set purple_version_suffix and gnt_version_suffix to [devel]
- Update #pidgin topic
- Add new Trac Version for this release
- Add new Trac milestone for the next release
- "Complete" old milestone
- Bump the auto-close script to target auto-closed bugs to the new milestone (/srv/trac/developer.pidgin.im/mercurial_support/trac-hg-post-commit-hook.py on nicobar.pidgin.im)
- Update "The Road to" on WikiStart to list tickets for the new version