Skip to content
Ralph Soika edited this page May 29, 2020 · 1 revision

Versioning

The Imixs-BPMN Project is managed by a maven parent project. The following section gives an overview how versioning is handled in this project. In general we are using "Semantic Versioning" from Tom Preston-Werner.

The Release Number

The release Number is separated into three digits.

  2. 0. 1 
  |  |  |-- patch level
  |  |-------- minor version 
  |-------------- major version

Major Version

The major version number indicates the general main release of Imixs-Workflow. This number did not change very often. Typical this number will be increase when a general redesign of the Imixs-Workflow-API is done or a fundamental new technology or framework is used like switching to Java 8. Often a new Major version implicates the need of a migration from older versions. You can not mix artifacts or components with different major versions!

Minor Version

The minor version number is used for new features or enhancements. For example adding a new controller or a service EJB can lead to an increase of the minor version number. As we use Maven as the general build and configuration framework, minor versions are typical reflected in dependencies. So for example the Imixs-Workflow-Engine depends on the Imixs-Workflow-Core API with the same minor version. You should not mix artifacts or components with different major versions.

Patch Level

The last digit is used for the Patch Level of a release. It indicates bug fixes made after a minor or major release. It is strongly recommended to always use the latest patch level version!

The Release Process

All releases of components and applications from this project are build with the configuration and build framework Maven using the tycho-maven-plugin.

During development we work with snapshot staging concept from maven like in the Imixs Workflow main project. A new release is created manually because several settings need to be changed for a new release, so the maven release command can not be used here.

Create a new release

To create a new release follow these steps:

  1. Switch into the master branch
  2. Verify that your current development sources are up to date
  3. Run tests on the master branch. Run all the tests. If one or more fail, fix them first.
  4. Create a Tag Version from the latest version using the git tag command
  5. Update the feature version number in the feature.xml to the next release number
  6. Update the Bundle-Version in the MANIFEST.MF of the plugin module to the next releasenumber
  7. Update the pom version number for the parent pom and all module poms.

Updatesite

To generate the artifacts for the eclipse update site call:

mvn clean install

During the Maven build process the artifacts for the Eclipse Update site are generated automatically. The artifacts are located in the target folder /repository/ in the maven module org.imixs.exlipse.bpmn2.updatesite.