mantisbt:release_process
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| mantisbt:release_process [2016/10/30 23:52] – Tweaks to version numbers vboctor | mantisbt:release_process [2024/08/25 05:01] (current) – [Notifications] add Mastodon dregad | ||
|---|---|---|---|
| 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 '' | + | * If necessary, |
| * Run the script to update the Contributor' | * Run the script to update the Contributor' | ||
| $ update-credits.sh | $ update-credits.sh | ||
| Line 86: | Line 86: | ||
| ===== 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 '' |
| * For **stable releases** < | * For **stable releases** < | ||
| - | $ git checkout master-1.M.x | + | $ git checkout master-M.N |
| - | $ VERSION=1.M.N | + | $ VERSION=M.N.P |
| $ git tag -s release-$VERSION -m " | $ git tag -s release-$VERSION -m " | ||
| </ | </ | ||
| * For **development releases** (e.g. alpha, beta, release candidates) < | * For **development releases** (e.g. alpha, beta, release candidates) < | ||
| $ git checkout master | $ git checkout master | ||
| - | $ VERSION=1.M.N | + | $ VERSION=M.N.P |
| $ git tag -s release-$VERSION -m " | $ git tag -s release-$VERSION -m " | ||
| </ | </ | ||
| Line 102: | Line 102: | ||
| </ | </ | ||
| - | * In case we are starting a new stable branch, also create it using the format " | + | * In case we are starting a new stable branch, also create it using the format " |
| - | $ git branch master-1.x.x master | + | $ git branch master-M.N master |
| - | $ git push origin master-1.x.x | + | $ git push origin master-M.N |
| </ | </ | ||
| Line 135: | Line 135: | ||
| Generate release tarballs using the '' | Generate release tarballs using the '' | ||
| < | < | ||
| - | $ /path/to/ | + | $ /build/ |
| </ | </ | ||
| - | This will create | + | This will create the following files in the ''/ |
| - | [dregad] | + | * 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 '' | ||
| Line 150: | Line 154: | ||
| * Update Versions | * Update Versions | ||
| - | - Go to the //Manage Projects page// for the // | + | - Go to the [[https://mantisbt.org/ |
| - | - Update the version being released (//1.M.x//): | + | - Update the version being released ('' |
| - | * Rename it to //1.M.N// | + | * Rename it to '' |
| - | * Update the "Date Order" | + | * Update the //Date Order// field to the actual release date |
| - | * Copy-paste the text from the release notes into the "Description" | + | * Copy-paste the text from the release notes into the //Description// field, update as appropriate |
| - | * Tick the "Released" | + | * Tick the //Released// box |
| - | - Create a new //1.M.x// version | + | - Create a new '' |
| - | * Set the "Date Order" | + | * Set the //Date Order// field to a future date <WRAP important 90%> |
| - | * Make sure the "Released" | + | The [[mantisbt: |
| + | |||
| + | 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). | ||
| + | </ | ||
| + | * 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// = '' |
| * Review listed issues, update them as needed (in particular, check that // | * Review listed issues, update them as needed (in particular, check that // | ||
| + | * Private security issues should be made public | ||
| * Tick the //Select all// checkbox | * Tick the //Select all// checkbox | ||
| * Select //Close// and click OK | * Select //Close// and click OK | ||
| * 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 '' |
| - | * 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// = '' |
| * 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 | + | * Select |
| * Repeat until the filter is empty | * Repeat until the filter is empty | ||
| Line 182: | Line 191: | ||
| * Edit main website' | * Edit main website' | ||
| * Update '' | * Update '' | ||
| + | |||
| + | ==== 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 ''/ | ||
| + | * Update the // | ||
| + | |||
| + | To make the change permanent, the file should be committed to the // | ||
| + | |||
| + | 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 ''/ | ||
| + | |||
| + | < | ||
| Line 228: | Line 250: | ||
| ==== Source Forge ==== | ==== Source Forge ==== | ||
| - | * Upload the release to [[http:// | + | * Upload the release to [[http:// |
| - | * Release | + | Put the files in the appropriate directory, based on the release type: Stable releases go to the **mantis-stable**; |
| - | | + | |
| - | * Put the release in the appropriate package based on whether it is a stable | + | Create a sub-directory for the version, matching it's number |
| - | * Release candidates, alphas and betas are " | + | </ |
| + | * manually via SourceForge' | ||
| + | * with rsync (// | ||
| + | $ rsync -vP --rsh=ssh / | ||
| + | </ | ||
| * Download the release off SF.net and verify correctness. | * Download the release off SF.net and verify correctness. | ||
| - | * Click the "i" | + | * Click the '' |
| * 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 241: | Line 267: | ||
| * Blog: Post an announcement | * Blog: Post an announcement | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | 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. | ||
| * Use sendgrid to send out the announcement email. | * Use sendgrid to send out the announcement email. | ||
| + | |||
| + | ===== Prepare for next release ===== | ||
| + | |||
| + | ==== Bump the version number ==== | ||
| + | |||
| + | The MantisBT version constant must be increased to reflect the current state of the development branch. | ||
| + | |||
| + | 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:// | ||
| + | |||
| + | * Edit '' | ||
| + | * Update // | ||
| + | * Major version: **x+1**.0.0**-dev** | ||
| + | * Minor version: x.**y+1**.0**-dev** | ||
| + | * Patch version: x.y.**z+1-dev** | ||
| + | * Commit and push the modified file | ||
mantisbt/release_process.1477885960.txt.gz · Last modified: 2016/10/30 23:52 by vboctor
