= 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 Create a release coordination ticket with keyword [kwquery:release]. The coordination ticket is usually created early in the milestone. === 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 * Check 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.9** or later on Windows // * Check out trunk (or the release branch) to a '''clean''' sandbox * Build source archives on Unix: {{{#!sh 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 {{{#!dos python.exe setup.py bdist_wininst }}} * 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. * The previous set of milestones should have their descriptions changed to remove the ''latest maintenance/development release'' message. * 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// === Prepare for development * Update version number in [source:trunk/setup.py], [source:trunk/trac/wiki/default-pages/WikiStart], and [source:trunk/trac/__init__.py] * Uncomment `tag_build` and `tag_svn_revision` settings in [source:trunk/setup.cfg] * Create a new [TracDev/ApiChanges ApiChanges] page by copying the HEAD revision of the !ApiChanges page of the previous milestone (e.g. [wiki:TracDev/ApiChanges/1.1.3@16] -> [wiki:TracDev/ApiChanges/1.1.4@1]). ---- See also: TracDev