Versions Compared

Key

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

...

  1. Check for the most recent develop SHA that passes all the tests and contains all the features / bug fixes that need to go into the release at https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/UpdatePassingTokens.
  2. Create the release branch (from HEAD should be fine, or if necessary you can specify a particular SHA, such as the last commit that passed the develop pipeline successfully)

    Code Block
    languagebash
    git checkout develop
    git checkout -b release/{version} [GOOD_SHA]


  3. Update the version number in gradle.properties (and remove -SNAPSHOT)

  4. Change SNAPSHOT to "" for SEMVER_PRERELEASE_TOKEN in ci/pipelines/meta/meta.properties

  5. Update the version number in all the expected pom files:

    Code Block
    languagebash
    ./gradlew clean
    ./gradlew build -Dskip.tests=true #note: ok if build fails expected pom test
    ./gradlew updateExpectedPom

     

  6. Update JAR name used in org/apache/geode/session/tests/Tomcat8ClientServerRollingUpgradeTest.java
    1.   Remove `-SNAPSHOT` from the following lines:

      Code Block
      languageyml
      "/lib/geode-modules-" + currentVersion + "-SNAPSHOT.jar",
      "/lib/geode-modules-tomcat8-" + currentVersion + "-SNAPSHOT.jar",


    2. the resulting change will look like:
      Code Block
      languageyml
      "/lib/geode-modules-" + currentVersion + ".jar",
      "/lib/geode-modules-tomcat8-" + currentVersion + ".jar",


  7. Review the benchmark baseline.  It should be the more recent of {previous release} or develop/highwater.  Note: as the release progresses, consider creating and using a dedicated version/highwater tag on the release branch.

    See ci/pipelines/shared/jinja.variables.yml around line 19:

    Code Block
    languageyml
     benchmarks:
       baseline_branch: develop/highwater
       baseline_version: ''
       benchmark_branch: release/{version}


  8. Publish the release branch to origin

    Code Block
    languagebash
    git add .
    git commit -a -m "Upgraded version number for releasing {version}"
    git push origin HEAD


  9. Now checkout the repo for geode-examples (apache/geode-examples.git) and create a release branch.

    Code Block
    languagebash
    git clone git@github.com:apache/geode-examples.git
    git checkout develop origin/develop#very important--a fresh clone of examples gives you master!
    git pull
    git checkout -b release/{version}


  10. Update the version number in gradle.properties of geode-examples and remove -SNAPSHOT

    No Format
    version = 1.7.0
    geodeVersion = 1.7.0


  11. Commit the version changes and push the release branch of geode-examples


    Code Block
    languagebash
    git add -p
    git commit
    git push origin HEAD


  12. Checkout the repo for geode-native (apache/geode-native.git) and create a release branch


    Code Block
    languagebash
    git checkout develop
    git pull
    git checkout -b release/{version}
    git push origin HEAD


  13. Checkout the repo for geode-benchmarks (apache/geode-benchmarks.git) and create a release branch


    Code Block
    languagebash
    git checkout develop
    git pull
    git checkout -b release/{version}
    git push origin HEAD


  14. Send email to dev@geode.apache.org informing the creation of the release branch and requesting feedback.

    No Format
    Hello Geode Dev Community,
    
    We have created a new release branch for Apache Geode {version} - "release/{version}"
    
    We hope to make a final release in about a month.  Please focus your acceptance testing on this branch and raise any concerns in the next few weeks.  After some quiet period we will move to formally package a release candidate and vote upon it.
    
    Regards
    {Release Manager}


  15. Create the concourse release pipeline.

    Code Block
    languagebash
    fly -t concourse.apachegeode-ci.info-main login --concourse-url https://concourse.apachegeode-ci.info/
    cd ci/pipelines/meta
    ./deploy_meta.sh

    This script takes 1-2 hours.  There is no need to manually unpause any jobs. If the script fails at any point, or any -meta or -images pipeline job fails, fix the problem (if applicable) and rerun ./deploy_meta.sh to try again.  Repeat until deploy_meta exits with "Successfully deployed...-main"

     
  16. For the duration of the release process, continue to monitor the new release pipeline and address any issues that may arise, including analyzing any test failures.

...