Skip to content
Igor Rodchenkov edited this page Sep 12, 2018 · 2 revisions

Clone

git clone https://github.com/BioPAX/Paxtools

Deploy snapshots (to the OSSRH Maven repository)

mvn clean deploy

See http://central.sonatype.org/pages/apache-maven.html#performing-a-snapshot-deployment

Release

See: http://central.sonatype.org/pages/apache-maven.html#performing-a-release-deployment (in the Paxtools pom.xml, the release maven profile is called "sonatype-release".)

Once it's fixed, tested and we're ready to officially release Paxtools, let's follow the check-list below in order to get everything right. We use GitHub flow (or simple "feature branch") branching model. Normally, mainstream development goes in the master branch of this project. Releases and quick-fixes are made in separate temporary feature branches and then merged back to the master, and deleted.

Here is how to release manually, not using maven-release-plugin (but if you want it with maven-release-plugin, remember to clone and build your release version locally - after executing release:prepare and before release:perform, or it fails otherwise...)

Start a new branch (if there's something wrong, you'd simply either fix that or delete the branch and start over), e.g., release-X.Y.Z:

    git checkout -b release-X.Y.Z

Bump the version number - current release:

    mvn versions:set -DnewVersion=X.Y.Z
    git commit -m "For the release, updated project version to X.Y.Z"
    git tag -a vX.Y.Z -m "Release X.Y.Z"

(Ok to push, with --tags, to the remote repository if you're 100500% sure there's nothing more to fix in this version.)

Let's create the distribution vX.Y.Z (staging):

    mvn clean deploy -P sonatype-release

This should automatically create the documentation, Java API-DOC and the source JARs, and push them to the Nexus server.

Deploying the maven-generated site: stage, add to the staged site folder to the 'gh-pages' branch, commit/push there (TODO...).

    mvn site site:stage -DstagingDirectory=/path/to/paxtools-gh-pages/X.Y.Z

TODO...

Build the "fat" jar

Creating "fat" JARs (with dependencies) for distribution. For non-Mavenized projects, it is more convenient to distribute a single executable JAR file of the library with all dependency included.

      cd paxtools-console
      mvn clean install

Now that you have created target/paxtools.jar file, rename it to paxtools-X.Y.Z.jar and upload to www.biopax.org/downloads/paxtools/.

Finally

Bump the version - next development iteration:

    mvn versions:set -DnewVersion=X'.Y'.Z'-SNAPSHOT
    git commit -m "Updated project version to next X'.Y'.Z'-SNAPSHOT"

Once the release, site, distribution are done, it it time to merge the changes back to the master branch.

    git checkout master
    git merge release-X.Y.Z
    git branch -d release-X.Y.Z
    git push --tags
    git push

Releasing to the Maven Central repository

http://central.sonatype.org/pages/releasing-the-deployment.html http://central.sonatype.org/pages/working-with-pgp-signatures.html