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. Ensure that all JIRA tickets mentioned in commits (since the last release branch was cut) are marked as Resolved in JIRA.  If not, ask assignees if there is still more work to be done.
  3. Ensure in JIRA, that all tickets with {version} as the fix version are either closed or resolved. If not inform the the assignees to either mark it Resolved or  increment the fix version.
  4. 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]


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

  6. Update the version number in ci/pipelines/geode-build/jinja.template.yml

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

  8. 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

     

  9. 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}


  10. 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


  11. 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
    git checkout -b release/{version}


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

    No Format
    version = 1.7.0
    geodeVersion = 1.7.0


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


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


  14. 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


  15. 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


  16. 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}"
    
    Please do review and raise any concern with the release branch.
    If no concerns are raised, we will start with the voting for the release candidate soon.
    
    Regards
    {Release Manager}


  17. Create the concourse release pipeline.

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


  18. Monitor the new release pipeline and resolve any issues that may arise. 

...

  1. update gradle.properties
      1. update the version property to the next release version and ensure that it has -SNAPSHOT on the end. (for example: if you created release branch for 1.8.0 update version number to 1.9.0-RELEASE on the develop branch)
  2. if not a patch release, update geode-coreserialization/src/main/java/org/apache/geode/internal/serialization/Version.java
      1. Add the new ordinal for the new version

        Code Block
        languagejava
        titleNew ordinal
        //Add 5 to the previous ordinal
        private static final byte GEODE_1_9_0_ORDINAL = 100;


      2. Add the new version 

        Code Block
        languagejava
        titleAdding the new version
        public static final Version GEODE_1_9_0 =
              new Version("GEODE", "1.9.0", (byte) 1, (byte) 9, (byte) 0, (byte) 0, GEODE_1_9_0_ORDINAL);


      3. Set the current version to the new version

        Code Block
        languagejava
        titleSet current to new version
        public static final Version CURRENT = GEODE_1_9_0;



      4. Update the highest version

        Code Block
        languagejava
        titleSet current to new version
        public static final int HIGHEST_VERSION = 105;


  3. if not a patch release, update geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CommandInitializer.java
      1. Add the next version to addCommands

        Code Block
        languagejava
        titleCommandInitializer
        allCommands.put(Version.GEODE_1_9_0, geode18Commands);



  4. Update the version in geode-book/config.yml and geode-book/redirects.rb on develop.  Note: do NOT include the patch digit in product_version_nodot in config.yml, even for patch releases
  5. Update the expected-pom.xml files

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


  6. Review the benchmark baseline.  In theory this could be updated to the new release branch, but the highwater tag is preferable.

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

    Code Block
     benchmarks:
       baseline_branch: develop/highwater
       baseline_version: ''
       benchmark_branch: develop


  7. Publish the develop branch to origin

    Code Block
    titlePublish the changes to develop
    git add .
    git commit -a -m "Upgraded version number for releasing 1.x.x"
    pit push origin develop


  8. Plus the BumpMinor task to increment the concourse version in the apache-geode concourse pipeline at: 
    https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main?group=Semver%20Management
    (if you do not have concourse permissions to plus jobs, ask on the dev list)

  9. Update the version and geodeVersion in gradle.properties file of the geode-example develop branch to the next release version

    Code Block
    languagebash
    git checkout develop
    version = 1.9.0-SNAPSHOT
    geodeVersion = 1.9.0-SNAPSHOT
    git add -p
    git commit
    git push origin HEAD


  10. In Jira, add new version of develop: go to https://issues.apache.org/jira/projects/GEODE?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page and fill in the new version and click Add (note: you must be in the Jira Administrators group to do this, ask on the dev list if you are not).

...