This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git


The following commit(s) were added to refs/heads/master by this push:
     new de97305  [DOCUMENTATION] Better document THE release process (#337)
de97305 is described below

commit de97305fda27a0befa41b10ebf82fdd87ea1ba47
Author: Tellier Benoit <[email protected]>
AuthorDate: Wed Mar 31 15:36:38 2021 +0700

    [DOCUMENTATION] Better document THE release process (#337)
---
 docs/modules/community/pages/release.adoc | 135 ++++++++++++++++++++++++++++++
 1 file changed, 135 insertions(+)

diff --git a/docs/modules/community/pages/release.adoc 
b/docs/modules/community/pages/release.adoc
index 60d7f7f..756a97b 100644
--- a/docs/modules/community/pages/release.adoc
+++ b/docs/modules/community/pages/release.adoc
@@ -15,3 +15,138 @@ Don't forget to add your key to 
https://downloads.apache.org/james/KEYS
 
     $ ssh people.apache.org
     $ cd /www/www.apache.org/dist/james
+
+== Release cheat sheet
+
+First, discuss your intention to perform a release on server-dev mailing list, 
to ensure a consensus would be reached
+before starting this time-consuming process.
+
+Then you can prepare the release materials:
+
+ * Ensure the `CHANGELOG.md` and `upgrade-instructions.md` files are up to 
date.
+ * Freeze your version in it and initiate a new iteration.
+ * Write a blog post within `/src/homepage/_post` about your release.
+ * Update the documentation website `/docs`, `src/site`, and `README.md` to 
point to your new release.
+ * Update the `/dockerfiles`
+
+Open a pull request to validate the changes.
+
+Once merged, it is time for the maven release.
+
+Set up your maven configuration in `~/.m2/settings.xml` :
+
+[source,bash]
+----
+<settings>
+  <servers>
+    <server>
+      <id>apache.snapshots.https</id>
+      <username>apacheId</username>
+      <password>xxxxxx</password>
+    </server>
+    <!-- To stage a release of some part of Maven -->
+    <server>
+      <id>apache.releases.https</id>
+      <username>apacheId</username>
+      <password>xxxxxxxx</password>
+    </server>
+    <server>
+      <id>svn.apache.org</id>
+      <username>apacheId</username>
+      <password>xxxxxx</password>
+    </server>
+
+  </servers>
+</settings>
+----
+
+Ensure that released branch HEAD have a clean green build on the CI.
+
+Run these commands to perform a release, from the master branch:
+
+[source,bash]
+----
+mvn clean install -DskipTests -Djib.skip -Dmaven.javadoc.skip=true -T 4
+
+mvn deploy -DskipTests -Dskip.jib -Dmaven.javadoc.skip=true -T 8
+
+mvn release:clean
+
+mvn release:prepare -Darguments="-Dmaven.javadoc.skip=true -DskipTests 
-Dskip.jib" -DautoVersionSubmodules=true
+
+mvn release:perform -Darguments="-Dmaven.javadoc.skip=true -DskipTests 
-Dskip.jib" -DautoVersionSubmodules=true
+----
+
+Failure to react when being prompted for git or GPG credentials might abort 
the release. GPG agent with a reasonable session time can be used to unlock the 
key before hand and reduce this risk.
+
+Then visit https://repository.apache.org/#stagingRepositories[Apache maven 
repository], go in staging repository, close
+the corresponding artifact before performing the vote.
+
+Send the following voting template on the server-dev mailing list to call the 
vote:
+
+[source]
+----
+Subject: Call for vote: Apache James x.x.x
+
+Hi,
+
+I would like to propose a new vote for x.x.x release of the Apache James 
server.
+
+You can find:
+
+ - The maven release staged in repository.apache.org as the
+artifact #xxx:
+https://repository.apache.org/content/repositories/orgapachejames-xxx/
+ - The changelog for
+x.x.x:
+https://github.com/apache/james-project/blob/master/CHANGELOG.md
+ - The compatibility instructions/upgrade
+recommendation:
+https://github.com/apache/james-project/blob/master/upgrade-instructions.md#360-version
+
+[You can comment on major changes ]
+
+Voting rules:
+ - This is a majority approval: this release may not be vetoed.
+ - A quorum of 3 binding votes is required
+ - The vote starts at XXXXXX xxxth of xxxxx xxxx, xxxx UTC+x
+ - The vote ends at XXXXXX xxxth of xxxxx xxxx, xxxx UTC+x
+
+You can answer to it just with +1 and -1. Down-votes may be motivated.
+
+3 binding votes are expected move forward on this release.
+
+Cheers,
+
+PMC member name
+----
+
+After the voting period, do the voting aftermaths. Reply in the voting thread:
+
+[source]
+----
+Hi all,
+
+I am happy to announce you the vote for the x.x.x release did succeed.
+
+The release received X positive votes, X of them being binding.
+
+Thanks to all contributors, developers and committers who made this
+possible!
+
+In the coming hours, I will finalize the release process, namely:
+
+- Publish the maven artifacts
+- Upgrade the download page and the (old) website
+- Announce the release
+
+Cheers,
+
+PMC member name
+----
+
+Once done:
+ * Update the downloadable artifacts (/server/app) - to be more detailed soon
+ * Deploy website changes
+ * Send an announce on server-user
+ * Send an Apache foundation wide announce

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to