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


  4. gradle.properties

      1. remove -SNAPSHOT in releaseType 
  5. Update the version number in all the expected pom files. Doing it manually takes a lot of time. If you choose to do it I have listed the files below. Otherwise please use the script below to do it.

    Info
    titleUpdating the expected-pom files

    - build geode after the version is updated in gradle.properties. NOTE: The build will fail but will have the correct expected-pom.xml files

    Code Block
    languagebash
    titlegradle build
    ./gradlew clean build -Dskip.tests=true

    - Update dependency versions using gradle task updateExpectedPom.

    Code Block
    languagebash
    titlegradle uEP
    ./gradlew uEP

    - Publish the release branch to origin

    Code Block
    titlePublish the release branch
    git add .
    git commit -a -m "Upgraded version number for releasing {version}"
    pit push origin release/{version}



  6. Now checkout the repo for geode-examples and create a release branch.

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


  7. Update the version number in gradle.properties of geode-examples

    Code Block
    version = 1.7.0
    geodeVersion = 1.7.0


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


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


  9. Checkout the repo for geode-native and create a release branch


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


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



  11. Setting up concourse release pipeline

    No Format
    $ cd ci/pipelines/meta
    $ ./deploy_meta.sh
    
    # You might need fly in your PATH 
    # fly target named `concourse.apachegeode-ci.info`
    $ fly -t concourse.apachegeode-ci.info login --concourse-url https://concourse.apachegeode-ci.info/
    cd ci/pipelines/meta
    ./deploy_meta.sh


Release Doc preparation:

  1. Start preparing the release docs at Release Notes. Use information from all the JIRAs that were closed or resolved. 
  2. Also write up a short paragraph on what was added to the release. This will need to go with the final announce email. Sample:


    No Format
    Geode 1.7.0 contains a number of improvements and bug fixes. It includes performance improvements in OQL order-by and distinct queries in client/server when security is enabled. New GFSH commands were added to get/set cluster config and to destroy gateway receivers. A new post processor was added to the new client protocol. Pulse now supports legacy SSL options. Auto-reconnecting members no more reuse old addresses and IDs. Duplicated or member-specific receivers are removed from cluster config during rolling upgrades. Users are encouraged to upgrade to the latest release.



...

  1. Build website from sources as described in geode-site/website/README.md.
  2. In the generated site, create the directory geode-site/content/releases/latest.
  3. Obtain a copy of the javadoc directory from the binary build and put it in the geode-site/content/releases/latest directory (link from the website's Docs landing page points to ../releases/latest/javadoc).
  4. Deploy the generated site by checking it into the asf-site branch of the apache-geode repo.

Merge to master


Destroy concourse release pipelines


No Format
fly -t concourse.apachegeode-ci.info login --concourse-url https://concourse.apachegeode-ci.info/
cd ci/pipelines/meta
./destroy_pipelines.sh


Merge to master and destroy release branch

  1. Merge release Merge release branch to master for apache geode and then delete the release branch

    Code Block
    git fetch --all
    git checkout release/1.9.0
    git merge -s ours origin/master -m "Merging release/1.9.0 into master"
    git checkout master
    git merge release/1.9.0
    git push origin master
      
    git branch -D release/{version}
    git push origin --delete release/{version}


  2. Merge release branch to master for geode-examples and then delete the release branch, using same commands as above

  3. Merge release branch to master for geode-native and then delete the release branch, using same commands as above

Sending the announce mail.


Add to old versions

Check out develop and make a PR to add the released version to settings.gradle

Eg. somewhere around line 75:

Code Block
'1.9.0'].each


Sending the announce mail.

To:  user@geode.apache.org, announce@apache.org, dev@geode.apache.org

Subject: [ANNOUNCE] Apache Geode 1.9.0

*** *** Important: Send the email from an your apache email ID. *** (otherwise announce@apache.org will bounce. See https://reference.apache.org/committer/email for how to send email from your apache email address)

No Format
No Format
The Apache Geode community is pleased to announce the availability of
Apache Geode {version}.
Apache Geode is a data management platform that provides a database-like
consistency model, reliable transaction processing and a shared-nothing
architecture to maintain very low latency performance with high concurrency
processing.
Geode {version} contains a number of improvements and bug fixes. It includes performance improvements in OQL order-by and distinct queries in client/server when security is enabled. New GFSH commands were added to get/set cluster config and to destroy gateway receivers. A new post processor was added to the new client protocol. Pulse now supports legacy SSL options. Auto-reconnecting members no more reuse old addresses and IDs. Duplicated or member-specific receivers are removed from cluster config during rolling upgrades. Users are encouraged to upgrade to the latest release.
For the full list of changes please review the release notes:
https://cwiki.apache.org/confluence/display/GEODE/
Release+Notes#ReleaseNotes-{version}
The release artifacts can be downloaded from the project website:
http://geode.apache.org/releases/
The release documentation is available at:
http://geode.apache.org/docs/guide/{version eg. in the format as 17 or 18 or 19}/about_geode.html
We would like to thank all the contributors that made the release possible.
Regards,
{Release Manager} on behalf of the Apache Geode team

Post release:

Add the released version to  geode-old-versions/build.gradle

Eg.

Code Block
addOldVersion('test160', '1.6.0', true)

Destroy the concourse release pipeline (details tbd)

No Format
$ cd ci/pipelines/meta
$ ./destroy_meta.sh

# You might need fly in your PATH 
# fly target named `concourse.apachegeode-ci.info`
$ fly -t concourse.apachegeode-ci.info login --concourse-url https://concourse.apachegeode-ci.info/.html
We would like to thank all the contributors that made the release possible.
Regards,
{Release Manager} on behalf of the Apache Geode team