Skip to content

Latest commit

 

History

History
99 lines (70 loc) · 3.04 KB

RELEASING.md

File metadata and controls

99 lines (70 loc) · 3.04 KB

RELEASING

I'm writing this in order to keep some notes on how to release on maven central repository.

After some time I am not releasing this project, things have changed and I forgot the intricate mechanism to deploy jars on Maven/Sonatype. Now I am trying again, and this time I will keep some notes for future releases here, hoping this will help.

RESOURCES

Some links first:

SIGNING JARS

In order to sign artifact jars, you need GnuPG.

So, from OS X:

$ sudo port selfupdate
$ sudo port -p upgrade outdated
$ sudo port install gnupg2

RELEASE PROCEDURE

This will upload release artifacts to Sonatype.

First you need to make sure all tests are passing and packages can be created without errors.

# Check that everything builds smoothly and tests are all passing
$ mvn clean install                               

# First you need to remove the `-SNAPSHOT` thing and commit on git
$ mvn versions:set -DnewVersion=1.0.10            
$ mvn versions:commit
$ git commit -am "prepare release owner 1.0.10"
$ git tag owner-1.0.10
$ git push origin owner-1.0.10:owner-1.0.10

# Deploy the signed jars on Sonatype
$ mvn clean deploy -P release-sign-artifacts

# Prepare for next development iteration
$ mvn versions:set -DnewVersion=1.0.11-SNAPSHOT
$ mvn versions:commit
$ git commit -am "prepare for next development iteration"
$ git push

That should do.

Maybe I should script this, not urgent anyway since releasing is not a daily routine.

SITE DEPLOY

The site is generated by Jekyll.

The Jekyll site has an ant file providing help target:

$ cd owner-site
$ ant 
Buildfile: [...]/owner/owner-site/build.xml

help:
     [echo] 
     [echo]         ant clean                           - cleans up the target dir
     [echo]         ant build                           - generates the website in the _site dir
     [echo]         ant publish                         - publish site to gh-pages
     [echo]         ant run-drafts                      - run jekyll serve (with '-w --drafts' options)
     [echo]         ant run                             - run jekyll serve (with '-w' option)
     [echo]         

BUILD SUCCESSFUL
Total time: 0 seconds

Run and run-drafts require Jekyll installed, and run a local version of the website on http://localhost:4000. The difference between run and run-drafts is that the blog posts in the _drafts directory of the website are shown or not: the run shows an actual preview of what's going to be shown on the website, while the run-drafts also shows additionally the drafts stored in the _drafts folder.

The publish target publishes the website on GitHub Pages, on the gh-pages branch of the project, and makes actually updates the online website. It does so by using git command line tools which is required to be properly installed.