Skip to main content

Release engineering

Versioning scheme and component lifecycle

Versions follow one of two schemes:

  • major.minor.revision-qualifier
  • major.minor-qualifier

where the qualifier is -SNAPSHOT for everyday development builds, or -RCx for a release candidate cut at the start of a QA cycle. A release is cut at the end of that cycle, once the candidate is considered stable. Components version independently — connie, pamela, gina, diana and the rest each carry their own version — and a buildconfig (in openflexo-buildplugin) ties a compatible set of them together under one platform version, such as 2.99.

Building and publishing

Builds run entirely on Gradle, through Jenkins jobs, one family of jobs per repository: continuous/SNAPSHOT builds triggered on a push, manual release-candidate builds, and manual release builds. Each publishes to the Openflexo Artifactory (maven.openflexo.org); a release candidate or release also lands on the download server. Because components version independently, a release wave builds them in dependency order — the platform-wide packages (the editors, openflexo-packaging) come last, once everything they depend on has published.

This page intentionally stops here rather than listing exact job names or a click-by-click procedure: both have drifted before and are maintained as living, checked state rather than prose — see the CI/CD job listing on Jenkins itself for what exists today.