This will only be of interest to the project’s maintainers!

This process requires that you have created a file called, for example, private-settings.xml which contains authentication credentials for pushing to the distribution repository. Example:

<?xml version="1.0"?>
<settings>
  <servers>
    <server>
      <id>oryx.repo</id>
      <username>snapshots</username>
      <password>...</password>
    </server>
    <server>
      <id>oryx.snapshots.repo</id>
      <username>snapshots</username>
      <password>...</password>
    </server>
  </servers>
</settings>

It also requires that you have the GPG key that is written into the project POM, and that you know its passphrase.

Releasing Maven Artifacts

  1. Clone master from the repo: git clone https://github.com/OryxProject/oryx.git

  2. If this is a fresh checkout, optionally configure your user name and email for use with git commits, if not already set globally: git config user.name "Your Name" and git config user.email "Your Email"

  3. Double-check that tests pass and packaging succeeds first: mvn clean package

  4. Prepare the release. Consider skipping the (lengthy) tests in these steps with -DskipTests if they’ve been run already. To avoid answering the same question many times, the release and new development versions can be supplied on the command line: mvn -Darguments="-DskipTests" -DreleaseVersion=... -DdevelopmentVersion=... release:prepare

  5. Now perform the release. This will require the gpg passphrase for the GPG signing key specified in pom.xml: mvn -s private-settings.xml -Darguments="-DskipTests -Dgpg.passphrase=..." release:perform

Releasing Binaries

  1. To get the latest changes and tags post-build, git pull --tags
  2. Checkout the build tag for this build with git checkout -f tags/...
  3. mvn -DskipTests clean package
  4. Assembled binaries appear at oryx-serving/target/oryx-serving-....jar and likewise for speed and batch; also find the compiled example JAR at app/example/target/example-...jar
  5. Navigate to the Github release that was just created, at https://github.com/OryxProject/oryx/releases/tag/...
  6. Edit the title to something more meaningful like Oryx x.y.z
  7. Paste brief release notes into the description, including a link to resolved issues for the associated milestone, usually of the form https://github.com/OryxProject/oryx/issues?q=milestone%3A...+is%3Aclosed
  8. Attach the Batch, Speed, and Serving layer binaries, and scripts in deploy/bin/, and save the updated release.

Updating the Site

  1. Checkout the release tag if not already: git checkout -f tags/...
  2. mvn -DskipTests clean install
  3. mvn site site:stage
  4. git checkout master
  5. mvn site:deploy
  6. From docs/, delete app/, framework/, deploy/
  7. Check diff with git status to confirm it’s suitable
  8. git commit -m "Update site for ..."
  9. git push origin master
  10. In a minute, check your work at http://oryx.io/

Back to top

Reflow Maven skin by Andrius Velykis.