Info | ||
---|---|---|
| ||
Some repositories have special required steps and instructions in their |
(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 |
Step 1: Make release specific commits
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.
Update the project's
README.md
to document any changed procedures, new features, etc.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.
Make sure the commit on which you perform the following task has the message:
:bookmark: X.X.X
Commit and push tag named after the version
X.X.X
git tag X.X.X
git push origin X.X.X
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
andpublishPassword
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/
...
16975952.
Instructions are found in the IHMC Build README and .(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.(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)
Run
gradle
...
compositePublish -PpublishUrl=ihmcRelease
...
(from IHMC Build README)
...
(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)
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
checkout develop
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)
checkout master
merge develop
...
Step 3: Draft and publish release notes on GitHub
...
Go
...
to https://github.com/ihmcrobotics/your-project/releases
Click "Draft a new release"
Enter version X.X.X as the tag name
...
Use “Auto Generate Release Notes”
Click "Publish release"