This is a document for creating releases in OpenWhisk. It documents the proposed release process and will be updated as we move forward.

Release planning

OpenWhisk releases are created weekly.

Version definition

Version number should follow semantic versioning: http://semver.org/.

Prerequisites for release managers

Release tools

All the tools related to creating OpenWhisk release should be in https://github.com/apache/incubator-openwhisk-release.

Source release

According to ASF guideline [1] [2] [3], release for an incubator project must follow:

  1. create openwhisk-src.zip (contain all core + runtimes), run license checker, sign with PGP key
  2. start voting on dev list
  3. publish the source under Apache dist location
  4. release other artifacts (docker, maven, etc.)

Release management tasks

  1. Make sure that an appropriate milestone (version) for the release is entered in GitHub issues and that all the related issues have been resolved.
  2. Create a new milestone in GitHub for the next release.
  3. Create the RELEASE-NOTES.txt from GitHub issues.
  4. Build and deploy the release artifacts with release script. See below for the exact steps.

  5. Send an announcement email to openwhisk dev mailing list

Steps to build the release artifacts

All components should be tagged with semantic versioning and released as docker images. The release script would:

  • run automated tests: if failed, stop releasing here
  • if passed, ask the release person to specify release version
  • build and tag the Java artifacts with this version
  • push Java artifacts to Apache Maven repository
  • build and tag the docker images with this version
  • push docker images to Docker Hub
  • create release tag in GitHub

 

[1] http://www.apache.org/legal/release-policy.html
[2] http://www.apache.org/dev/release-distribution.html
[3] http://incubator.apache.org/guides/releasemanagement.html

  • No labels