Versions Compared

Key

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

...

  1. Prior to creating the release candidate, the version setting in build.sbt should contain the -SNAPSHOT keyword. Create and merge a pull request to remove this keyword in preparation for a non-snapshot release.

  2. 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
    languagebash
    $ ./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:

    1. Create a zip of the source

    2. Create tgz, zip, and rpm of the helper binary

    3. Create sha1, sha256, sha512 checksum and ASCII armored detached signatures of the above files

    4. Move the above files to the Apache dist dev directory

    5. Create javadoc and scaladoc and move to the daffodil site repository docs directory for this release

    6. Stages jars/poms to https://repository.apache.org

    7. Create a signed git tag

  3. Once the script completes, you should verify all the files. This includes:

    1. Verify the checksums and signatures created in the Apache dist directories are correct

    2. 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.

    3. Verify the git tag is correct

    4. Verify the javadoc and scala docs in the daffodil site repository are correct

    If any of the above do not look correct you will need to rerun the release candidate script; however,  before doing so you must
     
    1. Drop the published jars/poms (at https://repository.apache.org - check the box for the staging repository just created and choose "Drop" at the top)
       
    2. Delete the git tag (git tag -d tagname).
       
    3. Fix whatever the issue is and repeat from step 2.

  4. After verifying all is correct, commit the changes:

    1. Commit the files in Apache dist, for example:

      Code Block
      languagebash
      svn add dev/incubator/daffodil/*
      svn ci -m "Stage Apache Daffodil (incubating) 2.0.0-rc1"


    2. Close the published Nexus files by visiting https://repository.apache.org, log in, find the release in "Staging Repositories" and select "Close".

    3. Push the git tag

      Code Block
      languagebash
      git push asf v2.0.0-rc1


...

  1. In the Apache dist directory, move the release candidate files to the release directory:

    Code Block
    languagebash
    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"


  2. In the Daffodil git repository, create a signed git tag based on the release candidate tag

    Code Block
    languagebash
    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


  3. Release the published Nexus files by visiting https://repository.apache.org, log in, find the release in "Staging Repositories" and selecting "Release".

  4. Give approximately 24 hours for the release files to sync to mirrors and maven central. Once synced, perform the following steps:
     

  5. Make the following changes to the daffodil site repository for the new release:

      

    1. Modify the 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/"


    2. Modify 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/"


    3. Modify the doap.rdf file to include the release date and version, for example:

      Code Block
      languagexml
      <release>
          <Version>
              <name>Apache Daffodil</name>
              <created>2018-02-18</created>
              <revision>2.0.0</revision>
          </Version>
      </release>


     
  6. Remove the previous release from the Apache dist repository now that the download URLs point to the archives:

    Code Block
    svn rm release/incubator/daffodil/1.0.0/
    svn ci -m "Archive Apache Daffodil (incubating) 1.0.0"


  7. 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
    languagetext
    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
    


  8. The same or a similar announcement can also be posted to the DFDL Workgroup News page here: https://redmine.ogf.org/projects/dfdl-wg/news
     
  9. 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 master branch.

...