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:

  1. Release to Maven Central’s staging repository:

    cd $REVAPI_CHECKOUT/<module>
    mvn release:prepare -DpushChanges=false
    mvn release:perform -DlocalCheckout=true

    The -D properties to prepare and perform goals are not mandatory but I personally prefer them so that the release can be thoroughly checked before its made public.

  2. Go to http://oss.sonatype.org, log in and check that the artifacts are ready to be published.

  3. 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).

  4. 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
  5. Release the artifacts from http://oss.sonatype.org.

  6. 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