Versions Compared

Key

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

Some repositories have special required steps and instructions in their docs folder called something like Maintainer.md. Please check that too.

(Optional) Step 1: Start release branch

Create a branch called release/X.X.X.

...

Note

Before following this guide, check the repository you are working with for repository specific instructions. These can be in the README.md or in a subfolder like docs/Making_a_Release.md.

Step 1: Make release specific commits

  1. Run a "Find and replace" on all files (not just *.gradle) in the repo to replace the old version with new version. Make sure to search over all files, not just *.gradle. The main location to change to tell it what version of jar file to create will likely be something like buld.gradle.kts.

  2. Update the project's README.md to document any changed procedures, new features, etc.

  3. Make sure the last release specific commit you make is named :bookmark: X.X.X

Step

...

2: Publish artifacts

Publishing requires authentication for either Sonatype Maven Central or IHMC Nexus. If you are publishing to Sonatype Maven Central, an existing us.ihmc member must email "Support" <central-support@sonatype.com>, asking for the new user be added.

  1. Make sure the commit on which you perform the following task has the message: :bookmark: X.X.X

  2. Commit and push tag named after the version X.X.X
    git tag X.X.X
    git push origin X.X.X

  3. This requires having publishUsername

...

  1. and publishPassword (public repositories) and/or

...

  1. nexusUsername, and

...

  1. nexusPassword (private repositories) added to your gradle.properties

...

  1. .
    If the project is open source, you will be publishing to the public /wiki/spaces/HOWTO/pages/14288924.
    For the public repositories, publishUsername and publishPassword are actually generated tokens rather than your credentials. See /wiki/spaces/HOWTO/pages/14288924.
    If the project is closed source, you will be publishing to our locally hosted /wiki/spaces/ADAA/pages/

...

  1. 16975952.
    Instructions are found in the IHMC Build README and .

  2. (New) A GPG keypair is required in order to sign the artifacts. Install GPG on your system and create a new keypair in the default location (or install an existing one to the default location).
    Example:

    Code Block
    $ gpg --list-keys 
    gpg: WARNING: unsafe permissions on homedir '/home/d/.gnupg'
    /home/d/.gnupg/pubring.kbx
    --------------------------
    pub   rsa4096 2023-01-25 [SC] [expires: 2028-01-24]
          D373DB90D5B2B98E6F32AB382228ADBB5EC0B2FA
    uid           [ultimate] Dexton Anderson <danderson@ihmc.org>
    sub   rsa4096 2023-01-25 [E] [expires: 2028-01-24]

    To generate a new key, run $ gpg --full-gen-key and follow the prompts.

  3. (New) If publishing to Sonatype Maven Central, go to https://central.sonatype.com/publishing, create a new user token and put the generated token username and token password in your gradle.properties (publishUsername and publishPassword properties)

    Screenshot_2025-06-20_17-01-35.pngImage AddedScreenshot_2025-06-20_17-01-50.pngImage AddedScreenshot_2025-06-20_17-02-05.pngImage Added
  4. Run
    gradle

...

  1. compositePublish -PpublishUrl=ihmcRelease

...

  1. (from IHMC Build README)

...

  1. (New) If publishing to Sonatype Maven Central, you must manually click Publish on the Deployment created in the web interface (https://central.sonatype.com/publishing/deployments)

    Screenshot_2025-06-18_10-58-40.pngImage Added
  2. You can check that it worked by looking here: https://repo.maven.apache.org/maven2/us/ihmc/
    or, if closed source, here: https://nexus.ihmc.us/#browse/browse:proprietary-releases

(if you performed Step 1) Step 4: Merge release branch into develop

  1. checkout develop
  2. merge release/X.X.X

(Sort of extra) Step 5: Merge develop into master (Note! On some important repositories you may need to create a pull request for this)

  1. checkout master
  2. merge develop

...

Step 3: Draft and publish release notes on GitHub

...

  1. Go

...

  1. to https://github.com/ihmcrobotics/your-project/releases

  2. Click "Draft a new release"

  3. Enter version X.X.X as the tag name

...

  1. Use “Auto Generate Release Notes”

  2. Click "Publish release"