Building
Revapi is a mavenized project so to download it and build it you merely need to call
git clone https://github.com/revapi/revapi.git cd revapi mvn install
Building the site
You can build the site from the top level project but that is mainly useful for checking locally that the site hangs nicely together and all the links work. Because Revapi itself consists of a number of independently versioned modules, the site, too, is meant to be built in a piecewise manner. Also, the site is published as part of the release process. You can build and publish the site using the commands below:
mvn site site:stage mvn scm-publish:publish-scm
The second command will publish the site to a git repo. If you want to override the defaults, you can use web.repo
system property to override the git repository the site will be published to. The value is the full Maven SCM URL and
defaults to scm:git:[email protected]:revapi/revapi.github.io.git
.
Releasing
The release is managed by the Maven’s release plugin. The top level project, revapi-all-in-one
, is not meant to be
ever released and its version is set to 0
. Instead, the individual modules are to be released independently.
Also, the module of the http://revapi.org site, revapi-site
is not meant to be released in the formal sense (its
version is, too, set to 0
) but rather merely published.
To release an individual module, the following steps are necessary:
-
Release to Maven Central’s staging repository:
cd $REVAPI_CHECKOUT/<module> mvn release:prepare -DpushChanges=false mvn release:perform -DlocalCheckout=true
The
-D
properties toprepare
andperform
goals are not mandatory but I personally prefer them so that the release can be thoroughly checked before its made public. -
Go to http://oss.sonatype.org, log in and check that the artifacts are ready to be published.
-
From the root of the checkout, run this command to use the latest snapshots of the revapi modules:
mvn validate -Pversion-snapshots
and commit the changes if any have been made (depends on what the next development versions have been set during the release).
-
On the command line push the changes to the github repo (assuming
origin
is the remote of the main revapi’s repository):git push origin --follow-tags
-
Release the artifacts from http://oss.sonatype.org.
-
Many of the modules contain parts of the site specific to them. These are published as part of the release process automatically. To make the staged site changes public:
cd $REVAPI_GITHUB_IO_CHECKOUT #this is the repo on https://github.com/revapi/revapi.github.io git checkout master git pull origin master #assumes that the origin remote points to the github repo git fetch --all git merge origin/staging git push origin