Developer Guide¶
Creating a release¶
Java¶
One-time setup¶
Java releases are hosted on OSSRH and deployed with Maven.
You will need an account on OSSRH that has access to the TWKS project. Using the credentials from your account, create a file ~/.m2/settings.xml
:
<settings>
<servers>
<server>
<id>ossrh</id>
<username>YOURUSERNAME</username>
<password>YOURPASSWORD</password>
</server>
</servers>
</settings>
You will also need to create a GPG key and push it to a public keyserver in order to sign releases.
See the documentation linked above for more information.
Performing a release¶
There are two scripts for Java releases, which must be run in the following order on the master
branch:
cd java
./prepare_release.sh
./perform_release.sh
The scripts use standard Maven commands to prepare a release (tagging and committing the released commit GitHub), push it to OSSRH, and update all pom.xml
files to the next snapshot version.
The Java example projects are not tied directly to the TWKS parent pom.xml
. You will need to do a global find-and-replace of OLDVERSION-SNAPSHOT
with NEWVERSION-SNAPSHOT
after you have called the scripts above but before you push the commits to master
. For example, replace 1.0.0-SNAPSHOT
with 1.0.1-SNAPSHOT
.
Python¶
One-time setup¶
Python releases are hosted on the Python Package Index (PyPI). You will need to create a PyPI account.
Performing a release¶
There is a single script to perform a Python release:
cd py
./release.sh
Which uses the standard setup.py
and twine
to build source and binary releases and upload them to PyPI. The latter process will request your PyPI credentials.
After performing the release, update the version in setup.py
to the next version that will be released.