Skip to content

Stop the spec header advertising URLs that 404 - #256

Merged
jgeluk merged 1 commit into
developfrom
issue/255-spec-header-urls
Aug 21, 2026
Merged

Stop the spec header advertising URLs that 404#256
jgeluk merged 1 commit into
developfrom
issue/255-spec-header-urls

Conversation

@jgeluk

@jgeluk jgeluk commented Aug 21, 2026

Copy link
Copy Markdown
Member

Fixes #255.

Checked all 103 links in the rendered spec. Four distinct causes, three of them in the header — which ReSpec builds client-side, so none of it is visible without loading the page in a browser.

Header

field before after
latestVersion .../DPROD/dprod/404, the vocabulary namespace, not a document https://www.omg.org/spec/DPROD/ — OMG catalog
edDraftURI https://ekgf.org/spec/{{ branch }}/404, no /dprod, unslugified https://ekgf.org/dprod/spec/develop/
thisVersion (absent) https://ekgf.org/dprod/spec/<slug>/

Per your steer, "Latest editor's draft" points at the canonical develop draft, so a preview reader is sent to mainline; the branch's own URL moves to thisVersion, the field that actually means it.

Rendered on this branch:

This version:              https://ekgf.org/dprod/spec/issue-255-spec-header-urls/
Latest published version:  https://www.omg.org/spec/DPROD/
Latest editor's draft:     https://ekgf.org/dprod/spec/develop/

The archive's 404 appears nowhere in the file

site/public/spec/archive/1.0/index.html set no edDraftURI at all, so ReSpec inferred one from the github config — https://ekgf.github.io/dprod/, the Pages site retired by #235. Every reader of the published standard met a dead link that grepping the file could never have found. Now set explicitly, and latestVersion points at the OMG catalog instead of at itself.

Rendered: 01 February 2025 · This version: /dprod/spec/main/ · Latest published: omg.org/spec/DPROD/ · Latest editor's draft: /dprod/spec/develop/

Two smaller defects

  • href="https://www.omg.org/legal/tm_list.htm." — the sentence's full stop swallowed into the URL. In both documents.
  • Two prose links to an absolute dprod.ttl that 404s, where the "Download as RDF" entries beside them already use a relative path that resolves per version. Now relative.

Also: the namespace IRI renders as <code> rather than a dead link, matching the namespace table further down which already did; and [[dprod]] cites the OMG catalog.

Verification

All 103 links re-checked after the fix. The only remaining non-200 is https://ekgf.org/dprod/spec/issue-255-spec-header-urls/ — this branch's own thisVersion, 404 purely because the branch is not deployed yet. It resolves once this PR's preview is up. (LinkedIn returns 999 to bots; not a failure.)

tests/test_spec_header_urls.py locks it in. Writing it immediately caught the trailing full stop in the archive, which my manual pass had missed — I had only fixed the template.

Not fixable here

https://www.omg.org/spec/DPROD/dprod/ and .../dprod.ttl do not resolve at OMG at all — the same gap as #232, where dprod-context.jsonld returns 404. The artifacts are not published at their OMG URLs. This PR routes around them; it cannot fix them. Worth chasing with OMG separately, since a vocabulary namespace that does not dereference is a real defect in a linked-data standard.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VHbek1ZojYktiTaeFqChqA

Checking all 103 links in the rendered spec found four distinct causes, three
of them in the header ReSpec builds client-side, where none of it is visible
without loading the page in a browser.

- edDraftURI was https://ekgf.org/spec/{branch}/ — missing the /dprod
  basePath, and with the branch name unslugified, so any branch containing a
  slash could never resolve. It now points at the one canonical draft,
  /dprod/spec/develop/, so a preview reader is sent to mainline.
- The per-branch URL moves to thisVersion, which is the field that means it,
  and uses the slug the site's own routing uses.
- latestVersion was the vocabulary namespace IRI, which identifies the DPROD
  terms rather than a document and does not dereference. It is now the OMG
  catalog entry, which always resolves to the newest published version.
- The frozen 1.0 archive set no edDraftURI at all, so ReSpec inferred one from
  the github config: the GitHub Pages site retired by #235. Every reader of the
  published standard met a 404 that appears nowhere in the file. Its
  latestVersion also pointed at itself, which is what thisVersion means.

Two smaller defects, both in the template and the archive: an href that
swallowed the sentence's full stop (tm_list.htm.), and prose links to an
absolute dprod.ttl that 404s where the "Download as RDF" entries beside them
already use a relative path that resolves per version.

The namespace IRI is now rendered as code rather than as a link, matching the
namespace table further down, and the [[dprod]] bibliography entry cites the
OMG catalog.

tests/test_spec_header_urls.py locks all of it in. Writing it immediately
caught the trailing full stop in the archive, which the manual pass missed.

Not fixable here: the DPROD namespace IRI and dprod.ttl do not resolve at OMG
at all, the same gap as #232. This routes around them.

Resolves: #255
@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dprod Ready Ready Preview Aug 21, 2026 12:59pm

@jgeluk
jgeluk merged commit 1e77efc into develop Aug 21, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Spec header advertises URLs that 404, including in the frozen 1.0 archive

1 participant