Publishing and Versioning
Universal Manifest is designed to be adopted by external systems. That requires stable, HTTPS-hosted, versioned URLs for core artifacts.
The key principle:
- immutable, versioned artifacts under
/ns/universal-manifest/vX.Y/
What must be publicly stable
Section titled “What must be publicly stable”At minimum, per version:
- JSON-LD context:
/ns/universal-manifest/vX.Y/schema.jsonld - JSON Schema:
/ns/universal-manifest/vX.Y/schema.json
Example (v0.1):
https://universalmanifest.net/ns/universal-manifest/v0.1/schema.jsonldhttps://universalmanifest.net/ns/universal-manifest/v0.1/schema.json
URL layout rules
Section titled “URL layout rules”Immutable versioned paths (required)
Section titled “Immutable versioned paths (required)”Once published, versioned artifacts MUST NOT change in-place.
If a change is needed:
- create a new version folder (e.g.
v0.1→v0.2) - publish new versioned URLs
Optional latest/ alias (non-normative)
Section titled “Optional latest/ alias (non-normative)”If a latest/ alias exists, it MUST:
- redirect to a concrete version (301/302), and
- MUST NOT serve mutable content directly
Required HTTP headers
Section titled “Required HTTP headers”Content types
Section titled “Content types”.jsonldSHOULD beapplication/ld+json.jsonSHOULD beapplication/schema+json(orapplication/json)
To support browser tooling:
Access-Control-Allow-Origin: *(or a permissive allowlist)
Caching
Section titled “Caching”For immutable versioned paths:
Cache-Control: public, max-age=31536000, immutable
For latest/ redirects:
- short cache (or no-store) so it can change when a new version ships
v0.x versioning policy
Section titled “v0.x versioning policy”During v0.x:
- breaking changes are allowed, but MUST be reflected by a new version folder (
v0.1→v0.2) - include a short migration note in the newer version docs (when relevant)
Adoption surface beyond schemas
Section titled “Adoption surface beyond schemas”External implementers typically adopt from:
- fixtures (valid + invalid)
- conformance checklists
- well-known names registry (non-normative guidance)
This is why the harness and fixtures are published on this site:
/harness/fixtures/…
- Release procedure: Publishing → Releasing
- Domain split and responsibilities: Publishing → Domain Split