This guide is intended for JTS project maintainers, to assist them in preparing releases of the project.
-
Locate the Release Milestone for the release.
-
Apply this milestone Issues and PRs included in the release.
-
Update the Version History
-
Record significant changes (should have been done ongoing)
-
Enter date of release
-
-
Start an eclipse release process
Example review: 1.17.0-release-review page
-
Use the text from Version History to quickly write the describe the release.
-
Email review page to locationtech-pmc like this for PMC approval.
-
Email review page [email protected] when ready, to save time you can link to the PMC approval thread.
-
EMO opens a bug ticket like this to track progress
The release process takes around two weeks, and are scheduled for the 1st and 15th of each month.
-
On master:
-
Before you start check that the Maven build executes with no errors
mvn clean install
-
Set the version number in Java class:
org.locationtech.jts.JTSVersion
Change SNAPSHOT version:
private static final String RELEASE_INFO = "SNAPSHOT";
To release version:
private static final String RELEASE_INFO = "";
-
Update version number in Maven POMs (run the Maven release plugin at project root:
mvn versions:set -DnewVersion=1.18.0
-
Commit this change.
git commit -m "Release version 1.18.0" git push
-
Tag this commit, and push the tag to GitHub.
git tag -a 1.18.0 -m "Release version 1.18.0"
This is the commit that will form the GitHub release below.
-
Before you start double check that you have
gpg
installed and configured, with your public key distributed.References: Working with PGP Signatures
-
The
gpg-agent
will remember a passphrase for a short duration.To interact with the agent (so it asks you the passphrase):
gpg --use-agent --armor --detach-sign --output $output pom.xml rm pom.xml.asc ``` Reference: [Configuring GPG/PGP for Maven Releases to Sonatype on Mac OS X](https://nblair.github.io/2015/10/29/maven-gpg-sonatype/)
-
Execute the final Maven release build which will sign jars:
mvn clean install -Drelease
-
Deploy to Maven Central, using credentials in your
~/.m2/settings.xml
:<server> <id>ossrh</id> <username>jira_user</username> <password>jira_password</password> </server>
Reference: Deploying to OSSRH with Apache Maven
-
Deploy to Maven Central with the release property and profile
mvn deploy -Drelease
-
Create a JTS GitHub release
-
Navigate to https://github.com/locationtech/jts/releases and use "Draft new Release" based on your tag.
-
Copy the release notes from
JTS_Version_History.md
Example: [1.17.0](https://github.com/locationtech/jts/releases/tag/1.17.0]
-
Add release artifacts (from the
target
folders):- jts-core-1.18.0-javadoc.jar
- jts-core-1.18.0-sources.jar
- jts-core-1.18.0.jar
- jts-io-common-1.18.0-javadoc.jar
- jts-io-common-1.18.0-sources.jar
- jts-io-common-1.18.0.jar
- JTSTestBuilder.jar
-
Tip: Mark as a draft release (until Eclipse review process completes)
-
Update Javadoc on JTS Github IO:
-
Javadoc is generated by the Maven build above.
-
Update branch
gh-pages
:- clone
- branch
- copy new Javadoc
- commit
Update master to the next release version:
-
Set the version number in Java class:
org.locationtech.jts.JTSVersion
Change release version:
public static final int MAJOR = 1; public static final int MINOR = 18; public static final int PATCH = 0; private static final String RELEASE_INFO = "";
To next SNAPSHOT version:
public static final int MAJOR = 1; public static final int MINOR = 19; public static final int PATCH = 0; private static final String RELEASE_INFO = "SNAPSHOT";
-
Update version number in Maven POMs (run the Maven release plugin at project root:
mvn versions:set -DnewVersion=1.19.0-SNAPSHOT
-
Commit this change.
git commit -m "Version 1.19.0-SNAPSHOT" git push
-
Add a new version entry to the Version History
- Message to JTS Dev mail list
- Comment on Gitter channel
- Social media?
- Others?