Versioning Policy — Pageworks
How the app's four-part version number is used to signal what changed and how a fix reaches an already-released tenant.
Version scheme
BC apps carry a four-part version, Major.Minor.Build.Revision (app.json version,
currently 1.0.0.0). Public API stability — what a dependency app can rely on not
breaking — is tied exclusively to the Major component; see
API stability promise for exactly what that promise covers.
Pre-1.0 (historical)
Prior to the first AppSource-listed build, the app shipped a 0.x line. Major = 0
carried no stability promise at all — any part of the app, including the surface that
later became public, could change between 0.x builds without notice.
There is no retroactive reclassification of those prior 0.x versions (per the spec's
Assumptions) — a 0.x build was never renumbered or backfilled into the 1.0 stability
story after the fact.
1.0 and later
1.0.0.0 is the first AppSource-listed build. From this point on, the full stability
guarantee in API stability promise is in force for the eight
items listed there: within the current Major version, none of them will have a breaking
change made without going through the deprecation/notice process described there, and
any breaking change ships only as the next Major bump.
Release classes
- Major (
X.0.0.0) — a breaking change to the public API surface (as defined inApiStabilityPromise.md). Requires the deprecation/notice process documented there before the breaking change can ship; a major bump is the conclusion of that process, not a way to skip it. - Minor (
x.Y.0.0) — additive, backward-compatible changes: new features, or new public members (new procedures, new overloads, new objects) that do not break any existing consumer of the current major version. - Hotfix (
x.y.Z.R) — a defect fix that neither adds nor breaks public surface. Increment Build (Z); Revision (R) is reserved for rebuilds/repackaging of an already-shipped Build (e.g. a resubmission with no source change).
How a hotfix reaches already-released tenants
- SaaS tenants: AppSource auto-update delivers the latest Build within the tenant's current Major.Minor automatically — no action required from the customer.
- On-premises / sandbox consumers: receive the rebuilt
.appmanually (there is no auto-update channel outside AppSource-managed SaaS tenants).
A hotfix never requires the customer to take a major or minor upgrade to receive it — that is the entire point of keeping Build reserved for fixes only.
Cadence and ownership
The version bump that ships a given feature or fix follows the release classes above — the shipped version number is a reliable, checkable signal of what kind of change it contains: no feature ships under a hotfix Build, no breaking change ships under a Minor. Cutting a release is owned by the product owner (Stefan Maron Consulting).