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/beta/teams/main/pipelines/develop/jobs/UpdatePassingRef.
  2. 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 resolve/close it or if not fixed then increment the fix version in the ticket
  3. Create the release branch.

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


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

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

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

  7. Update the version number in all the expected pom files use these steps:

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

     

  8. Review the benchmark baseline.  It should be the more recent of {previous release} or develop/highwater.  branch should stay as develop even for release branches.  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: ''
       branch: develop


  9. Publish the release branch to origin

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


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


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

    No Format
    version = 1.7.0
    geodeVersion = 1.7.0


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


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


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


    Code Block
    languagebash
    git checkout develop
    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}"
    
    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}


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


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

...

If three +1's are received and no minus 1's, the release manage should confirm that the ticket is already in a resolved state on develop, confirm the exact commits on develop and , cherry pick to the release branch using git cherry-pick -x <SHA>, do a build to ensure the cherry-pick was clean (if not, ask that a PR be submitted against the release branch), then finally send a notification to the thread:

...

  1. If doing RC2 or later, revert the last temporary commit from geode-examples/gradle.properties and push

    Code Block
    languagebash
    cd geode-examples
    git pull
    git log -1 gradle.properties
    git revert <SHA from above>
    git push


  2. From a checkout of latest geode develop, run the prepare_rc.sh script (a build dir will be created in the current directory, so you may not want to be inside geode when you run it or IntelliJ will freak out).  This script assumes there is a release/X.Y.Z branch pushed to all of the geode repositories (geode, geode-native, geode-examples). It will checkout the tip of that branch for all repos, build them, and copy the artifacts to the build/dist directory. It will also tag the RC in each checkout.  Run this command on a machine using with a GUI as you will be prompted to enter PGP passphrase several times and finally your ASF LDAP password (Apache password). Pay attention as the prompts look very similar.

    Code Block
    remotes/origin/release/1.9.0
    cd geode/dev-tools/release
    ./prepare_rc.sh -v version_with_rc -k your_8_digit_key_id -a your_apache_ldap_username


  3. The instructions "next steps" printed out at the end of the prepare_rc script will walk you through the remaining steps to stage to nexus (pictured below), publish the release, and send an announcement email.

...

  1. cd to the release branch for apache geode and tag the commit with the final version 

    Code Block
    git tag -s rel/v{version} -m "Apache Geode v1.0.0 release" rel/v{version}.RC{latest_rc}
    git push origin rel/v{version}


  2. cd to the release branch for geode-examples and tag the commit with the final version, using same commands as above

  3.  cd to the release branch for geode-native and tag the commit with the final version, using same commands as above

  4. Use svn to move the distributions from dev to release. Use the folders created in step 1 of "Creating the release candidate" section.

    Code Block
    # in the directory created in step 1 of "Creating the release candidate" section.
    
    cd dist
    svn mv dev/geode/{version}.RC#/ release/geode/{version}
    svn commit -m "Releasing Apache Geode {version} distribution"


  5. Update the keys in dist/release.

    Code Block
    # in the directory created in step 1 of "Creating the release candidate" section.
    
    
    cp dev/geode/KEYS release/geode/KEYS
    svn commit -m "Updating Apache Geode KEYS file"


  6. Promote the Nexus staging repo → login to repository.apache.org→ Select Staging repositories → Find "orgapachegeode-####" → Click on the Release Button on the toolbar.

  7. Revert the temporary commit from geode-examples/gradle.properties and push

    Code Block
    languagebash
    cd geode-examples
    git pull
    git log -1 gradle.properties
    git revert <SHA from above>
    git push


Apache Geode JIRA resolved → closed

...