...
Prior to creating the release candidate, the
version
setting inbuild.sbt
should contain the-SNAPSHOT
keyword. Create and merge a pull request to remove this keyword in preparation for a non-snapshot release.From within the root of the Daffodil directory, execute the
scripts/release-candidate.sh
script, providing the release candidate label (e.g. rc1), the path to the root of apache-dist directory created above, that path the the root of the daffodil site repository, your Apache login credentials (e.g. for https://id.apache.org), and your long format gpg key id (e.g.gpg --list-keys --keyid-format long KEYID
), . Run the script like so:Code Block language bash $ ./scripts/release-candidate.sh
The credentials are used to publish the jars to the Apache staging repo. You will also be asked to enter the password for your private gpg key created above to sign the published jars and the zip/tars . This script will perform the following actions:- Create a zip of the source
- Create tgz, zip, and rpm of the helper binary
- Calculate Create sha1, sha256, sha512 checksums checksum and ASCII armored detached signatures of the above files
Create ASCII armored detached signatures of - Move the above files to the Apache dist dev directory
- Create javadoc and scaladoc and move to the daffodi site repository
- Stages jars/poms to https://repository.apache.org
- Create a signed git tag
- Create a zip of the source
- Once the script completes, you should verify all the files. This includes:
- Verify the checksums and signatures created in the Apache dist directories are correct
- Verify the staged jars/poms at https://repository.apache.org/ are correct. To do so, visit that url, login in the top right using id.apache.org credentials, select "Staging Repositories" on the left, and find the
orgapachedaffodil-XXXX
repository. Inspect the "Content"
tab to make sure the appropriate jars are uploaded and appear valid. - Verify the git tag is correct
- Verify the javadco and scala docs in the daffodil site repository are correct
If any of the above do not look correct, delete the files in Apache dist, "Drop" the published jars/poms, delete the java/scaladocs, and delete the git tag, fix . Fix the issue and repeat from step 2. - Verify the checksums and signatures created in the Apache dist directories are correct
- After verifying all is correct, commit the changes:
Commit the files in Apache dist, for example:
Code Block language bash svn add dev/incubator/daffodil/* svn ci -m "Stage Apache Daffodil (incubating) 2.0.0-rc1"
- Close the published Nexus files by visiting https://repository.apache.org, log in, find the release in "Staging Repositories" and select "Close".
Push the git tag
Code Block language bash git push asf v2.0.0-rc1
...
Code Block | ||
---|---|---|
| ||
Subject: [VOTE] Release Apache Daffodil (incubating) 2.0.0-rc1 Hi all, I'd like to call a vote to release Apache Daffodil (Incubatingincubating) 2.0.0-rc1. All distribution packages, including signatures, digests, etc. can be found at: https://dist.apache.org/repos/dist/dev/incubator/daffodil/2.0.0-rc1/ Staging artifacts can be found at: https://repository.apache.org/content/repositories/orgapachedaffodil-1000/ This release has been signed with PGP key 033AE661, corresponding to slawrence@apache.org, which is included in the repository's KEYS file. This key can be found on keyservers, such as: http://pgp.mit.edu/pks/lookup?op=get&search=0x033AE661 It is also listed here: https://people.apache.org/keys/committer/slawrence.asc The release candidate has been tagged in git with v2.0.0-rc1. For reference, here is a list of all closed JIRAs tagged with 2.0.0: https://issues.apache.org/jira/browse/DAFFODIL-1864?jql=project%20%3D%20DAFFODIL%20AND%20fixVersion%20%3D%202.1.0%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC For a summary of the changes in this release, see: https://daffodil.apache.org/releases/2.0.0/ Please review and vote. The vote will be open for at least 72 hours (ends on Sunday, 11 February 2018, 12 Noon EST). [ ] +1 approve [ ] +0 no opinion [ ] -1 disapprove (and reason why) My vote: +1 Thanks, - Steve |
...
Code Block | ||
---|---|---|
| ||
Subject: [VOTE] Release Apache Daffodil (incubating) 2.0.0-rc1 The Apache Daffodil community has voted and approved the proposed release of Apache Daffodil (Incubatingincubating) 2.0.0-rc1. We now kindly request the Incubator PMC members review and vote on this incubator release. Daffodil is an open source implementation of the DFDL specification that uses DFDL schemas to parse fixed format data into an infoset, which is most commonly represented as either XML or JSON. This allows the use of well-established XML or JSON technologies and libraries to consume, inspect, and manipulate fixed format data in existing solutions. Daffodil is also capable of the reverse by serializing or "unparsing" an XML or JSON infoset back to the original data format. Vote thread: https://lists.apache.org/thread.html/4b71db31a6a420098a18139a046c5493d5685137251b4727736a9f18@%3Cdev.daffodil.apache.org%3E Result thread: https://lists.apache.org/thread.html/f883421a96deffee80e59bd2fbbf07062dfe0ee26e4c4c4cfa194ba5@%3Cdev.daffodil.apache.org%3E |
...
In the Apache dist directory, move the release candidate files to the release directory. The previous release should also be deleted (it is automatically archived at https://archive.apache.org/dist/):
Code Block language bash svn mv dev/incubator/daffodil/2.0.0-rc1/ release/incubator/daffodil/2.0.0/ svn rm release/incubator/daffodil/1.0.0/ svn ci -m "Release Apache Daffodil (incubating) 2.0.0"
In the Daffodil git repository, create a signed git tag based on the release candidate tag
Code Block language bash git tag -as -u KEYID -m "Release v2.0.0" rel/v2.0.0 v2.0.0-rc1 git push asf rel/v2.0.0
- Release the published Nexus files by visiting https://repository.apache.org, log in, find the release in "Staging Repositories" and selecting "Release".
Modify the website release page to have the following parameters:
Code Block released: true date: date of release artifact-root: "http://www.apache.org/dyn/closer.lua/incubator/daffodil/2.0.0/" checksum-root: "http://www.apache.org/dist/incubator/daffodil/2.0.0/"
And update the release page of the previous release to use archived root URLS, for example:
Code Block artifact-root: "http://archive.apache.org/dist/incubator/daffodil/1.0.0/" checksum-root: "http://archive.apache.org/dist/incubator/daffodil/1.0.0/"
Give approximately 24 hours for the release files to sync to mirrors and maven central.
Send an announcement email to announce@apache.org, dev@daffodil.apache.org, and users@daffodil.apache.org, (note: send three separate emails instead of one email with multiple TO/CC's), with the following template:
Code Block language text Subject: [ANNOUNCE] Apache Daffodil (incubating) 2.0.0 The Apache Daffodil (incubating) community is pleased to announce the release of version 2.0.0. Release notes and downloads are available at: https://daffodil.apache.org/releases/2.0.0/ Daffodil is an open source implementation of the DFDL (Data Format Description Language) specification that uses DFDL schemas to parse fixed format data into an infoset, which is most commonly represented as either XML or JSON. This allows the use of well-established XML or JSON technologies and libraries to consume, inspect, and manipulate fixed format data in existing solutions. Daffodil is also capable of the reverse by serializing or "unparsing" an XML or JSON infoset back to the original data format. For more information about Daffodil visit: https://daffodil.apache.org/ Regards, The Apache Daffodil Team
...