This wiki documents the release process of Apache Submarine.


  1. Please communicate to the community using dev@ to indicate that you would like to be a release manager for a particular release. Announce a proposed code freeze date.
  2. When the date comes, move all outstanding JIRA issues to the next release.
    1. Go to https://issues.apache.org/jira/plugins/servlet/project-config/SUBMARINE/administer-versions and add a new release number.
    2. Use a Jira filter (for example, project = SUBMARINE AND "Target Version" in (0.6.0) and labels is empty and status not in (Closed, Resolved)) to select outstanding jiras, and bulk move to the next release.
  3. Branching from master
    1. export VERSION=0.6.0
    2. git checkout -b branch-${VERSION}
    3. grep -rl -e "${VERSION}-SNAPSHOT" . | xargs sed -i "" -e 's/${VERSION}-SNAPSHOT/${VERSION}/g'
  4. Update version string in the master branch
    1. export VERSION=0.7.0-SNAPSHOT
    2. git checkout master
    3. grep -rl -e "${VERSION}-SNAPSHOT" . | xargs sed -i "" -e 's/${VERSION}-SNAPSHOT/${VERSION}/g'
  5. Update version number in the code. We have Java pom.xml, Python module as well as Dockerfiles to update.
    1. Update Maven version string
      1. mvn versions:set -DnewVersion=${VERSION}
    2. Replace Python version string
      1. cd submarine-sdk/pysubmarine
    3. Create the Python package and upload.
      1. Read the doc: https://github.com/apache/submarine/blob/master/website/docs/userDocs/submarine-sdk/pysubmarine/development.md#upload-package-to-pypi
    4. Publish docker image
  6. Build
  7. Log into Nexus, select "Staging Repositories" from the left navigation pane, select the check-box against the specific hadoop repository, and close the release. At the time of deploying the maven artifacts, if there are different hadoop items of this release candidate at “Staging Repositories”, drop the stale RC first.


Publish

  • No labels