You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Releasing Pegasus includes the following tasks:

1. Discuss with the community for the next release

2. Prepare release notes

3. Package the release and publish the artifacts

4. Call for community vote on the release candidate

If there are veto (-1) around the release, we need to address the issues and repeat steps 3,4, until the vote passes.

5. Close the vote with the result

6. Call for incubator vote on the release candidate

7. Announce the official release

1. Discuss with the community for the next release

First, you should discuss with dev@pegasus.apache.org for the new coming release. Information like the version tag and purposes on the release is necessary.

We also need to select a "release manager" among the committers to perform the entire process of releasing. You could self-volunteer or ask somebody who is volunteered to.

The email template:

Title: [DISCUSS] Release Apache Pegasus {VERSION}

Hi,

Some features like xxx, xxx, and xxx have been added. / There are some bugs reported ({BUG ISSUES}) fixed recently.

I think we should start preparing a new release {VERSION}.

I would like to be the release manager of this version. / I would volunteer to be the release manager of this version. / I want to be the release manager this time.

I will gather the release notes later as well as the changes list.


Regards,

{RELEASE MANAGER}

2. Prepare release notes

Prepare the release candidate and post a new document under Release Notes. Then share it with dev@pegasus.apache.org  for the community-wide review.

Title: Re: [DISCUSS] Release {VERSION}

Hi,

Release Notes of {VERSION} is given here: {Release Notes Link}.

This is not the formal vote thread. Please feel comfortable to give comments on the doc.


Regards,

{RELEASE_MANAGER}

3. Package the release and publish the artifacts

Prepare the package of the release candidate and upload it to https://dist.apache.org/repos/dist/dev/incubator/pegasus/.

Since Pegasus is written in  C++, we provide source release only. Users can build from the source following the building manual.

The naming rule of the source zip is apache-pegasus-{VERSION}-incubating-src.zip. For example, apache-pegasus-2.1.0-incubating-src.zip。(not 2.1.0-RC1)

Execute the following steps after completes the package:

➜ svn co https://dist.apache.org/repos/dist/dev/incubator/pegasus/ dist-dev-pegasus # Please remember to install svn:sudo apt install subversion

➜ cd dist-dev-pegasus

➜ mkdir 2.1.0-RC1/ # create a separate directory for the release

➜ svn mkdir --parents https://dist.apache.org/repos/dist/dev/incubator/pegasus/2.1.0-RC1

➜ mv {SOMEWHERE}/apache-pegasus-2.1.0-incubating-src.zip ./2.1.0-RC1/ # Place the artifacts in the directory

Having only the source zip is not enough. We should prepare two other files:

  • apache-pegasus-2.1.0-incubating-src.zip.asc:digital signature。Please read the guide in https://cwiki.apache.org/confluence/x/7SLZCQ and follow the steps to generate signatures.
  • apache-pegasus-2.1.0-incubating-src.zip.sha512:checksum.

Perform this command to generate a checksum file:

➜ sha512sum apache-pegasus-2.1.0-incubating-src.zip > apache-pegasus-2.1.0-incubating-src.zip.sha512

After all the above operations complete, there will be 3 files:

  • {SOURCE_RELEASE}.zip
  • {SOURCE_RELEASE}.zip.asc
  • {SOURCE_RELEASE}.zip.sha512

Deploy those files to the incubator's svn repo:

➜ svn add 2.1.0-RC1

➜ svn commit

4. Call for community vote on the release candidate

After the RC files uploaded, start a review-and-vote thread on dev@pegasus.apache.org.

Title: [VOTE] Release {VERSION}-RC1

Hello, Pegasus devs!

The Pegasus team is happy to announce the Apache Pegasus {VERSION}-RC1.

Apache Pegasus {VERSION} is a feature release that offers many features and
improvements since the prior release.

This is a source-only release. The artifacts have been staged here:
https://dist.apache.org/repos/dist/dev/incubator/pegasus/2.1.0-RC1 # Change to the real link

It is tagged in Git as {VERSION}-RC1 and the corresponding hash is the
following: 

https://gitbox.apache.org/repos/asf?p=incubator-pegasus.git;a=commit;h=4f8db17808470a999b9a7c49d451ff6e957f15e6 # Change to the real link

The WIP release notes can be found here:

https://cwiki.apache.org/confluence/display/PEGASUS/Apache+Pegasus+2.1.0+Release+Notes # Change to the real link

The KEYS file to verify the artifact signatures can be found here:

https://dist.apache.org/repos/dist/dev/incubator/pegasus/KEYS

The vote will be open for 72 hours.


Regards,

{RELEASE_MANAGER}

5. Close the vote with the result

If there's no issue around the release, reply to the thread to close the vote. Then start a separate email for the voting result.

Title: [RESULT][VOTE] Release {VERSION}-RC1

Hi, Pegasus devs,

The vote for Apache Pegasus {VERSION} release is closed now.
Vote result: the vote PASSES with 3 votes +1 and no -1.

+1 votes:
* Duo Zhang (IPMC)
* Yifan Zhang (non-binding)
* Liwei Zhao (binding)
* Yingchun Lai (binding)

+0 votes:
* no vote

-1 votes:
* no vote

Here is the vote thread: {VOTE THREAD LINK}

I will now proceed to the general incubator list.

Best Regards

{RELEASE MANAGER}

6. Call for incubator vote on the release candidate

Start a vote thread for an incubator-wide review. The vote is basically the same as the community vote with a slight difference that it sends to general@incubator.apache.org. So be careful before sending it.

Hi, all

This is a call for a vote to release Apache Pegasus (Incubating) version
{VERSION}. Pegasus is a distributed key-value storage system that is designed
to be simple, horizontally scalable, strongly consistent, and
high-performance.

The Apache Pegasus community has voted on and approved a proposal to
release Apache Pegasus {VERSION}.

Apache Pegasus community vote thread: {VOTE THREAD LINK}

Vote result thread: {VOTE RESULT THREAD LINK}

The source tarball, including signatures, digests, etc. can be found at:
https://dist.apache.org/repos/dist/dev/incubator/pegasus/{VERSION}/

It is tagged in Git as {VERSION} and the corresponding hash is the
following: {GITBOX LINK}

KEYS file available:
https://dist.apache.org/repos/dist/dev/incubator/pegasus/KEYS

For information about the contents of this release, see: {RELEASE NOTE LINK}

The vote will be open for 72 hours.
[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove with the reason

Best regards
{RELEASE MANAGER}




  • No labels