Skip to content

Performing a release

ljacqu edited this page Jun 20, 2023 · 20 revisions

Note to self on how to release the project.

Release process

Preconditions

  • Java 8 is default version java -version
  • gpg command available on machine
  • gpg + Github SSH key known
  • Login details for ossrh repo and gpg key present in /.m2/settings.xml (must match repo ID of pom.xml)
  • Latest build successful (on GitHub and CodeMC Jenkins)
  • Ensure that Javadoc can be generated without errors: mvn javadoc:javadoc
  • No local changes
  • Dependencies branch merged (or intentionally not)

Preparation

  • Clone new copy: git clone git@github.com:AuthMe/ConfigMe.git configme-release && cd configme-release
    • If this fails (access denied), probably the SSH key for GitHub is not properly set up. Do not clone with the https URL as it may create issues in the releasing process later on!
  • Not releasing from master? Run git fetch && git switch other-branch, otherwise go to next point
  • Create new branch git checkout -b release && git push --set-upstream origin release
  • Check right Git author settings git config user.name && git config user.email
    • Otherwise change them with git config --global user.name ljacqu && git config --global user.email ljacqu@users.noreply.github.com

Prepare release

  • mvn release:prepare -P release
  • Use dryRun to test: mvn release:prepare -P release -DdryRun=true

If it failed:

  • mvn release:rollback -P release
  • delete remote branch: git push origin :<tag-name>
  • delete the release tag if it was created
  • delete the local checkout

Perform release

  • mvn release:perform -P release
  • merge release branch into master, delete release
  • delete project copy

Check release success

Project cleanup

  • Close Github milestone
  • Update version in README and add entry to changelog
  • Update known projects using ConfigMe – AuthMe, PerWorldInventory

Debugging (obsolete)

Check that SSH connection works

https://help.github.com/articles/testing-your-ssh-connection/ Make sure project is checked out with SSH url, otherwise change by executing git remote set-url origin git@github.com:AuthMe/ConfigMe.git

Maven release plugin hangs when pushing (Windows)

Need to set some SSH variables manually: http://stackoverflow.com/a/3691730

i.e. in C:\Programs...\Git\bin, execute ssh-agent and based on its output set the following variables:

set SSH_AUTH_SOCK=/tmp/ssh-LhiYjP7924/agent.7924
set SSH_AGENT_PID=2792

Afterwards need to reference the id_rsa file as well:

ssh-add "C:/Users/user/.ssh/id_rsa"

⚠️ Keep using the same console instance after doing this! This is on a per console basis.