User Tools

Site Tools


mantisbt:release_process

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
mantisbt:release_process [2014/02/08 15:52]
dregad
mantisbt:release_process [2019/08/08 19:29]
dregad [Repository Preparation] link to new mailmap page
Line 41: Line 41:
    * optional features (e.g., graphs)    * 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 .+For reference, you may also read the [[http://anonscm.debian.org/viewvc/collab-maint/ext-maint/mantis/trunk/debian/TestingNewRelease?view=log|test plan for new Mantis releases in Debian]].
  
  
Line 74: Line 74:
   * Remove references to any debug statements    * Remove references to any debug statements 
   * Update CREDITS file.   * Update CREDITS file.
-    * If necessary, update the ''.mailmap'' file at the repository's root, so that commit made by the same person under different names and/or e-mail addresses are properly aggregated (refer to [[http://www.kernel.org/pub/software/scm/git/docs/git-shortlog.html#_mapping_authors|git shortlog man page]] for details)+    * If necessary, [[mantisbt:mailmap|update the .mailmap file]], so that commit made by the same person under different names and/or e-mail addresses are properly aggregated
     * Run the script to update the Contributor's list <code>     * Run the script to update the Contributor's list <code>
 $ update-credits.sh $ update-credits.sh
Line 80: Line 80:
     * If needed, make any additional changes manually     * If needed, make any additional changes manually
   * Update the version number in core/constant_inc.php.   * Update the version number in core/constant_inc.php.
-  * Update doc/RELEASE to include the release notes. 
   * Commit the changes.   * Commit the changes.
 +
  
  
 ===== Cutting the Release ===== ===== Cutting the Release =====
  
-  * Create an annotated tag in Gitthe tag should be formatted as "release-1.x.x" +  * Create an annotated, GPG-signed tag in Gitthe tag should be formatted as "release-1.x.x" \\ \\ 
-    * For stable releases: GPG-signed tag <code>+     * For **stable releases** <code>
 $ git checkout master-1.M.x $ git checkout master-1.M.x
 $ VERSION=1.M.N $ VERSION=1.M.N
 $ git tag -s release-$VERSION -m "Stable release $VERSION" $ git tag -s release-$VERSION -m "Stable release $VERSION"
 </code> Note: If this fails, see below for tag signing troubleshooting </code> Note: If this fails, see below for tag signing troubleshooting
-    * For development releases: unsignedannotated tag <code>+    * For **development releases** (e.g. alphabeta, release candidates) <code>
 $ git checkout master $ git checkout master
 $ VERSION=1.M.N $ VERSION=1.M.N
-$ git tag -release-$VERSION -m "Development release $VERSION"+$ git tag -release-$VERSION -m "Development release $VERSION"
 </code> </code>
  
Line 111: Line 111:
 **Troubleshooting failure to sign tags** **Troubleshooting failure to sign tags**
  
-Signing the tag fail if GIT cannot map the user with the gpg key, as in the example below <code>+Signing the tag fails if GIT cannot map the user with the gpg key, as in the example below <code>
 $ git tag -s release-$VERSION -m "Stable release $VERSION" $ git tag -s release-$VERSION -m "Stable release $VERSION"
 gpg: skipped "Your Name <name@example.com>": secret key not available gpg: skipped "Your Name <name@example.com>": secret key not available
Line 151: Line 151:
   * Update Versions   * Update Versions
     - Go to the //Manage Projects page// for the //mantisbt// project     - Go to the //Manage Projects page// for the //mantisbt// project
-    - Update the version being released (//1.M.x//): +    - Update the version being released (''1.M.x''): 
-      * Rename it to //1.M.N// +      * Rename it to ''1.M.N'' 
-      * Update the "Date Orderfield to the actual release date +      * Update the //Date Order// field to the actual release date 
-      * Copy-paste the text from the release notes into the "Descriptionfield, update as appropriate +      * Copy-paste the text from the release notes into the //Description// field, update as appropriate 
-      * Tick the "Releasedbox +      * Tick the //Released// box 
-    - Create a new //1.M.x// version +    - Create a new ''1.M.x'' version 
-      * Set the "Date Orderfield to a future date +      * Set the //Date Order// field to a future date <WRAP important 90%> 
-      * Make sure the "Releasedbox is not ticked+The [[mantisbt:plugins:sourceintegration]] relies on this date to automatically set the //Fixed in version// field when processing commits referencing issues for resolution (i.e. ''Fixes #xxx'').  
 + 
 +For this to work properly, it is important that the **version targeted by the //master// branch always has the most recent date**. Adjust it if necessary (e.g. when cutting a patch release). 
 +</WRAP> 
 +      * Make sure the //Released// box is not ticked 
  
   * Update issues   * Update issues
     - Go to the //View Issues page//     - Go to the //View Issues page//
     - Close all resolved issues that are fixed in the version being released     - Close all resolved issues that are fixed in the version being released
-      * Set a new filter: //Status// = resolved, //Fixed in Version// = 1.M.N +      * Set a new filter: //Status// = resolved, //Fixed in Version// = ''1.M.N''
       * Review listed issues, update them as needed (in particular, check that //Resolution// = fixed)       * Review listed issues, update them as needed (in particular, check that //Resolution// = fixed)
       * Tick the //Select all// checkbox       * Tick the //Select all// checkbox
Line 169: Line 173:
       * Click the //Close Issues// button       * Click the //Close Issues// button
       * Repeat until the filter is empty       * Repeat until the filter is empty
-    - Carry open issues still targeted to 1.M.N over to the new 1.M.x version +    - Carry open issues still targeted to ''1.M.N'' over to the new ''1.M.x'' version 
-      * Set a new filter: //Hide Status// = closed (And Above), //Target Version// = 1.M.N +      * Set a new filter: //Hide Status// = closed (And Above), //Target Version// = ''1.M.N'' 
       * Tick the //Select all// checkbox       * Tick the //Select all// checkbox
       * Select //Update Target Version// and click OK       * Select //Update Target Version// and click OK
-      * Select //1.M.x// from the list and click the //Update Target Version// button+      * Select ''1.M.x'' from the list and click the //Update Target Version// button
       * Repeat until the filter is empty       * Repeat until the filter is empty
  
Line 182: Line 186:
     * Edit main website's config file ''/srv/www/main/config_inc.php''     * Edit main website's config file ''/srv/www/main/config_inc.php''
     * Update ''$g_latest_version_stable'' or ''$g_latest_version_dev'' as appropriate, to match the version being released     * Update ''$g_latest_version_stable'' or ''$g_latest_version_dev'' as appropriate, to match the version being released
 +
 +==== Nightly builds ====
 +
 +When releasing a new //major// (X+1.0.0) or //minor// (X.Y+1.0) release, the nightly builds script must be updated so that the files are generated for the appropriate branches.
 +
 +  * Edit the script ''/srv/mantisbt-tools/nightly-builds.sh''
 +  * Update the //branches// variable to specify the names of all the repository branches for which a nightly build is required
 +
 +To make the change permanent, the file should be committed to the //mantisbt/mantisbt-tools// repository.
 +
 +If desired, the script may be executed manually at this point. Note that it normally does not produce any output; check the log file at ''/var/log/nightly-builds.log'' for errors.
 +
 +<code>$ sudo /srv/mantisbt-tools/nightly-builds.sh</code>
  
  
Line 206: Line 223:
 === Manual process === === Manual process ===
  
-Also refer to MantisBT Administration Guide [[http://www.mantisbt.org/docs/master-1.2.x/en/administration_guide/admin.install.upgrade.html|upgrade section]].+Also refer to MantisBT Administration Guide [[http://www.mantisbt.org/docs/master-1.3.x/en-US/Admin_Guide/html-desktop/#admin.install.upgrade|upgrade section]].
  
 **Upgrade Official Bug Tracker Instance** **Upgrade Official Bug Tracker Instance**
Line 213: Line 230:
   * Update the code from git <code>   * Update the code from git <code>
 $ cd /srv/www/bugs/ $ cd /srv/www/bugs/
-$ git checkout master-1.2.x+$ git checkout master-1.3.x
 $ git pull --rebase $ git pull --rebase
 $ git checkout bugs $ git checkout bugs
-$ git rebase master-1.2.x +$ git rebase master-1.3.x
-</code> +
-  * Upgrade the database if needed (admin/admin_upgrade.php). +
-  * Run admin/admin_check.php and resolve any issues. +
-  * Login and do simple testing. +
- +
- +
-**Upgrade Demo Instance** +
- +
-  * Make sure you are running as root (sudo bash) +
-  * Update the code from git <code> +
-$ cd /srv/www/demo/ +
-$ git checkout master-1.2.x +
-$ git pull --rebase +
-$ git checkout demo +
-$ git rebase master-1.2.x+
 </code> </code>
   * Upgrade the database if needed (admin/admin_upgrade.php).   * Upgrade the database if needed (admin/admin_upgrade.php).
Line 239: Line 241:
  
 ===== Publishing the Release ===== ===== Publishing the Release =====
 +
  
 ==== Source Forge ==== ==== Source Forge ====
  
-  * Upload the release to Source Forge via the File Manager web interface+  * Upload the release to [[http://sourceforge.net/projects/mantisbt/files/|SourceForge]] via the File Manager web interface
   * Release through the SF.net mechanism.     * Release through the SF.net mechanism.  
-    * The release name should be "1.2.x" (e.g. 1.2.9).  +    * The release name should be "1.3.x" (e.g. 1.3.3).  
     * Put the release in the appropriate package based on whether it is a stable or a development release.       * Put the release in the appropriate package based on whether it is a stable or a development release.  
-    * Release candidates and alphas are "development" releases.+    * Release candidatesalphas and betas are "development" releases.
   * Download the release off SF.net and verify correctness.   * Download the release off SF.net and verify correctness.
   * Click the "i" next to the files under the folder and do the following actions:   * Click the "i" next to the files under the folder and do the following actions:
     * for digests, exclude them from stats.     * for digests, exclude them from stats.
-    * for zip make it default for all platforms+    * In case of a stable release, make the zip file the default for all platforms.
-    * for README file exclude from stats. [1] +
-  * Post news on Mantis SF project area.+
  
 +==== Notifications ====
  
-[1] [dregad] The Build release script does not generate a README file - maybe this is obsolete+  * Blog: Post an announcement 
 +  * Twitter: announce the release via mantisbt twitter account. 
 +  * Update mailing list based on official bug tracker users since users can now signup to our bugtracker to get such announcements. 
 +  * Use sendgrid to send out the announcement email.
  
 +===== Prepare for next release =====
  
 +==== Bump the version number ====
  
-==== Notifications ====+The MantisBT version constant must be increase to reflect the current state of the development branch.
  
-  * Blog: Post an announcement +This ensures that people running Mantis from the GIT repository are not led to believe they are working with an official release, and allows the [[https://mantisbt.org/builds.php|Nightly builds]] to reference the proper version in the zip/tarball file name.  
-  * Twitter: announce the release via mantisbt twitter account+ 
-  * IRC: Change the title of #mantishelp to announce the new release and encourage people to use it+  * Edit ''core/constants_inc.php'' 
-  * Forums: Announce the release on the Announcements forum+  * Update //MANTIS_VERSION// by incrementing the version number as appropriate: 
-  Mailing ListsSend a message to mantisbt-announce / mantisbt-dev to announce the new release and encourage users to upgrade.  Include a link to the version changelog.+    * Major version: **x+1**.0.0**-dev** 
 +    Minor versionx.**y+1**.0**-dev** 
 +    * Patch version: x.y.**z+1-dev** 
 +  * Commit and push the modified file
  
mantisbt/release_process.txt · Last modified: 2020/09/25 14:48 by dregad