Mantis Release Process

Readiness

  • Review the issues in bugtracker to make sure there are no critical issues that need to be included in the release.
  • Check with the developers (via IRC) that there are no pending issues for the release.
  • Notify translators that the release is coming soon and specify time frame for accepting translations to be integrated into the release.

Testing

  • General testing.
    • At a minimum, each page that has been touched should be visited, and all links and buttons checked for functionality.
  • Test the changes in the release, specially the latest one applied.
  • Test upgrading previous releases.
    • Where the database schema has been changed, both a new install and an upgrade of a reasonably populated install should be tried.

For major releases, a regression of all features is very desirable. Testing should cover:

  • multiple database platforms
  • integration with other tools (e.g., wiki, source code management)
  • optional features (e.g., graphs)

The test process for Mantis in the Debian distro can be found at http://svn.debian.org/wsvn/collab-maint/ext-maint/mantis/trunk/debian/TestingNewRelease?op=file&rev=0&sc=0 .

Localization

  • Update localizations as needed (i.e. commit any pending translations).
  • Run the localization synch/update scripts.
  • Run /admin/test_langs.php to detect any syntax errors in the localization files.
  • Commit the changes

File Cleanup

  • Run the linterm script on all the files to make sure the line terminations are UNIX style.
  • Commit the changes

Preparation

  • Remove references to any debug statements (eg. mark_time()).
  • Add the changelog section for the new release in doc/ChangeLog
    • if releasing from the stable branch, remember to update also the ChangeLog in SVN trunk
    • the entries should be sorted by category, then by issue number within each category; the security category should be on the top of the list.
  • Update CREDITS file.
  • Update Copyright year/users, if needed.
  • Make sure enough testing is done for the main functionality and the admin section (see the “Testing” section).
  • Update the version number in core/constant_inc.php.
  • Commit the changes.

Repository

  • Create an annotated tag in Git, the tag should be formatted as “release-1.x.x”
    • For stable releases:
      $ git checkout master-1.x.x
      $ git tag -a release-1.x.x -m "Stable release 1.x.x"
      $ git push origin release-1.x.x
      
    • For development releases:
      $ git checkout master
      $ git tag -a release-1.x.x -m "Development release 1.x.x"
      $ git push origin release-1.x.x
      
  • In case we are starting a new stable branch, also create it using the format “master-1.x.x”:
    $ git branch master-1.x.x master
    $ git push origin master-1.x.x
    

Packaging

Generate release tarballs using the buildrelease-repo.py script found in the mantisbt-dev.git repository:

$ /path/to/buildrelease-repo.py --docbook --ref release-1.x.x /path/to/output /path/to/repo

This will create a .zip and .tgz tarball of the release, and create a .digest file for each tarball with md5 and sha1 hashes, all in the /path/to/output directory specified in the command. The –docbook option will automatically build single-file versions of the manuals into the tarball’s /doc directory.

Source Forge

  • Upload the release to Source Forge
    • FTP Server: upload.sourceforge.net
    • Folder: incoming
  • Release through the SF.net mechanism. The release name should be “1.0.0”. Put the release in the appropriate packaged based on whether it is a stable or a development release. Release candidates and alphas are “development” releases.
  • Download the release off SF.net and verify correctness.
  • Post news on Mantis SF project area.

Bugtracker

  • Close all resolved issues that are fixed in the release being released.
  • Change the status of the release to be “Released”.
  • Add the next release to the Mantis versions and mark it as NOT released.
  • Add news about the new release.

Website

  • Update FILES folder which includes the following:
  • Changelog
    • Latest development/stable versions.
    • Credits
    • etc.

Deploy

  • Upgrade the database if needed (admin/admin_upgrade.php).
  • Run admin/admin_check.php and resolve any issues.
  • Login and do simple testing.
  • In the mantisbt/ folder you need to grant group members permission to write to files that you made.
    • type chmod g+w -R *

Notification

  • Blog: Post an announcement
  • IRC: Change the title of #mantishelp to announce the new release and encourage people to use it.
  • Forums: Announce the release on the Announcements forum.
  • Mailing Lists: Send a message to mantisbt-announce / mantisbt-dev / mantisbt-help / mantisbt-lang to announce the new release and encourage users to upgrade. Include a copy of the change log (or a link to it) for the release in the message.
 
Logged in as: anonymous
mantisbt/release_process.txt · Last modified: 2011/11/16 07:53 by atrol
 
SourceForge Logo