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
- Admin access to OpenWhisk GitHub
- Write access to OpenWhisk Docker Hub
- Write access to Apache maven repository
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:
- create openwhisk-src.zip (contain all core + runtimes), run license checker, sign with PGP key
- start voting on dev list
- publish the source under Apache dist location
- release other artifacts (docker, maven, etc.)
Release management tasks
- Make sure that an appropriate milestone (version) for the release is entered in GitHub issues and that all the related issues have been resolved.
- Create a new milestone in GitHub for the next release.
- Create the RELEASE-NOTES.txt from GitHub issues.
Build and deploy the release artifacts with release script. See below for the exact steps.
- 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