Difference between revisions of "How to Make a Release"

From OPeNDAP Documentation
m (Time to complete by release)
m
Line 1: Line 1:
 +
== When we decide to release software ==
 +
Use the developers at opendap.org list to send out notices to all the developers about pending releases.
 +
 +
=== Planned release ===
 +
If this is a planned release, send out a notice at least two weeks in advance to anyone who likely has made changes to the software. More lead time is, of course, better. This will allow developers time to get their code and documentation changes into github and onto the master branch in time for the release.
 +
 +
Run Coverity!
 +
 +
=== Emergency releases ===
 +
If this is an 'emergency' release, then send out a notice to developers as soon as the decision to release is made, since this will give a chance for other developers to lets us know if there are new changes in the master branch that are ready for release. if we don't get an email from those developers of a particular component, then we should assume that the code might not be 100% ready for release and we should use the version tagged with/for the last release if possible.
 +
 +
Maybe run Coverity - depends on the scope of the changes.
 +
 
== Overview ==
 
== Overview ==
 
This is an updated set of notes regarding a software release. It is tailored to a release of Hyrax, but the same process can be used for any of our code.
 
This is an updated set of notes regarding a software release. It is tailored to a release of Hyrax, but the same process can be used for any of our code.

Revision as of 22:41, 26 November 2018

1 When we decide to release software

Use the developers at opendap.org list to send out notices to all the developers about pending releases.

1.1 Planned release

If this is a planned release, send out a notice at least two weeks in advance to anyone who likely has made changes to the software. More lead time is, of course, better. This will allow developers time to get their code and documentation changes into github and onto the master branch in time for the release.

Run Coverity!

1.2 Emergency releases

If this is an 'emergency' release, then send out a notice to developers as soon as the decision to release is made, since this will give a chance for other developers to lets us know if there are new changes in the master branch that are ready for release. if we don't get an email from those developers of a particular component, then we should assume that the code might not be 100% ready for release and we should use the version tagged with/for the last release if possible.

Maybe run Coverity - depends on the scope of the changes.

2 Overview

This is an updated set of notes regarding a software release. It is tailored to a release of Hyrax, but the same process can be used for any of our code.

  1. Look for any tickets that have been bound to the label 'fix release x.y.z' and make sure those are completed. Use the Kanban board.
  2. When we are ready to release, follow the process outlined in the section below.
  3. Once done, close the board

3 Set Tasks for a Release

Only start this process with libdap, bes and OLFS master branches all building and passing their tests.

3.1 For a major release

  1. Security Review for libdap, BES and OLFS
  2. Write a new X.Y web page. See the web site admin notes for info about this. It has important information about the menu links. Base this on the previous release page's structure/content.
  3. Follow the remaining steps for a minor release (below).

3.2 For a minor release

  1. Update the release page on website. For this, copy the X.Y page and make it X.Y.n. In the future, we might use only a single page for release X.Y and simply amend it with information for version .1, .2, and so on. Don't bother to edit the links, just get the text in place.
  2. Source release for libdap, BES and OLFS. Follow the itemized instructions for each.
  3. Make and upload the source distributions for libdap, BES and, OLFS - delay signing until later.
  4. Transfer the binary packages built using the CI/CD process. Do this by logging into the web site host using ssh and the opendap account. Then use curl -O ... to transfer the RPMs and Debian packages from our build.travis.opendap S3 bucket.
  5. Update the info for the hyrax Docker container build in the Docker project on GitHub.
  6. Update the links on the web page made/copies/edited above. Test each link - source and binary. Once all of those work...
  7. Sign the packages (source and binary). Do this by downloading the packages, signing and then uploading the .sig files - no need to upload the actual packages.
  8. Install the new server on test.opendap.org
  9. Send out a notice.
  10. Close the Kanban board for the given release.
  11. Update and of the release checklists and the 'Time to complete...' information below.

3.3 Time to complete by release

  • Hyrax 1.12.2: The total time was planned as 3w 1d 5h and turned out as 1w 2d 2h 10m.
  • Hyrax 1.15.1: 3d calendar time