Stop the spec header advertising URLs that 404 - #256
Merged
Conversation
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
jgeluk
requested review from
FroehlichMarcel,
joshcornejo,
matthiasautrata,
rivettp and
tonyseale
as code owners
August 21, 2026 12:58
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
latestVersion.../DPROD/dprod/— 404, the vocabulary namespace, not a documenthttps://www.omg.org/spec/DPROD/— OMG catalogedDraftURIhttps://ekgf.org/spec/{{ branch }}/— 404, no/dprod, unslugifiedhttps://ekgf.org/dprod/spec/develop/thisVersionhttps://ekgf.org/dprod/spec/<slug>/Per your steer, "Latest editor's draft" points at the canonical
developdraft, so a preview reader is sent to mainline; the branch's own URL moves tothisVersion, the field that actually means it.Rendered on this branch:
The archive's 404 appears nowhere in the file
site/public/spec/archive/1.0/index.htmlset noedDraftURIat all, so ReSpec inferred one from thegithubconfig —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, andlatestVersionpoints 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.dprod.ttlthat 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 ownthisVersion, 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.pylocks 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.ttldo not resolve at OMG at all — the same gap as #232, wheredprod-context.jsonldreturns 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