Open tobie opened 9 years ago
Mainly: rendered versions of ReSpec drafts.
You mean with something like https://github.com/w3c/spec-generator?
You mean with something like https://github.com/w3c/spec-generator?
Didn't know this was a thing. It's this deployed somewhere (I'd use it).
I mean something something like this but storing a daily copy of the changes.
Yeah, I think that'd be a good idea. It's what I have in mind under the diffs thing. Echidna is likely to serve that purpose in fact.
The spec-gen is deployed but it is only usable from inside the W3C server farm at this point. It hasn't been security-checked and all that, and some of what it does could be troublesome. That said, nothing prevents you from running it in your project.
We're also planning to make it usable as a library. Once that's done Specberus will be able to check ReSpec documents directly. (Echidna can already process them, which is kind of cool.)
See also: https://drafts.csswg.org/ , https://drafts.fxtf.org/ , and https://drafts.css-houdini.org/ (source at: https://hg.csswg.org/dev/drafts/ ).
This system is currently based around Bikeshed, though can be expanded to other generators. It camps on a local hg repository of the the drafts (and can handle multiple repositories, currently serving csswg, fxtf, and css-houdini), syncs the repositories bi-directionally with multiple mirrors (git and hg, local and remote), and generates modified specs on pushes to any mirror.
If a generated spec is checked into the repository it simply serves that version instead.
All generated specs are maintained in a local cache by changeset ID, and previous versions are served via a dated URL (along with an index of all tracked pushes).
If the generator produces error or warning output, that output is emailed to the committer(s) (and cc'd to system admins). Generator output is also available online and current output status is reflected via a status icon automatically injected into the served specs (updated in realtime via long-running XHR both on the index page and within the generated specs).
If the generator fails to produce output (due to fatal error), the last successfully generated (or committed) version of the spec is served instead until the error is resolved.
It also coordinates with the spec anchor DB (which has long since been factored from Shepherd into a stand-alone module). It triggers spec DB updates when specs are updated, and then, in turn, re-generates all specs when the DB is updated to keep cross-references up to date.
It also gets notified when the Bikeshed source is updated (via GitHub WebHook) and re-generates all specs in response to a Bikeshed update (and sends error/warning output email to the Bikeshed maintainers).
What do you mean by that?