Skip to content

Versioning of SciJava projects

Curtis Rueden edited this page Feb 13, 2014 · 3 revisions

The pom-scijava parent POM helps you to manage versions of your SciJava artifact dependencies in a consistent way.

Version properties

If two artifacts on the classpath use two different versions of the same dependency, behavior is inconsistent at best, and often broken. The SciJava POM defines version properties to facilitate consistency of dependency versions between various projects in the SciJava software stack. When possible, we advise using the relevant groupId and version properties for your dependencies rather than hardcoding them.

For example:

<dependency>
	<groupId>${scifio.groupId}</groupId>
	<artifactId>scifio</artifactId>
	<version>${scifio.version}</version>
</dependency>

In this way, you can update to the latest recommended versions of all SciJava software simply by updating to a new version of the pom-scijava parent. We make every effort to ensure that such recommended versions are compatible with, and tested against, one another.

Updating the SciJava POM

We use a Jenkins job called Bump-POM-SciJava to automatically manage the version properties in pom-scijava.

This job performs three functions:

  • It updates pom-scijava's version properties to the latest version of each component.
  • It bumps the pom-scijava version number to the next version (e.g., 1.129 to 1.130).
  • In the repository of each SciJava project, it updates the project's pom-scijava parent version number to this newest pom-scijava version.
Clone this wiki locally