Versioning and tagging
Papra uses different versioning strategies depending on the type of package in the monorepo.
Monorepo structure
Section titled “Monorepo structure”Papra is organised as a monorepo containing multiple packages, each with its own release lifecycle:
- Library packages, such as
@papra/api-sdk,@papra/cli, and@papra/webhooks, follow Semantic Versioning. - Papra application (
@papra/app) follows year-based versioning.
Semantic versioning
Section titled “Semantic versioning”Library packages use the standard MAJOR.MINOR.PATCH format:
- MAJOR: Incompatible API changes.
- MINOR: Backwards-compatible functionality additions.
- PATCH: Backwards-compatible bug fixes.
For example, library package versions include @papra/[email protected], @papra/[email protected], and @papra/[email protected].
Application versioning
Section titled “Application versioning”Papra application uses the format YY.MINOR.PATCH:
- YY: The last two digits of the release year.
- MINOR: The next feature release within that year. Incrementing this number resets
PATCHto0. - PATCH: A maintenance release for the current minor version, including bug and security fixes.
Versions move forwards along a single release line. Papra doesn’t publish maintenance or security patches for older YY.MINOR versions, so you must upgrade to the latest version to receive fixes.
For example:
26.6.0is a feature release published in 2026.26.6.1is a maintenance release for26.6.0.26.7.0is the next feature release in 2026.27.0.0is the first release in 2027.
Git tags
Section titled “Git tags”All packages in the monorepo are tagged and GitHub-released using the format package-name@version:
@papra/[email protected]@papra/[email protected]@papra/[email protected]@papra/[email protected]Docker images
Section titled “Docker images”Docker images use the same version as the application package. The release pipeline automatically builds and pushes them to the container registries when a Git tag is published.
Use a versioned tag to deploy a specific release, or use latest to deploy the newest release:
# Specific versiondocker pull ghcr.io/papra-hq/papra:26.6.2docker pull corentinth/papra:26.6.2
# Latest versiondocker pull ghcr.io/papra-hq/papra:latestdocker pull corentinth/papra:latestRead the Docker self-hosting guide for more information about using these images.