Portal Community

SemVer Format

Both package versions and artifact versions follow the SemVer 2.0.0 specification: major.minor.patch

2.1.0
^  ^  ^
|  |  +-- Patch: bug fixes, no new features, backward compatible
|  +----- Minor: new features, backward compatible
+-------- Major: breaking changes

Package-Level Versioning

The package version (in manifest.version) describes changes to the package as a whole. It is set by the package author at export time.

Major Version Bump — Breaking Changes

A major version bump signals that the package may not be backward compatible. Examples of breaking changes:

Major Version Imports When importing a package with a major version higher than the previously installed version, the import engine displays a breaking-change warning and requires explicit administrator confirmation. In automated pipelines, pass "allowMajorVersionUpgrade": true in ImportOptions.

Minor Version Bump — Additive Changes

A minor version bump adds new capabilities without breaking existing consumers:

Patch Version Bump — Bug Fixes

A patch version bump fixes defects without adding functionality:

Artifact-Level Versioning

Each artifact has its own version (in manifest.artifacts[].version). This tracks the individual artifact's evolution independently of the package version. An artifact version is set when the artifact is published in its source tenant.

When a package is re-exported with updated artifacts, the affected artifacts' versions should be bumped. The package version should also be bumped to reflect that the bundle's contents changed.

ScenarioArtifact VersionPackage Version
Form field label text correctedPatch: 1.0.01.0.1Patch: 2.1.02.1.1
New optional field added to formMinor: 1.0.01.1.0Minor: 2.1.02.2.0
Required field removed from formMajor: 1.0.02.0.0Major: 2.1.03.0.0

Version Uniqueness

Within a tenant, the combination of (packageName, version) must be unique. You cannot export two packages with the same name and version. To replace an existing package, you must increment the version.

On the marketplace (Phase 3), version uniqueness is enforced globally per publisher: a publisher cannot publish the same package name + version twice.

Pre-Release and Build Metadata

InstallHub supports SemVer pre-release identifiers for staging and testing purposes:

2.1.0-rc.1    // Release candidate
2.1.0-beta.3  // Beta release
2.1.0-alpha.1 // Alpha release

Pre-release packages can be imported normally but are excluded from automatic update notifications on the marketplace. They are not eligible for Certified trust level.

Version 0.x.x — Initial Development Packages versioned 0.x.x are considered unstable. Any version bump (including minor and patch) may include breaking changes. The import engine treats all 0.x.x packages as potentially breaking and always displays a warning.

Changelog Recommendation

For marketplace packages, it is strongly recommended to include a changelog in the README.md describing what changed in each version. This helps consumers make informed decisions about upgrades.

## Changelog

### 2.1.0 (2026-05-25)
- Added notification step after approval
- Added escalation path for overdue approvals

### 2.0.0 (2026-03-10)
- BREAKING: Removed legacy single-approver mode
- BREAKING: EmployeeForm now requires department field
- Added multi-approver support

### 1.3.0 (2025-11-20)
- Added optional notes field to EmployeeForm