Author the spec publication date as dct:issued - #254
Conversation
…ing today Every generated spec showed today's date in its header, whatever the branch, including /spec/main — the frozen DPROD 1.0 Beta approved by OMG. The date changed every morning. respec/template.html never set publishDate, and ReSpec runs in the reader's browser, so it defaulted to the date the page was viewed rather than the date the document was published. Deriving the date from git history would be the obvious fix and is wrong: a maintenance commit — #236 retired the ekgf.github.io URLs and touched main — would silently republish the standard under a new date. Issuing a version is a decision, so the artifact records it as one. - Add dct:issued to the DPROD ontology. DCTERMS defines it as the date of formal issuance, which is exactly this, and it sits beside owl:versionIRI so the two are bumped together. - Read it in the generator and pin publishDate. A missing triple raises rather than falling back to today's date, which is the bug being replaced. - Hard-code publishDate in the frozen 1.0 archive at 2025-01-01, matching the January 2025 date OMG records for DPROD 1.0 Beta 1. It is a static snapshot, so its date must not be derived from anything at all. - Add tests/test_spec_publish_date.py so the config cannot quietly disappear. Verified in a browser: the generated spec renders "01 June 2026" and the archive "01 January 2025"; both previously rendered the current date. Resolves: #253
Browser snapshots written while verifying the rendered publishDate. Build artifacts, not source.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…document The previous 2025-01-01 came from the OMG catalog's "Publication Date: January 2025" with an invented day. The specification document itself disagrees with the catalog: its cover reads "Date: February 2025" and it carries OMG document number ptc/25-02-01, whose YY-MM-NN form also encodes February 2025. Two independent signals in the normative artifact outweigh one catalog field, so the archive follows the document. Neither source publishes a day, so the 01 remains a convention rather than a fact; the discrepancy and that caveat are recorded in the file. Resolves: #253
|
Corrected: the 1.0 archive is now dated February 2025, not January. My first value,
The document's own cover reads: Two independent signals inside the normative artifact against one catalog metadata field, so the archive follows the document: Two caveats, recorded in the file rather than glossed over:
@jgeluk, as DPROD's initiator you may simply know which is right. If the catalog's January is the intended publication date, it is a one-line change. |
…the date Confirms the choice already made for the 1.0 archive: ptc/25-02-01 gives February 2025, and the OMG catalog's "Publication Date: January 2025" is not followed. Stated as the rule rather than as an inference, in both the archive and the ontology, so the next published version is dated from its document number without re-deriving it. The working draft has no OMG document number, so its dct:issued tracks owl:versionIRI instead. Resolves: #253
|
Rule confirmed by @jgeluk: the OMG document number is authoritative for the date. That settles it in favour of the value already committed — Recorded as the rule rather than as my inference, in two places so the next version does not require re-deriving it:
The remaining caveat stands and is noted in the file: no OMG source states a day, so the |
Fixes #253.
The bug
Every generated spec showed today's date in its header, whatever the branch — including
/spec/main, the frozen DPROD 1.0 Beta approved by OMG. The date changed every morning.respec/template.htmlnever setpublishDate, and ReSpec runs client-side, so it defaulted to the date the page was viewed rather than the date the document was published. The frozen archive had the same omission, so an immutable standard reported a new publication date on every visit.Why not the commit date
That was my first implementation and it is wrong, for the reason @jgeluk raised: a maintenance commit would silently republish the standard. #236 retired the
ekgf.github.io/dprodURLs and touchedmain— under a commit-date scheme, that alone would have restamped DPROD 1.0.Issuing a version is a decision, so the artifact records it as one:
dct:issuedis DCTERMS' "date of formal issuance", which is precisely this, and it sits besideowl:versionIRIso the two get bumped together.Changes
dprod-ontology.ttl, with a comment saying why it is authored rather than derived.publishDate. A missing triple raises rather than falling back to today — falling back is the bug being replaced, so it must not be a silent path.publishDate: "2025-01-01", matching the January 2025 date OMG records for DPROD 1.0 Beta 1. A static snapshot's date must not be derived from anything.tests/test_spec_publish_date.pyso the config cannot quietly disappear again: the ontology must carry exactly onedct:issued, the template must pinpublishDate, and the archive must pin a literal one.Verification
Rendered in a real browser, since ReSpec only computes the date client-side and inspecting the HTML source proves nothing:
Removing the triple fails the build with a message pointing at the ontology, as intended.
Noticed, not fixed
The frozen archive still advertises
Latest editor's draft: https://ekgf.github.io/dprod/— a URL retired by #235, which updatedlatestVersionin that file but leftedDraftURI. Left alone deliberately: you have just made the point that the published standard should not be edited casually, so that is your call rather than mine. Happy to fix it in a separate PR if you want it.🤖 Generated with Claude Code
https://claude.ai/code/session_01VHbek1ZojYktiTaeFqChqA