...
- Create a [DISCUSS] thread on dev@daffodil.apache.org to make a decision as a community if the timing is correct for a release and what open issues should be resolved for a release. Ensure there is at least 72 hours for discussion before moving forward.
- Upon agreement, someone should volunteer to be the "Release Manager" to take the responsibility to prepare the release candidate.
- Check
containers/release-candidate/Dockerfile
for dnf/npm packages with out of date versions (especially sbt and yarn installs). Dependabot does not automatically update these. If out of date, create and merge a pull request to update the versions.
Prior to creating the release candidate, the version of the project still contains the
-SNAPSHOT
keyword. Create and merge a pull request to remove this-SNAPSHOT
keyword in preparation for a non-snapshot release.The new version should not contain an
-rcX
suffix--the suffix is automatically added to release candidate artifact file names where necessary by the release candidate container.
Creating a Release Candidate
...
Parameters of the release file (near the top) that must be set because this is a release candidate include:
Code Block |
---|
releasedrelease: false artifact-root: "https://dist.apache.org/repos/dist/dev/daffodil/2.0.0-rc1/" checksum-root: "https://dist.apache.org/repos/dist/dev/daffodil/2.0.0-rc1/"rc1 |
Look through the git log for any commits with the "Deprecation/Compatibility" keyword and copy that section of the commit message to the deprecation/compatibility section in the release notes.
Additionally, update the Unsupported Features page if any features/errata are now supported in this release.
Follow the steps in the README in the daffodil-site repository Note that these links refer to https://dist.apache.org instead of https://downloads.apache.org because this is a pre-release.
Additionally, update the Unsupported Features page if any features/errata are now supported in this release.Follow the steps in the README in the daffodil-site repository to test and publish the new release page.
...
Code Block | ||||
---|---|---|---|---|
| ||||
Hi all, I'd like to call a vote to release Apache Daffodil 2.0.0-rc1. All distribution packages, including signatures, digests, etc. can be found at: https://dist.apache.org/repos/dist/dev/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 36F3494B033AE661, corresponding to slawrence@apache.org, which is included in the KEYS file here: https://downloads.apache.org/daffodil/KEYS The release candidate has been tagged in git with v2.0.0-rc1. For reference, here is a list of all closedresolved JIRAsJIRA issues tagged with 2.0.0: https://s.apache.org/daffodil-issues-2.0.0 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 (Sunday, 11 February 2018, 12 Noon EST). [ ] +1 approve [ ] +0 no opinion [ ] -1 disapprove (and reason why) Thanks, - Steve |
...
Move the release candidate files to the release directory. (This prompts for your apache account password. It may prompt you about plaintext password storage. If so, it works even if you answer "no".)
For Daffodil:
Code Block language bash $ svn mv -m "Release Apache Daffodil 2.0.0" \ https://dist.apache.org/repos/dist/dev/daffodil/2.0.0-rc1/ \ https://dist.apache.org/repos/dist/release/daffodil/2.0.0/
For Daffodil VS Code Extension:
Code Block $ svn mv -m "Release Apache Daffodil VSCode Extension 2.0.0" \ https://dist.apache.org/repos/dist/dev/daffodil/daffodil-vscode/2.0.0-rc1/ \ https://dist.apache.org/repos/dist/release/daffodil/daffodil-vscode/2.0.0/
Make a new clean clone (for good measure) and create a signed git tag based on the release candidate tag. You need your KEYID (See step 3b above) for your Apache signing key, and you will be prompted for the pass-phrase for your Apache signing key.
Make sure to use daffodil-vscode.git when releasing Daffodil VS Code Extension.
Code Block language bash $ cd /tmp $ git clone git@github.com:apache/daffodil.git daffodil-2.0.0-rc1 $ cd daffodil-2.0.0-rc1 $ git tag -as -u KEYID -m "Release v2.0.0" v2.0.0 v2.0.0-rc1^{} $ git push origin v2.0.0
You can delete the /tmp clone directory at this point.
- For Daffodil only, "Release" the staged files at https://repository.apache.org - log into that URL with id.apache.org credentials, check the box for the Daffodil staging repository, and click "Release" at the top.
- For Daffodil only, deploy the RPM to the Apache Artifactory repository:
- Download the RPM convenience binary for this release (from
https:
//dist
.apache.org
/repos/dist/release/daffodil/2
.0.0/)
- Visit https://apache.jfrog.io/ and login using Apache credentials
- Click "Artifacts"
- Click "daffodil-rpm"
- Click "Deploy"
- Click "select file" and select the previously downloaded RPM
- Click "Deploy"
- Download the RPM convenience binary for this release (from
- For Daffodil only, update JIRA's Releases page to mark the version as released (need to be a PMC member - ask a PMC member if you are not one).
Wait approximately 24 hours for the release files to sync to mirrors and Maven Central (for Daffodil only). To verify, check here
https://search.maven.org/ (ensure you can see daffodil libraries with versions matching all supported Scala versions; select one and verify the release versions exist in at least the sbt version)
https://www.apache.org/dyn/closer.lua/daffodil/2.0.0 (change 2.0.0 to the new version, pick a mirror, and ensure the files exist)
For Daffodil only, once the mirrors have synced, make the following changes to the daffodil site repository and publish them:
Modify the release page to have the following parameters:
Code Block releasedrelease: truefinal date: <date of release> artifact-root: "https://www.apache.org/dyn/closer.lua/daffodil/2.0.0/" checksum-root: "https://downloads.apache.org/daffodil/2.0.0/"
Modify the site/doap.rdf file to include the release date and versionModify the release page of the previous release to use archived root URLs, for example:
Code Block artifact-root: "https://archive.apache.org/dist/daffodil/1.0.0/" checksum-root: "https://archive.apache.org/dist/daffodil/1.0.0/"
Modify the site/doap.rdf file to include the release date and version, for example:
language Code Block language xml <release> <Version> <name>Apache Daffodil</name> <created>2018-02-18</created> <revision>2.0.0</revision> </Version> </release>
Update the symlink to the latest Javadoc and Scaladoc docs in the site/docs directory (note that there is no forward slash at the end of
latest)
.Code Block language bash $ cd site/docs/ $ ln -sfn 2.0.0 latest
- Follow the steps in the daffodil-site README in that repository to test and publish the new release page.
- Visit https://reporter.apache.org/addrelease.html?daffodil (must be a PMC) and add the release version and date. For Daffodil VS Code Extenion, prepend "VSCODE-" to the version.
Now Now that the download URLS of the previous release point to the archive, remove that release from Apache dist to free up space on mirrors:
For Daffodil:Code Block $ svn delete -m "Archive Apache Daffodil 1.0.0" \ https://dist.apache.org/repos/dist/release/daffodil/1.0.0/
For Daffodil VS Code Extension:Code Block $ svn delete -m "Archive Apache Daffodil VS Code Extension 1.0.0" \ https://dist.apache.org/repos/dist/release/daffodil/daffodil-vscode/1.0.0/
Publish VS Code Extension to Marketplace:
For this access the to ASF VS Code publisher via your Visual Studio Marketplace account. This can be done by making a INFRA ticket in JIRA and tag Gavin McDonald. After you have been added you should be able to follow the steps below.
- Download the latest VSIX file from https://daffodil.apache.org/vscode/
- Navigate to https://marketplace.visualstudio.com/vs in a browser.
- Login to your Visual Studio Marketplace account that has access to the ASF VS Code publisher.
- Click the button "Publish extensions" in the upper right of the page.
- Click the 3 dots ("...") next to "Apache Daffodil VS Code Extension". Select "Update"
- Either drag and drop the download VSIX file from a window explored. Or select "Explore" and select the downloaded VSIX file.
- Once the file uploads finish the version area should say "Verifying <VERSION>".
- Make once the version is verified, the version expected is displayed.
Announce the release
Send an announcement email from your apache.org email address 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 below template.
To send to announce@apache.org, your email app needs to be configured. Settings can be found on Apache's Committer Email page. For Gmail, you can request to "Send Email as" and with Thunderbird, you can add a new Outgoing SMTP Server and create a new Identity (Manage Identities) to send from the relay.
Make sure to update links and use "plain text" editing for the email. HTML editing often leads to broken links or incorrect formatting.
Make sure to update the project name and description when releasing the Daffodil VS Code Extension
Code Block language text title \[ANNOUNCE\] Apache Daffodil 2.0.0 Released The Apache Daffodil community is pleased to announce the release of version 2.0.0. Notable changes in this release include <short summary of changes>. Detailed release notes and downloads are available at: https://daffodil.apache.org/releases/2.0.0/ Apache Daffodil is an open-source implementation of the DFDL specification that uses DFDL data descriptions to parse fixed format data into an infoset. This infoset is commonly converted into XML or JSON to enable 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 serializing or "unparsing" data back to the original data format. The DFDL infoset can also be converted directly to/from the data structures carried by data processing frameworks so as to bypass any XML/JSON overheads. For more information about Daffodil visit: https://daffodil.apache.org/ Regards, The Apache Daffodil Team
- The same or a similar announcement can also be posted to the DFDL Workgroup News page here: https://github.com/OpenGridForum/DFDL/wiki/DFDL-Workgroup-News (Done by a DFDL Workgroup member, like Mike B).
Send a tweet from the @ApacheDaffodil twitter account, mentioning the release version, highlights of changes, and a link to the release page. You will need to be invited/accept, via Tweetdeck, permission to tweet from the account. At which point you may compose the below style of message from Tweetdeck.
Code Block The @ApacheDaffodil team is excited to announce the release of version 2.0.0! Notable changes include <short summary of changes>. Details and downloads at https://daffodil.apache.org/releases/2.0.0/
- Various published DFDL schemas and examples will, most-likely, want to be updated so that they automatically reference the latest release of Daffodil from their main branch.
...