Releasing a Standalone Library

Note

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.

Step 2: 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 3: Publish artifacts

  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 and publishPassword (public repositories) and/or nexusUsername, and nexusPassword (private repositories) added to your gradle.properties.
    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 Creating a Token.
    If the project is closed source, you will be publishing to our locally hosted /wiki/spaces/ADAA/pages/16975952.
    Instructions are found in the IHMC Build README and .
  4. Run
    gradle compositePublish -PpublishUrl=ihmcRelease
    (from IHMC Build README) Note: You can do all of these things from Eclipse if you wish. For the gradle publish, Open Gradle Tasks, then right click on publish: 

    and select Open Gradle Run Configuration... Change the gradle task to publish -PpublishUrl=ihmcRelease. Apply and save this. This will now show up under the Run Configurations:
  5. You can check that it worked by looking here: https://s01.oss.sonatype.org/content/repositories/releases/us/ihmc/
    and when it's actually resolvable by Gradle it'll show up here (this can take like 15 minutes): 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

(Also extra) Step 6: Draft and publish release notes on GitHub (For open source projects only)

  1. Go to https://github.com/ihmcrobotics/your-project/releases
  2. Click "Draft a new release"
  3. Enter version X.X.X as the tag name
  4. Title the release "X.X.X Release Notes"
  5. Document all features, API changes, regressions, bug fixes, etc.
  6. Tick the "This is a pre-release" box
  7. Click "Publish release"