Versioning & releases

How versions are numbered, where release notes live, and how a release is cut.

Table of contents

  1. Versioning scheme
  2. Release notes
  3. How a release is cut
  4. Updating the plugin registry (Check for plugins)
  5. Finding a specific version

Versioning scheme

Protégé MCP aims to follow Semantic Versioning: MAJOR.MINOR.PATCH.

Bump When Example
PATCH Bug fixes and behaviour-preserving improvements. 0.3.2 → 0.3.3
MINOR New, backward-compatible capability (typically new tools or a new subsystem). 0.3.0 added the Ontology Assistant; 0.3.2 added SPARQL.
MAJOR Backward-incompatible changes.

The project is pre-1.0, so a MINOR release can carry sizeable new features (e.g. the whole Ontology Assistant landed in 0.3.0). The tool count is called out in each release’s notes.

The Maven project version in pom.xml is the single source of truth for the current version, and the release tag must match it (see below).

Release notes

All notable changes are recorded in CHANGELOG.md, following the Keep a Changelog format. The same content is mirrored on this site’s Changelog page.

Each release’s ## [x.y.z] section is published verbatim as the body of its GitHub release — so the changelog, the GitHub release notes, and this site all say the same thing.

How a release is cut

Releases are automated by the Release workflow. Pushing a tag of the form vX.Y.Z triggers it:

  1. Checkout the tag.
  2. Verify the tag matches the Maven version — the tag must equal v + pom.xml’s <version>, or the workflow fails. This guarantees the tag, the jar name, and the code all agree.
  3. Build and test with mvn -B clean package on JDK 17.
  4. Extract the release notes — the ## [X.Y.Z] section of CHANGELOG.md becomes the release body (falling back to auto-generated notes if that section is missing).
  5. Publish the GitHub release titled protege-mcp vX.Y.Z, attaching protege-mcp-X.Y.Z.jar.

You can also run it manually from the Actions tab (workflow_dispatch) with a tag input.

Updating the plugin registry (Check for plugins)

For Protégé’s File ▸ Check for plugins to offer an update, bump update.properties:

  • version must be a valid OSGi version (major.minor.micro[.qualifier]) and strictly greater than the installed bundle version, or Protégé will not offer it.
  • download must point at the new release’s jar asset.

OSGi orders an empty qualifier before a non-empty one, so 0.1.0 < 0.1.0.SNAPSHOT. To update over an installed dev/SNAPSHOT build, bump the micro/minor rather than relying on a qualifier.

Finding a specific version

  • Releases — every version’s notes and jar.
  • Latest — the current release.
  • Changelog — all notes on one page.

Protégé MCP is licensed under the BSD 2-Clause License. Protégé is a trademark of Stanford University.

This site uses Just the Docs, a documentation theme for Jekyll.