...
- You can login to Nexus
- You have a Git workspace for https://gitbox.apache.org/repos/asf/incubator-gobblin.git
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:
...
git clone https://gitbox.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-incubating-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 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 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 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 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 incubator-gobblin-site-release
Modify navigation.html
- 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).
- 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).
- 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