Publication overview
What happens when an OASIS TC publishes a specification. From a TC editor's point of view.
1.The shape of a publication¶
flowchart LR
classDef input fill:#15446c,stroke:#0d2c47,color:#ffffff,stroke-width:2px;
classDef pipeline fill:#f0f6fb,stroke:#2f7bb6,color:#14202c,stroke-width:1.5px;
classDef output fill:#f7f9fb,stroke:#c8d2dd,color:#14202c,stroke-width:1.5px;
MD["Spec source
Markdown, Word,
DocBook, LaTeX, ...
+ images + schemas"]:::input
PIPE["Publication pipeline
quality gates
HTML + PDF render
ZIP bundle"]:::pipeline
OUT["Published artifacts
docs.oasis-open.org/
<tc-name>/<spec>/<version>/<stage>/"]:::output
MD -->|TC editor commits| PIPE
PIPE -->|gates pass| OUT
PIPE -.->|gates fail
build stops| MD
The TC owns the source. The pipeline owns the rendering. The published artifacts land at canonical, versioned URLs.
2.What you commit¶
| File | Required | Notes |
|---|---|---|
<spec-name>.md |
yes | Authoritative source. Pandoc-flavoured Markdown |
images/*.svg, images/*.png, etc. |
as needed | Referenced from the MD with relative paths |
schema/*.json, *.xsd, etc. |
if your spec declares machine-readable artifacts | Travel with the prose under the same publication directory |
| Front matter at the top of the MD | optional | Title and optional publication-config overrides. See publication-config |
You do not commit the generated HTML, PDF, or ZIP. The pipeline writes those.
Authoring formats. The bar is the output, not the input: every publication lands as conformant HTML and PDF (with the authoritative source preserved alongside) at the canonical URLs. How a TC produces them is the TC's business. TCs author in whatever format serves their work, and the published corpus reflects that: Markdown (CSAF, OpenEoX, DPS, NIEMOpen), Word (KMIP, PKCS#11), DocBook/XML (UBL, Electronic Court Filing — where the XML itself is often the authoritative artifact), LaTeX (Virtio), and others. The table above describes the Markdown case, where this pipeline does the rendering. For every other format the shape is the same request with a different renderer:
- The authoritative source, named
<spec-name>-vX.Y-<stage>.<ext>, reaches TC Administration through the TC's document repository (Higher Logic), email, or a release from the TC's own repository. (OASIS keeps internal publication repos as its own bookkeeping; that is an implementation detail on our side, not part of the TC's workflow.) - Renderings come from whoever owns the toolchain for that format: this pipeline for Markdown; TC Administration with Microsoft Word for Word sources, matching the TC's published precedent; the TC's own toolchain for DocBook, LaTeX, and other formats, delivered alongside the source.
- The same acceptance gate applies to all of them: pub-check auto-detects the Markdown and Word tracks in full, and applies the format-agnostic checks (stage naming, versioning, case, hygiene, links, packaging) to everything else.
2.1Which format am I publishing from?¶
| Your authoritative source | Who renders | How it reaches TC Administration | Gate coverage |
|---|---|---|---|
Markdown (.md) |
This pipeline (pandoc toolchain) | Release zip or drop from the TC's own source repo | Full (Markdown track) |
Word (.docx) |
TC Administration, with Microsoft Word | TC document repository (Higher Logic) or email | Full (Word track: render fidelity, image fallbacks, packaged assets) |
| DocBook / XML | The TC's own toolchain; XML is often the authoritative artifact | Package with source + renderings | Format-agnostic checks (naming, versioning, links, hygiene, packaging) |
| LaTeX and others | The TC's own toolchain | Package with source + renderings | Format-agnostic checks |
A publication starts with the TC's request to TC Administration, and the package may arrive in whatever form the TC produces: fully rendered final artifacts, or authoritative source for the pipeline (or staff) to render. Whatever the intake form, the final published form must conform to the same rules — stage naming, template, quality gates — whatever the authoring format. That conformance is what pub-check checks.
3.What the pipeline does¶
For each publication run:
- Pre-render checks. The source is read, structural issues are flagged, the build stops before rendering if anything is broken. See publication quality for what gets caught.
- Render. Markdown becomes HTML via pandoc. The HTML becomes PDF. Local images are embedded into the HTML so the rendered HTML is a single self-standing file.
- Post-render assertions. The generated PDF is inspected for known regression classes (duplicate cover title, leaked build-runner paths).
- Bundle. The HTML, PDF, source MD, and any companion artifacts are packaged into a ZIP under the same publication directory.
- Publish. All files land on docs.oasis-open.org under the canonical path, with CDN caches refreshed.
If any gate fails, the run stops and the offending check is reported back to the TC. Nothing partially-published reaches the public URL.
4.What lands at docs.oasis-open.org¶
For a Committee Specification Draft 01 of <spec-name> in version 1.0 of <tc-name>, the canonical URLs are:
docs.oasis-open.org/<tc-name>/<spec-name>/v1.0/csd01/
├── <spec-name>-v1.0-csd01.md (authoritative)
├── <spec-name>-v1.0-csd01.html (rendering)
├── <spec-name>-v1.0-csd01.pdf (rendering)
├── <spec-name>-v1.0-csd01.zip (bundle)
├── images/... (referenced assets)
└── schema/... (companion artifacts, if declared)
docs.oasis-open.org/<tc-name>/<spec-name>/v1.0/
├── <spec-name>-v1.0.md (latest-stage copy, persistent)
├── <spec-name>-v1.0.html
└── <spec-name>-v1.0.pdf
The stage-specific path (csd01/, cs01/, os/, etc.) is the citable, immutable reference for that stage. The latest-stage path is a persistent shortcut that always points at whatever the latest published stage is.
5.What the TC controls¶
The TC owns four kinds of decisions:
| Decision | Where |
|---|---|
| What the specification says | The Markdown source |
| Companion artifacts (schemas, examples) | The publication directory |
| Per-spec publication preferences (image inlining caps, lint policies) | Front matter on the source MD. See publication-config |
| TC-wide publication defaults | A .oasis-publish.yml at the TC repo root. See publication-config |
The TC does not need to maintain the rendering toolchain, the pandoc filters, the wkhtmltopdf configuration, or the deployment pipeline. Those are operated by OASIS and refined behind the contract.
6.The contract¶
The pipeline guarantees, for every publication run:
- The source Markdown is preserved verbatim at the canonical URL alongside the renderings
- The HTML and PDF are byte-deterministic from the same source on the same toolchain version
- Quality gates catch known regression classes before publication, not after
- Published artifacts are immutable at their stage-specific URL; corrections require a new stage
- Cache layers are refreshed on every publication so the public URL serves the new version within minutes
The pipeline does not promise:
- Editorial review of spec content (that's the TC's responsibility, and OASIS Open's editorial process)
- Visual perfection of every edge case in author-supplied Markdown (the TC editor and the OASIS publication operator do the QA pass before final stage publication)
- Forward compatibility of the source MD with future renderer changes (major-version renderer changes are managed by the OASIS publication operator with deliberate migration)
7.Stage progression¶
A specification typically moves through these public publication stages over its lifecycle. The TC decides which stages it wants and when.
| Stage code | Stage name | What it means |
|---|---|---|
wd## |
Working Draft | TC internal iteration; usually not published to docs.oasis-open.org |
csd## |
Committee Specification Draft | TC-approved draft; public reviews run at this stage name |
cs## |
Committee Specification | Special Majority Vote passed |
os |
OASIS Standard | Call for Consent passed (no revision digits) |
errata## |
Approved Errata | Post-OS corrections |
cnd##, cn## |
Committee Note track | Non-standards track equivalents |
psd##, ps##, pnd##, pn## |
Project Specification / Note track | Open Project equivalents |
Each stage publication is its own immutable artifact at its own URL.
Retired stage tokens. csprd, cnprd, and cos were removed by Naming Directives v1.7 (2 January 2024). A document entering public review keeps its stage name: a CSD in review is still csd##, never csprd##. pub-check blocks the retired tokens at intake for every authoring format.
This site and the TC Handbook. The TC Handbook governs the process rules — review lengths, ballots, what each stage approval requires; this site documents the publication mechanics that carry those rules out. Where they appear to disagree, the Handbook and the TC Process win. Stage-specific rules: Public Review and Approving an OASIS Standard.
8.Where to next¶
- Getting started: onboarding a new TC for publication
- Publication configuration: the two-layer YAML config the TC can use to tune publication behaviour
- Publication quality: common publication issues and how the pipeline catches them
- TC Handbook: the process rules this site's mechanics serve
- Specification guidelines: the naming directives (v1.7 current) and naming guidelines that bind stage tokens, filenames, and URIs
- pub-check: the TC-side publication gate, both tracks — run it in your own build before the vote; TC Administration re-runs it identically at intake
