User Tools

  • Logged in as: anonymous (anonymous)
  • Log Out

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 revisionPrevious revision
Next revision
Previous revision
mantisbt:release_process [2021/03/07 18:14] – [Packaging the Release] dregadmantisbt:release_process [2025/12/29 21:02] (current) – [Notifications] link to blog, forums dregad
Line 45: Line 45:
  
 ==== Localization ==== ==== Localization ====
 +
 +<WRAP tip right 50%>
 +Translation updates are regularly committed to the //master// branch by an automated process.
 +Contact the [[https://translatewiki.net/wiki/Support|TranslateWiki.net]] team if necessary.
 +</WRAP>
  
   * Post on the [[mantisbt-lang@lists.sourceforge.net|Localization mailing list]] to request translation updates from contributors   * Post on the [[mantisbt-lang@lists.sourceforge.net|Localization mailing list]] to request translation updates from contributors
-  * Run /admin/test_langs.php to detect any syntax errors in the localization files.+  * Run ///admin/test_langs.php// to detect any syntax errors and problems in the localization files.
  
  
Line 66: Line 71:
 ===== Preparing the Release ===== ===== Preparing the Release =====
  
-==== Localization ====+==== Define VERSION environment variable ====
  
-  * Contact the [[http://translatewiki.net|TranslateWiki]] team (Siebrand) to request an update of tranlations+This will be used by several commands later in this section. 
 + 
 +<code> 
 +$ VERSION=M.N.P 
 +</code>
  
 ==== Repository Preparation ==== ==== Repository Preparation ====
  
   * Remove references to any debug statements    * Remove references to any debug statements 
-  * Update CREDITS file+  * Update **//CREDITS// file**
-    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 Contributors' list <code>
-    * Run the script to update the Contributor'list <code>+
 $ update-credits.sh $ update-credits.sh
 +</code><WRAP info>
 +The script will detect if the //.mailmap// file needs to be updated, to ensure that commits made by the same person under different names and/or e-mail addresses are properly aggregated. 
 +
 +It will print a list of duplicates and halt to let you manually update the file; refer to [[mantisbt:mailmap]] for details.
 +</WRAP>
 +    * Run the script again after fixing the //.mailmap// file
 +    * If needed, make any additional changes to the CREDITS file manually
 +  * Update the **version number** 
 +    * in //core/constant_inc.php//<code>
 +sed -r -i "/MANTIS_VERSION/s/[0-9]+\.[0-9]+\.[0-9+](-[^']+)?/$VERSION/" core/constant_inc.php
 +</code>
 +    * in REST API OpenAPI documentation <code>
 +sed -r -i "/version:/s/[0-9]+\.[0-9]+\.[0-9+](-.*)?/$VERSION/" api/rest/mantisbt_openapi.yaml
 </code> </code>
-    * If needed, make any additional changes manually 
-  * Update the version number in core/constant_inc.php. 
   * Commit the changes.   * Commit the changes.
- 
  
  
 ===== Cutting the Release ===== ===== Cutting the Release =====
  
-  * Create an annotated, GPG-signed tag in Git; the tag should be formatted as "release-1.x.x" \\ \\+  * Create an annotated, GPG-signed tag in Git; the tag should be formatted as ''release-M.N.P'' (e.g. 2.25.4) \\ \\
      * For **stable releases** <code>      * For **stable releases** <code>
-$ git checkout master-1.M.x +$ git checkout master-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** (e.g. alpha, beta, release candidates) <code>     * For **development releases** (e.g. alpha, beta, release candidates) <code>
 $ git checkout master $ git checkout master
-$ VERSION=1.M.N+$ VERSION=M.N.P
 $ git tag -s release-$VERSION -m "Development release $VERSION" $ git tag -s release-$VERSION -m "Development release $VERSION"
 </code> </code>
Line 102: Line 119:
 </code> </code>
  
-  * In case we are starting a new stable branch, also create it using the format "master-1.x.x": <code> +  * In case we are starting a new stable branch, also create it using the format "master-M.N": <code> 
-$ git branch master-1.x.x master +$ git branch master-M.master 
-$ git push origin master-1.x.x+$ git push origin master-M.N
 </code> </code>
  
Line 135: Line 152:
 Generate release tarballs using the ''buildrelease-repo.py'' script found in the ''mantisbt-tools.git'' repository: Generate release tarballs using the ''buildrelease-repo.py'' script found in the ''mantisbt-tools.git'' repository:
 <code> <code>
-$ /build/buildrelease-repo.py --fresh --docbook --ref release-$VERSION /path/to/output+$ /build/buildrelease-repo.py --fresh --docbook --ref release-$VERSION --clean /path/to/output
 </code> </code>
  
-This will create a //.zip// and //.tar.gz// 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.+This will create the following files in the ''/path/to/output'' directory specified in the command.
  
-[dregad] the script also creates '.asc' fileswhich are not documented in SourceForge section what to do with them ?+  * a //.zip// and //.tar.gz// tarball of the release 
 +  * a //.digest// file for each tarball with //md5// and//sha*// hashes 
 +  * an ASCII-armored GPG signature file for each tarball (with //.asc// extension) 
 + 
 +The ''--docbook'' option will automatically build single-file versions of the manuals into the tarball's ''/doc'' directory.
  
  
Line 246: Line 267:
 ==== Source Forge ==== ==== Source Forge ====
  
-  * Upload the release to [[http://sourceforge.net/projects/mantisbt/files/|SourceForge]] via the File Manager web interface +  * Upload the release to [[http://sourceforge.net/projects/mantisbt/files/|SourceForge]] <WRAP info> 
-  * Release through the SF.net mechanism.   +Put the files in the appropriate directory, based on the release type: Stable releases go to the **mantis-stable**; Alpha, Beta and Release candidates go in **mantis-development**. 
-    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.   +Create a sub-directory for the version, matching it's number e.g. 2.0.0-beta.1, 2.23.0, 2.24.4. 
-    * Release candidates, alphas and betas are "development" releases.+</WRAP> 
 +    * manually via SourceForge's File Manager web interface, or 
 +    * with rsync (//USERNAME// is your SourceForge user ID) <code> 
 +$ rsync -vP --rsh=ssh /path/to/output/* USERNAME@frs.sourceforge.net:/home/frs/project/mantisbt/mantis-stable/$VERSION 
 +</code>
   * Download the release off SF.net and verify correctness.   * Download the release off SF.net and verify correctness.
-  * Click the "inext to the files under the folder and do the following actions:+  * Click the ''(i)'' icon next to the files under the folder and do the following actions:
     * for digests, exclude them from stats.     * for digests, exclude them from stats.
     * In case of a stable release, make the zip file the default for all platforms.     * In case of a stable release, make the zip file the default for all platforms.
Line 258: Line 283:
 ==== Notifications ==== ==== Notifications ====
  
-  * Blog: Post an announcement+  * [[https://mantisbt.org/blog/|Blog]]: Post an announcement 
 +  * [[https://matrix.to/#/#mantisbt_mantisbt:gitter.im|Gitter]]: Post an announcement 
 +  * [[https://phpc.social/@mantisbt|Mastodon]]: Post an announcement 
 +  * [[https://mantisbt.org/forums/viewforum.php?f=5|Forums]]: Post in the //Announcements// section 
 + 
 +The notifications below require accounts that only vboctor has access to... 
   * Twitter: announce the release via mantisbt twitter account.   * 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.   * Update mailing list based on official bug tracker users since users can now signup to our bugtracker to get such announcements.
mantisbt/release_process.1615158850.txt.gz · Last modified: by dregad

CC Attribution-Noncommercial-Share Alike 4.0 International Driven by DokuWiki