|
| 1 | +# Performing a release |
| 2 | + |
| 3 | +## General information for publishing to Maven Central |
| 4 | + |
| 5 | +* https://central.sonatype.org/register/central-portal/ |
| 6 | +* https://central.sonatype.org/publish/publish-guide/ |
| 7 | + |
| 8 | +## Steps for (mostly) one-time setup |
| 9 | + |
| 10 | +* `git clone https://github.com/com-github-javabdd/com.github.javabdd.git javabdd.git` |
| 11 | +* cd `javabdd.git` |
| 12 | +* Edit `.git/config`, adding: |
| 13 | + ```ini |
| 14 | + [user] |
| 15 | + name = FirstName LastName |
| 16 | + email = EmailAddress |
| 17 | + ``` |
| 18 | + By fulling in your `FirstName` and `LastName` and your GitHub `EmailAddress`. |
| 19 | +* Create a GitHub personal access token, at https://github.com/settings/tokens. |
| 20 | + Use it as a password. |
| 21 | + It expires after some time, so create a new one if needed. |
| 22 | +* Create a Sonatype personal access token, at https://oss.sonatype.org. |
| 23 | + Log in and go to your profile. |
| 24 | + Instead of *Summary*, select *User Token*. |
| 25 | + Create a user token. |
| 26 | +* Create a local GPG key. |
| 27 | +* Configure "ossrh" server credentials in Maven settings. |
| 28 | + Create/edit `$HOME/.m2/settings.xml`, to have the following settings: |
| 29 | + ```xml |
| 30 | + <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" |
| 31 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 32 | + xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 |
| 33 | + http://maven.apache.org/xsd/settings-1.0.0.xsd"> |
| 34 | + |
| 35 | + <profiles> |
| 36 | + <profile> |
| 37 | + <id>ossrh</id> |
| 38 | + <activation> |
| 39 | + <activeByDefault>true</activeByDefault> |
| 40 | + </activation> |
| 41 | + <properties> |
| 42 | + <gpg.passphrase>GPG_KEY</gpg.passphrase> |
| 43 | + </properties> |
| 44 | + </profile> |
| 45 | + </profiles> |
| 46 | + |
| 47 | + <servers> |
| 48 | + <server> |
| 49 | + <id>ossrh</id> |
| 50 | + <username>SONATYPE_USERNAME</username> |
| 51 | + <password>SONATYPE_TOKEN</password> |
| 52 | + </server> |
| 53 | + </servers> |
| 54 | + </settings> |
| 55 | + ``` |
| 56 | + Fill in your `GPG_KEY`, `SONATYPE_USERNAME` and `SONATYPE_TOKEN`. |
| 57 | + |
| 58 | +## Steps for each release |
| 59 | + |
| 60 | +* Make sure `CHANGES.md` has an entry for the new release. |
| 61 | +* `export JAVA_HOME=SOME_PATH` with `SOME_PATH` the path to the root folder of a JDK 17 installation. |
| 62 | +* `export PATH=SOME_PATH/bin:SOME_PATH2/bin:$PATH` with `SOME_PATH` the path to the root folder of your GPG installation, and `SOME_PATH2` the path to the root folder of a JDK 17 installation. |
| 63 | +* `./release-prepare` from your clone of the JavaBDD repo. |
| 64 | + When asked for a release version, type something like `9.0.0` and press *Enter*. |
| 65 | + When asked for an SCM tag/label, press *Enter*. |
| 66 | + When asked for the new development version, press *Enter*. |
| 67 | +* `./release-perform` from the same directoy. |
| 68 | +* If all was successfull, check the new commits that are made, and push them using `git push`. |
| 69 | +* Also push the new tag using `git push --tags`. |
| 70 | +* Manually create a new GitHub release, basing it on the new tag, setting the version as release title, and copying the changelog entry from `CHANGES.md` as the release notes text. |
| 71 | +* Check that the new release is available at https://central.sonatype.com/artifact/com.github.com-github-javabdd/com.github.javabdd/versions. |
| 72 | +* Check that the new release can be found at https://oss.sonatype.org/#nexus-search;quick~javabdd. |
0 commit comments