Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Apache releases are posted to dist.apache.org, which is a Subversion repository.

We have two directories there, check out these:

  • https://dist.apache.org/repos/dist/release/incubator/gobblin/ - this is where PMC approved releases go. Do not upload here until we have a vote passed on dev@gobblin and dev@incubator. Check out this directory and name it apache-dist-release-gobblin
  • https://dist.apache.org/repos/dist/dev/incubator/gobblin/ - this is where releases to be voted-on go. Make the release artifact, and commit it here, then post the [VOTE] thread with links here. Check out this directory and name it apache-dist-dev-gobblin

...

svn co https://dist.apache.org/repos/dist/release/incubator/gobblin apache-dist-release-gobblin
svn co https://dist.apache.org/repos/dist/dev/incubator/gobblin apache-dist-dev-gobblin

...

(gpg --list-sigs $ASF_USERNAME@apache.org && gpg --armor --export $ASF_USERNAME@apache.org) >> KEYS
svn --username $SVN_USERNAME --no-auth-cache commit -m "Update gobblin/KEYS for $GPG_KEY"

References:

Once you have followed these instructions, you should have: 

...

Alternatively, you can make a fresh clone of the repository to a separate directory:

git clone https://git-wip-usgitbox.apache.org/repos/asf/incubator-gobblin.git incubator-gobblin-release
cd incubator-gobblin-release

To generate the source release, run:

...

gpg --sign --armor --detach-sig build/distribution/source/apache-gobblin-incubating-sources-*.tgz
gpg --sign --armor --detach-sig build/gobblin-distribution/distributions/apache-gobblin-incubating-bin-*.tar.gz

Upload the Release

You should make the release candidate available in https://dist.apache.org/repos/dist/dev/incubator/gobblin/. For example, if you are releasing release candidate RC0 for version x.y.z then you should upload the source distribution files to:

https://dist.apache.org/repos/dist/dev/incubator/gobblin/apache-gobblin-incubating-x.y.z-rc0/

To create a release folder and to check it out (be sure to substitute x.y.z for the actual version), run the following:

svn mkdir https://dist.apache.org/repos/dist/dev/incubator/gobblin/apache-gobblin-incubating-x.y.z-rc0
svn co https://dist.apache.org/repos/dist/dev/incubator/gobblin/apache-gobblin-incubating-x.y.z-rc0 apache-gobblin-incubating-x.y.z-rc0
cd apache-gobblin-incubating-x.y.z-rc0

Verify that the sha512 signature in the file matches the output of the command:

shasum

...

-a

...

512

...

apache-gobblin-

...

sources-0.15.0.tgz 

You could then add the source and binary release as described above and commit. 

...

git tag -s release-x.y.z-rc0 -m 'Apache Gobblin (incubating) x.y.z RC0'

Then push the tag:

...

Once the artifacts have been verified, you need to close the Gobblin staging repository. You need to be logged into the Nexus repository to be able to close the repo. You should see a Close button on the top. When you click on the button, it should prompt you for a description. Enter "Apache Gobblin (incubating) 0.x.y RCz" (substitute the right values for x,y, and z), and click "Save".  

...

Now you can call a vote in the Gobblin dev mailing list for release. Look in the archives for previous votes for an example. If the vote passes then you may call a vote in the Incubator general mailing list (this is necessary because Gobblin is still incubating).

Here is a sample call for vote email: https://www.mail-archive.com/dev@gobblin.incubator.apache.org/msg01352.htmlMail Archive 

Note: You should allow for a minimum of 72 hours voting period for both - dev@gobblin mailing list and incubator general mailing list

After waiting, if the vote passed. Send a result email. Eg.: https://www.mail-archive.com/general@incubator.apache.org/msg64041.htmlMail Archive


Publishing the Release

Once the Incubator general vote has passed, you can publish the source release and artifacts.

Release

The Gobblin source release are checked into SVN under https://dist.apache.org/repos/dist/release/incubator/gobblin.

To see all the previous releases, run:

svn list https://dist.apache.org/repos/dist/release/incubator/gobblin

Promote the release candidate by moving it from dev svn to release by running (replace x.y.z with the release number):

svn mv https://dist.apache.org/repos/dist/dev/incubator/gobblin/apache-gobblin-incubating-x.y.z-rc0 https://dist.apache.org/repos/dist/release/incubator/gobblin/apache-gobblin-incubating-x.y.z

Within 24 hours they will be distributed to the mirrors. Then it should be available for download at http://www.apache.org/dyn/closer.cgi/incubator/gobblin/apache-gobblin-incubating-x.y.z/

Artifacts

To distribute the artifacts, simply select the staged repository for Gobblin that you prepared in Nexus and chooose Release. They should then be available within the next day or so in the central repository.

Tag

Update the tag

git tag -s release-x.y.z -m 'Apache Gobblin (incubating) x.y.z'

Then push the tag:

git push origin release-x.y.z

Release on Github

After pushing the git tag, create a Github release to update the repository's packages and generate tagged Docker images.

Documentation for releasing on Github can be found here: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/managing-releases-in-a-repository

Update Update the Website

Note: Website is in separate repository, if not already checked-out, checkout separately.

First, clean any files unknown to git (WARNING: this removes all untracked files, including those listed in .gitignore, without prompting):

git clean -fdx

Alternatively, you can make a fresh clone of the repository to a separate directory:

git clone https://git-wip-us.apache.org/repos/asf/incubator-gobblin-site.git incubator-gobblin-site-release
cd incubatorgobblin-gobblinsite-release

Modify navigation.html

  1. Search for "Release Step 1" string in navigation.html file, and follow the html comment instruction to add a li html tag for new release (in same format as exists in the html code). 
  2. Search for "Release Step 2" string in index.html file under download dir, and follow the html comment instruction to add a div html tag for new release (in same format as exists in the html code).
  3. Open index.html in your browser locally and verify all links work. 

Commit and push the changes to git. 

Announce the Release

Send an ANNOUNCE email to Gobblin dev mailing list (dev@gobblin.apache.org) and Incubator general mailing list (general@incubator), and announce@apache.org

Example: https://www.mail-archive.com/general@incubator.apache.org/msg64042.htmlMail Archive