# Versioning Policy

UnifiedFiler uses separate version fields for product release management and internal development history.

## Version fields

| Field | Meaning | Example |
|---|---|---|
| `productVersion` / `version` | Public product release version shown to Hosts and users | `1.0.0` |
| `developmentVersion` | Internal development milestone/build line used during implementation | `dev-2.1.0` |
| `developmentMilestone` | Numeric milestone that produced the product release | `2.1.0` |
| `apiVersion` | Stable Host-facing Control/API compatibility contract | `1.0` |
| `contractVersion` | Public API contract version for integration checks | `1.0` |
| `backendApiContractVersion` | Backend adapter/API compatibility contract | `1.0` |
| `buildVersion` | Build/package identifier | `20260610.001` |

## Current release mapping

```text
Product release:      UnifiedFiler v1.0.0
Based on development: dev-2.1.0
Public API contract:  1.0
Backend API contract: 1.0
Build:                20260610.001
```

The earlier `v1.9.x`, `v2.0.0`, and `v2.1.0` labels in historical documents are development milestones, not public product versions.

## Future release examples

```text
Product v1.0.1  <- bug-fix release based on dev-2.1.x
Product v1.1.0  <- feature release based on dev-2.2.x or later
Product v2.0.0  <- future product major release with intentional compatibility change
```

Development may continue with internal milestones such as `dev-2.2.0`, while product releases remain on the public product version line.
