Skip to content

Commit

Permalink
Add doctypes.kdl, in preparation for the Bikeshed update.
Browse files Browse the repository at this point in the history
  • Loading branch information
tabatkins committed Aug 23, 2024
1 parent eed208d commit 24d388d
Show file tree
Hide file tree
Showing 2 changed files with 347 additions and 1 deletion.
345 changes: 345 additions & 0 deletions boilerplate/doctypes.kdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,345 @@
/*
This is a KDL document listing all the Org/Group/Status "metadata" values.
(Not all Group values must be listed here;
bespoke groups are allowed, and simply must namespace their `Status`.)

`status` nodes can appear at the top level, listing statuses usable by anyone.
A status "contains" two attributes, listing their short name (what you write in the status "metadata")
and their long name (what gets written into specs; the `[LONGSTATUS]` macro).
They can have a `requires` child, with attributes listing the names of additional metadata
required by documents with that status.

`org` nodes can also appear at the top level.
An `org` has a single attribute, giving its abbreviation/name.
It has `group` and `status` children.

`group` children define the groups that are part of the parent `org`.
A group has an attribute giving the group name (what you write in the Group metadata).
It can optionally have a `priv-sec` boolean property,
indicating that documents for that group require Privacy Considerations and Security Considerations sections.
It can optionally have a `requires` child node, with attributes listing the required metadata
for documents produced by that group.

`status` children are only usable by groups in that org.
`status` shortnames can clash between org nodes;
they're namespaced by the org name, if needed.

The w3c `org` has special rules:
* its `group` nodes must have a `type` property,
with the value being null, "wg", "ig", "cg", or "tag",
indicating the type of the group.
(null indicates a group that isn't otherwise categorized)
* its `status` nodes must have a `group-types` child,
with attributes listing the group type values they can be used by.

*/

org "bikeshed" {
group "test"
group "byos"
status "TEST" "Bikeshed Test File"
status "TEST-2" "Another Status Just For Testing Purposes"
}
org "bikeshed-2" {
status "TEST" "Another Status Just For Testing Purposes"
}

status "DREAM" "A Collection of Interesting Ideas"
status "LS" "Living Standard"
status "LS-COMMIT" "Commit Snapshot"
status "LS-BRANCH" "Branch Snapshot"
status "LS-PR" "PR Preview"
status "LD" "Living Document"
status "DRAFT-FINDING" "Draft Finding"
status "FINDING" "Finding"

org "whatwg" {
group "whatwg" priv-sec=false
status "RD" "Review Draft" {
requires "Date"
}
}

org "w3c" {

/*
Any group in this org has a secondary default
for its boilerplate -
if its personal boilerplate folder is missing a file,
it will look in the `w3c` folder first,
before falling back to the global files.
*/

/*
Every group in this org must have a `type` attribute,
containing "wg", "ig", "cg", or "tag";
this matches with the `group-types` children of the statuses
(and might have some formatting effects, too).
If a group should be able to use anything
(or it's a weirdo one-off that's not worth codifying),
use `type=null`.
*/

group "ab" type=null
group "act-framework" type="wg"
group "act-rules-format" type="wg"
group "audiowg" type="wg" priv-sec=true
group "browser-testing-tools" type="wg"
group "csswg" type="wg" priv-sec=true {
requires "Work Status"
}
group "dap" type="wg" priv-sec=true
group "fedid" type="wg" priv-sec=true
group "fedidcg" type="cg"
group "fxtf" type="wg" priv-sec=true
group "geolocation" type="wg" priv-sec=true
group "gpuwg"
group "houdini" type="wg" priv-sec=true
group "html" type="wg" priv-sec=true
group "htmlwg" type="wg"
group "httpslocal" type="cg"
group "i18n" type="wg"
group "immersivewebcg" type="cg"
group "immersivewebwg" type="wg"
group "mediacapture" type="wg" priv-sec=true
group "mediawg" type="wg" priv-sec=true
group "patcg" type="cg"
group "patcg-id" type="cg"
group "ping" type="ig"
group "pngwg" type="wg"
group "privacycg" type="cg"
group "processcg" type="cg"
group "ricg" type="cg" priv-sec=true
group "sacg" type="cg"
group "secondscreencg" type="cg"
group "secondscreenwg" type="wg"
group "serviceworkers" type="wg"
group "solidcg" type="cg"
group "svg" type="wg" priv-sec=true
group "tag" type="tag"
group "texttracks" type="cg" priv-sec=true
group "uievents" type="wg" priv-sec=true
group "w3t" type=null
group "wasm" type="wg"
group "web-bluetooth-cg" type="cg" priv-sec=true
group "web-payments" type="wg"
group "webapps" type="wg"
group "webappsec" type="wg" priv-sec=true
group "webauthn" type="wg"
group "webediting" type="wg"
group "webfontswg" type="wg" priv-sec=true
group "webgpu" type="cg"
group "webml" type="cg"
group "webmlwg" type="wg"
group "webperf" type="wg"
group "webplatform" type="wg" priv-sec=true
group "webrtc" type="wg"
group "webspecs" type="wg" priv-sec=true
group "webtransport" type="wg"
group "webvr" type="wg"
group "wecg" type="cg"
group "wicg" type="cg"
group "wintercg" type="cg"

/*
Every status in w3c needs a `group-types` child,
with attributes that are any of "ig" "wg" "cg" and/or "tag"
*/

status "LS" "Living Standard" {
requires "ED"
group-types "wg"
}
status "ED" "Editor's Draft" {
requires "Level" "ED"
group-types "ig" "wg" "tag"
}
status "WD" "W3C Working Draft" {
requires "Level" "ED" "TR" "Issue Tracking" "Date"
group-types "wg"
}
status "FPWD" "W3C First Public Working Draft" {
requires "Level" "ED" "TR" "Issue Tracking" "Date"
group-types "wg"
}
status "LCWD" "W3C Last Call Working Draft" {
requires "Level" "ED" "TR" "Issue Tracking" "Date" "Deadline"
group-types "wg"
}
status "CR" "W3C Candidate Recommendation Snapshot" {
requires "Level" "ED" "TR" "Issue Tracking" "Date" "Implementation Report"
group-types "wg"
}
status "CRD" "W3C Candidate Recommendation Draft" {
requires "Level" "ED" "TR" "Issue Tracking" "Date" "Implementation Report" "Deadline"
group-types "wg"
}
status "PR" "W3C Proposed Recommendation" {
requires "Level" "ED" "TR" "Issue Tracking" "Date" "Implementation Report" "Deadline"
group-types "wg"
}
status "REC" "W3C Recommendation" {
requires "Level" "ED" "TR" "Issue Tracking" "Date" "Implementation Report"
group-types "wg"
}
status "PER" "W3C Proposed Edited Recommendation" {
requires "Level" "ED" "TR" "Issue Tracking" "Date" "Implementation Report" "Deadline"
group-types "wg"
}
status "WG-NOTE" "W3C Group Note" {
requires "TR" "Issue Tracking" "Date"
group-types "wg" "tag"
}
status "IG-NOTE" "W3C Group Note" {
requires "TR" "Issue Tracking" "Date"
group-types "ig"
}
status "NOTE" "W3C Group Note" {
requires "TR" "Issue Tracking" "Date"
group-types "wg" "ig" "tag"
}
status "NOTE-ED" "Editor's Draft" {
requires "ED"
group-types "wg" "ig" "tag"
}
status "NOTE-WD" "W3C Working Draft" {
requires "ED" "TR" "Issue Tracking" "Date"
group-types "wg" "ig" "tag"
}
status "NOTE-FPWD" "W3C First Public Working Draft" {
requires "ED" "TR" "Issue Tracking" "Date"
group-types "wg" "ig" "tag"
}
status "DRY" "W3C Draft Registry" {
requires "TR" "Date"
group-types "wg"
}
status "CRYD" "W3C Candidate Registry Draft" {
requires "TR" "Date"
group-types "wg"
}
status "CRY" "W3C Candidate Registry" {
requires "TR" "Date"
group-types "wg"
}
status "RY" "W3C Registry" {
requires "TR" "Date"
group-types "wg"
}
status "MO" "W3C Member-only Draft" {
requires "TR" "Issue Tracking" "Date"
group-types "wg"
}
status "UD" "Unofficial Proposal Draft" {
requires "ED"
group-types "wg" "ig" "tag" "cg"
}
status "CG-DRAFT" "Draft Community Group Report" {
requires "Level" "ED"
group-types "cg"
}
status "CG-FINAL" "Final Community Group Report" {
requires "Level" "ED" "TR" "Issue Tracking"
group-types "cg"
}
status "DRAFT-FINDING" "Draft Finding" {
requires "ED"
group-types "wg" "tag"
}
status "FINDING" "Finding" {
requires "TR"
group-types "wg" "tag"
}
}

org "tc39" {
group "tc39"

status "STAGE0" "Stage 0: Strawman"
status "STAGE1" "Stage 1: Proposal"
status "STAGE2" "Stage 2: Draft"
status "STAGE3" "Stage 3: Candidate"
status "STAGE4" "Stage 4: Finished"
}

org "iso" {
group "wg14"
group "wg21" {
requires "Audience"
}

status "I" "Issue"
status "DR" "Defect Report"
status "D" "Draft Proposal"
status "P" "Published Proposal"
status "MEET" "Meeting Announcements"
status "RESP" "Records of Response"
status "MIN" "Minutes"
status "ER" "Editor's Report"
status "SD" "Standing Document"
status "PWI" "Preliminary Work Item"
status "NP" "New Proposal"
status "NWIP" "New Work Item Proposal"
status "WD" "Working Draft"
status "CD" "Committee Draft"
status "FCD" "Final Committee Draft"
status "DIS" "Draft International Standard"
status "FDIS" "Final Draft International Standard"
status "PRF" "Proof of a new International Standard"
status "IS" "International Standard"
status "TR" "Technical Report"
status "DTR" "Draft Technical Report"
status "TS" "Technical Specification"
status "DTS" "Draft Technical Specification"
status "PAS" "Publicly Available Specification"
status "TTA" "Technology Trends Assessment"
status "IWA" "International Workshop Agreement"
status "COR" "Technical Corrigendum"
status "GUIDE" "Guidance to Technical Committees"
status "NP-AMD" "New Proposal Amendment"
status "AWI-AMD" "Approved new Work Item Amendment"
status "WD-AMD" "Working Draft Amendment"
status "CD-AMD" "Committee Draft Amendment"
status "PD-AMD" "Proposed Draft Amendment"
status "FPD-AMD" "Final Proposed Draft Amendment"
status "D-AMD" "Draft Amendment"
status "FD-AMD" "Final Draft Amendment"
status "PRF-AMD" "Proof Amendment"
status "AMD" "Amendment"
}

org "fido" {
group "fido"

status "ED" "Editor's Draft"
status "WD" "Working Draft" {
requires "ED"
}
status "RD" "Review Draft" {
requires "ED"
}
status "ID" "Implementation Draft" {
requires "ED"
}
status "PS" "Proposed Standard" {
requires "ED"
}
status "FD" "Final Document" {
requires "ED"
}
}

org "khronos" {
group "webgl"

status "ED" "Editor's Draft"
}

org "aom" {
group "aom"

status "PD" "Pre-Draft"
status "WGD" "AOM Working Group Draft"
status "WGA" "AOM Working Group Approved Draft"
status "FD" "AOM Final Deliverable"
}
3 changes: 2 additions & 1 deletion manifest.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
2024-08-23 19:00:14.591263
2024-08-23 19:22:15.229567
423588fa03404df583c61ac733672269 boilerplate/doctypes.kdl
d41d8cd98f00b204e9800998ecf8427e boilerplate/logo.include
7c9882ee1f0773f17801e0d5f8d6a57a boilerplate/footer.include
d8d0ca96965e06069f5745214f9b3f46 boilerplate/header.include
Expand Down

0 comments on commit 24d388d

Please sign in to comment.