= Checklist of things to do before a release == Preparing a minor release 1.x.y === 2 weeks before Announce a string freeze on Trac-dev, so that the translators can catch up with the last changes. Update the TracDev/ReleaseTesting page, ask for testers. === 1 week before Prepare the rc1 packages according to the procedure described below in [#Releasesteps Release steps], test and upload them. Testing period. Only critical or no risk fixes. == Preparing a major release 1.x == === 1 month before Announce a beta1 / string freeze on Trac-dev. === 2 weeks before Prepare the rc1 packages. Testing period. Only critical or no risk fixes. == Release steps === Check the t.e.o wiki * Update the ChangeLog page * Verify TracInstall and TracUpgrade * For major releases: * check TracDev/ReleaseNotes, go through the tickets which have an empty //Release Notes// field and say a word there * check TracDev/ApiChanges === Check the source (replace ''trunk'' below with the corresponding branches/X-stable when preparing a minor releases) ==== Wiki related files * Verify that TracStandalone#Reference matches current `tracd --help` * If needed, do a last [TracProject/DefaultWikiPages#sync sync] * Check all default wikipages for TracLinks to non existing pages/resources * Verify that [source:trunk/trac/wiki/default-pages] contains all pages listed in TracProject/DefaultWikiPages * Update [source:trunk/RELEASE] from wiki ChangeLog * Update [source:trunk/ChangeLog] from wiki ChangeLog with release date (e.g. r11678) * Update [source:trunk/INSTALL] from wiki TracInstall * Update [source:trunk/UPGRADE] from wiki TracUpgrade ==== Other repository files * Import the translations from Transifex [wiki:TracL10N/Transifex#group3 that have no committers] * Check the [source:trunk/THANKS] file * Update version number in [source:trunk/setup.py], [source:trunk/trac/wiki/default-pages/WikiStart], [source:trunk/doc/conf.py], and [source:trunk/trac/__init__.py] * Check whether the jQuery and jQuery UI version numbers mentioned in the help match the actual ones (see for example r11041) * Comment out `tag_build` and `tag_svn_revision` settings in [source:trunk/setup.cfg] === Create dist packages // Note: be sure to use Python 2.7 on Windows // * Check out trunk (or the release branch) to a '''clean''' sandbox * Build source archives on Unix: {{{ python setup.py sdist --formats=gztar,zip }}} in order to get the files in `.tar.gz` and `zip` archives, with the proper LF line endings. **The `sdist` command must be performed from a svn < 1.7 checkout**, as only the data files also listed in the `.svn/entries` files are considered (that is, until [https://bitbucket.org/tarek/distribute/issue/252 distribute issue252] gets fixed) * Build Windows installers on x86 and x64 platforms - .exe installer {{{ python.exe setup.py bdist_wininst }}} TODO: Evaluate using `--user-access-control` [https://docs.python.org/2/distutils/builtdist.html#vista-user-access-control-uac option] -> "auto" doesn't help and "force" is annoying, as it will always ask for privilege escalation even if not actually needed; Instead, use Python 2.7.9, which creates installers which will simply warn that (manual) privilege escalation is needed, when it's needed (cf. Python-Issue:16561) * Test installation on all target platforms. \\ Install on a clean system. ''Remove any old Trac installation before testing.'' * Smoke test: - create an environment with `trac-admin`, test it with `tracd` - upgrade an environment created with the previous release' `trac-admin`, test it with `tracd` === Finalize the release * Tag/copy version in subversion * Upload to http://ftp.edgewall.org/pub/trac * Update TracDownload and [wiki:TracDev/ReleaseNotes/1.1#DevelopmentReleases] * Test `easy_install Trac` * //Update [http://pypi.python.org/pypi/Trac PyPi entry] (*)// * Post on Trac-users, Trac-dev (all releases) and Trac-announce, [https://twitter.com/TracProject #TracProject], [gforum:comp.lang.python.announce Python-announce] (only for non-beta releases) * //Close release coordination ticket (e.g. #9077) (*)// * Mark the finished milestones as //completed// (with the //completed date// preferably being the date that the releases were announced), and change their descriptions from //next// maintenance/development release to //latest// maintenance/development release. * The next set of milestones should have their descriptions changed to //next// maintenance/development release. * Attach copy of translations statistics chart of Transifex to the milestones. * Add [/admin/ticket/versions Version] entries for the new releases (*) * Update the //version// displayed in the #trac IRC //channel entry message// (*) {{{ /msg ChanServ set #trac entrymsg "The topic is: http://trac.edgewall.org/ | http://trac-hacks.org/ | Latest version - ." }}} //(*) not for beta or rc releases// === ---- See also: TracDev