<commit_before>== 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:git@github.<EMAIL>: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 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.

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

. 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

<commit_msg>Update the building guide to include the way to reset the inter-dependencies to latest snapshots after the release.<commit_after>== 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:git@github.com: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 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.

. 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


{'fraction_non_alphanumeric': 0.05554547104737702, 'fraction_numerical': 0.0007260845888546016, 'mean_word_length': 4.139925373134329, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 1, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '359418', 'n_tokens_mistral': 1486, 'n_tokens_neox': 1434, 'n_words': 824}