This is an automated email from the ASF dual-hosted git repository.
mck pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push:
new 70d8db8 Updated release process documentation after sha checksum and
ASF dev dist changes
70d8db8 is described below
commit 70d8db8558c346603da6e64c035d325834467d3a
Author: Mick Semb Wever <[email protected]>
AuthorDate: Fri Jan 31 23:41:24 2020 +0100
Updated release process documentation after sha checksum and ASF dev dist
changes
patch by Mick Semb Wever; reviewed by Michael Shuler for CASSANDRA-14970
---
doc/source/development/release_process.rst | 119 +++++++++++++++--------------
1 file changed, 61 insertions(+), 58 deletions(-)
diff --git a/doc/source/development/release_process.rst
b/doc/source/development/release_process.rst
index 8b06e81..fd86238 100644
--- a/doc/source/development/release_process.rst
+++ b/doc/source/development/release_process.rst
@@ -25,16 +25,11 @@ Release Process
|
|
-.. attention::
-
- WORK IN PROGRESS
- * A number of these steps still have been finalised/tested.
- * The use of people.apache.org needs to be replaced with svnpubsub and
dist.apache.org
The steps for Release Managers to create, vote and publish releases for Apache
Cassandra.
-While a committer can perform the initial steps of creating and calling a vote
on a proposed release, only a PMC can complete the process of publishing and
announcing the release.
+While a committer can perform the initial steps of creating and calling a vote
on a proposed release, only a PMC member can complete the process of publishing
and announcing the release.
Prerequisites
@@ -53,6 +48,7 @@ Create and publish your GPG key
-------------------------------
To create a GPG key, follow the `guidelines
<http://www.apache.org/dev/openpgp.html>`_.
+The key must be 4096 bit RSA.
Include your public key in::
https://dist.apache.org/repos/dist/release/cassandra/KEYS
@@ -60,43 +56,51 @@ Include your public key in::
Publish your GPG key in a PGP key server, such as `MIT Keyserver
<http://pgp.mit.edu/>`_.
+Bintray account with access to Apache organisation
+--------------------------------------------------
+
+Publishing a successfully voted upon release requires bintray access to the
Apache organisation. Please verify that you have a bintray account and the
Apache organisation is listed `here
<https://bintray.com/profile/edit/organizations>`_.
+
Create Release Artifacts
========================
Any committer can perform the following steps to create and call a vote on a
proposed release.
-Check that there are no open urgent jira tickets currently being worked on.
Also check with a PMC that there's security vulnerabilities currently being
worked on in private.'
+Check that there are no open urgent jira tickets currently being worked on.
Also check with the PMC that there's security vulnerabilities currently being
worked on in private.'
Current project habit is to check the timing for a new release on the dev
mailing lists.
Perform the Release
-------------------
-Run the following commands to generate and upload release artifacts, to a
nexus staging repository and distribution location::
+Run the following commands to generate and upload release artifacts, to the
ASF nexus staging repository and dev distribution location::
cd ~/git
git clone https://github.com/apache/cassandra-builds.git
- # Edit the variables at the top of
`cassandra-builds/cassandra-release/prepare_release.sh`
+ git clone https://github.com/apache/cassandra.git
+
+ # Edit the variables at the top of the `prepare_release.sh` file
+ edit cassandra-builds/cassandra-release/prepare_release.sh
- # After cloning cassandra-builds repo, the prepare_release.sh is run from
the actual cassandra git checkout,
+ # Ensure your 4096 RSA key is the default secret key
+ edit ~/.gnupg/gpg.conf # update the `default-key` line
+ edit ~/.rpmmacros # update the `%gpg_name <key_id>` line
+
+ # Ensure DEBFULLNAME and DEBEMAIL is defined and exported, in the debian
scripts configuration
+ edit ~/.devscripts
+
+ # The prepare_release.sh is run from the actual cassandra git checkout,
# on the branch/commit that we wish to tag for the tentative release along
with version number to tag.
- # For example here <version-branch> might be `3.11` and <version> `3.11.3`
- cd ~/git/cassandra/
- git checkout cassandra-<version-branch>
- ../cassandra-builds/cassandra-release/prepare_release.sh -v <version>
+ cd cassandra
+ git switch cassandra-<version-branch>
-If successful, take note of the email text output which can be used in the
next section "Call for a Vote".
+ # The following cuts the release artifacts (including deb and rpm
packages) and deploy to staging environments
+ ../cassandra-builds/cassandra-release/prepare_release.sh -v <version>
-After validating the uploaded artifacts in staging, increment the version
number in Cassandra on the `cassandra-<version-branch>`
+Follow the prompts.
- cd ~/git/cassandra/
- git checkout cassandra-<version-branch>
- edit build.xml # update `<property name="base.version"
value="…"/> `
- edit debian/changelog # add entry for new version
- edit CHANGES.txt # add entry for new version
- git commit -m "Update version to <next-version>" build.xml
debian/changelog CHANGES.txt
- git push
+If building the deb or rpm packages fail, those steps can be repeated
individually using the `-d` and `-r` flags, respectively.
Call for a Vote
===============
@@ -125,7 +129,7 @@ Fill out the following email template and send to the dev
mailing list::
Post-vote operations
====================
-Any PMC can perform the following steps to formalize and publish a
successfully voted release.
+Any PMC member can perform the following steps to formalize and publish a
successfully voted release.
Publish Artifacts
-----------------
@@ -133,55 +137,38 @@ Publish Artifacts
Run the following commands to publish the voted release artifacts::
cd ~/git
- git clone https://github.com/apache/cassandra-builds.git
- # edit the variables at the top of `finish_release.sh`
+ # edit the variables at the top of the `finish_release.sh` file
+ edit cassandra-builds/cassandra-release/finish_release.sh
# After cloning cassandra-builds repo, `finish_release.sh` is run from the
actual cassandra git checkout,
# on the tentative release tag that we wish to tag for the final release
version number tag.
cd ~/git/cassandra/
git checkout <version>-tentative
- ../cassandra-builds/cassandra-release/finish_release.sh -v <version>
<staging_number>
+ ../cassandra-builds/cassandra-release/finish_release.sh -v <version>
If successful, take note of the email text output which can be used in the
next section "Send Release Announcement".
-The output will also list the next steps that are required. The first of these
is to commit changes made to your
https://dist.apache.org/repos/dist/release/cassandra/ checkout.
+The output will also list the next steps that are required.
Promote Nexus Repository
------------------------
- * Login to `Nexus repository <https://repository.apache.org>`_ again.
- * Click on "Staging" and then on the repository with id "cassandra-staging".
- * Find your closed staging repository, right click on it and choose "Promote".
- * Select the "Releases" repository and click "Promote".
- * Next click on "Repositories", select the "Releases" repository and validate
that your artifacts exist as you expect them.
+* Login to `Nexus repository <https://repository.apache.org>`_ again.
+* Click on "Staging" and then on the repository with id "cassandra-staging".
+* Find your closed staging repository, right click on it and choose "Promote".
+* Select the "Releases" repository and click "Promote".
+* Next click on "Repositories", select the "Releases" repository and validate
that your artifacts exist as you expect them.
-Sign and Upload Distribution Packages to Bintray
+Publish the Bintray Uploaded Distribution Packages
---------------------------------------
-Run the following command::
-
- cd ~/git
- # FIXME the next command is wrong while people.apache.org is used instead
of svnpubsub and dist.apache.org
- svn mv https://dist.apache.org/repos/dist/dev/cassandra/<version>
https://dist.apache.org/repos/dist/release/cassandra/
-
- # Create the yum metadata, sign the metadata, and sign some files within
the signed repo metadata that the ASF sig tool errors out on
- svn co https://dist.apache.org/repos/dist/release/cassandra/redhat/
cassandra-dist-redhat
- cd cassandra-dist-redhat/<abbreviated-version>x/
- createrepo .
- gpg --detach-sign --armor repodata/repomd.xml
- for f in `find repodata/ -name *.bz2`; do
- gpg --detach-sign --armor $f;
- done
-
- svn co https://dist.apache.org/repos/dist/release/cassandra/<version>
cassandra-dist-<version>
- cd cassandra-dist-<version>
- cassandra-build/cassandra-release/upload_bintray.sh
cassandra-dist-<version>
-
+Log into bintray and publish the uploaded artifacts.
Update and Publish Website
--------------------------
-See `docs https://svn.apache.org/repos/asf/cassandra/site/src/README`_ for
building and publishing the website.
+See `docs <https://svn.apache.org/repos/asf/cassandra/site/src/README>`_ for
building and publishing the website.
+
Also update the CQL doc if appropriate.
Release version in JIRA
@@ -189,13 +176,23 @@ Release version in JIRA
Release the JIRA version.
- * In JIRA go to the version that you want to release and release it.
- * Create a new version, if it has not been done before.
+* In JIRA go to the version that you want to release and release it.
+* Create a new version, if it has not been done before.
Update to Next Development Version
----------------------------------
-Edit and commit ``build.xml`` so the base.version property points to the next
version.
+Update the codebase to point to the next development version::
+
+ cd ~/git/cassandra/
+ git checkout cassandra-<version-branch>
+ edit build.xml # update `<property name="base.version"
value="…"/> `
+ edit debian/changelog # add entry for new version
+ edit CHANGES.txt # add entry for new version
+ git commit -m "Increment version to <next-version>" build.xml
debian/changelog CHANGES.txt
+
+ # …and forward merge and push per normal procedure
+
Wait for Artifacts to Sync
--------------------------
@@ -245,4 +242,10 @@ Delete Old Releases
-------------------
As described in `When to Archive
<http://www.apache.org/dev/release.html#when-to-archive>`_.
-Also check people.apache.org as previous release scripts used it.
+
+An example of removing old releases::
+
+ svn co https://dist.apache.org/repos/dist/release/cassandra/ cassandra-dist
+ svn rm <previous_version> debian/pool/main/c/cassandra/<previous_version>*
+ svn st
+ # check and commit
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]