= 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. 1. 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 }}} 2. Send an email to translators@pidgin.im and devel@pidgin.im announcing the string freeze. = Pre Release = 1. Commit any [query:?status=new&status=assigned&status=reopened&type=translation&order=priority pending translation updates] 2. Check there are no Blocker or Critical bugs targeted for this release 3. Make sure the date and version number are correct in !ChangeLog, !ChangeLog.win32, !ChangeLog.API and po/ChangeLog 4. Update NEWS 5. Change version number at the top of configure.ac, set {{{purple_version_suffix}}} '''and''' {{{gnt_version_suffix}}} to {{{[betaN]}}} for betas and {{{[]}}} for a full release 6. Check pidgin.spec.in, make sure that "%define beta 7" is commented/uncommented appropriately 7. Run '{{{make distcheck}}}' and try to find crazy people to fix any problems it turns up 8. Make a test tarball and RPM and test to make sure everything works 9. Verify that win32 builds succeed = Release = 1. Tag the repository. {{{ TAG=v2.0.2 # for example mtn tag $REVISION $TAG }}} 2. Check out the tagged code {{{ mtn -d $DATABASE co -r t:$TAG pidgin-$VERSION }}} 3. Run {{{./autogen.sh}}} 4. Run {{{make dist}}} 5. Run {{{gzip -d -c pidgin-$VERSION.tar.gz | bzip2 > pidgin-$VERSION.tar.bz2}}} 6. Sign the two tarballs {{{ gpg -ab pidgin-$VERSION.tar.gz gpg -ab pidgin-$VERSION.tar.bz2 gpg --verify pidgin-$VERSION.tar.gz.asc pidgin-$VERSION.tar.gz gpg --verify pidgin-$VERSION.tar.bz2.asc pidgin-$VERSION.tar.bz2 }}} 7. Build the SRPM {{{ rpmbuild -ts --sign --with avahi --with dbus --with meanwhile \ --with sasl --with silc --with tcl pidgin-$VERSION.tar.bz2 }}} 8. Upload the two tarballs, the two signatures, and the src.rpm 9. Make RPMs for lots of distributions and upload them a. Install the src.rpm {{{ rpm -Uvh pidgin-$VERSION-0.src.rpm }}} b. Edit $rpmbuild/SPECS/pidgin.spec and append the distro name to the end of the Release line. For example, ".fc5" c. Build {{{ rpmbuild -bb --sign --with avahi --with dbus --with meanwhile \ --with sasl --with silc --with tcl $rpmbuild/SPECS/pidgin.spec }}} 10. Wait a few hours and let people test. 11. Update the Pidgin website a. Change inc/version.inc.php (only for full releases, not for betas) b. Update the !ChangeLog in pidgin.im web mtn (this is used by the release notification plugin) c. Update the ChangeLog 12. Announce via sourceforge = Post Release = 1. Increment version number in configure.ac & set purple_version_suffix and gnt_version_suffix to [dev] 2. Update freshmeat.net 3. Update #pidgin topic and on-join message 4. Update Trac Version field to include new version 5. Add a new Trac milestone for the new version 6. "Complete" old milestone 7. Bump the auto-close script to target auto-closed bugs to the new milestone 8. Update "The Road to" on WikiStart to list tickets for the new version