From 0b7aef7ed0279574a6ed02bacf01fdfb8d5d3859 Mon Sep 17 00:00:00 2001 From: Denis Ah-Kang <1696128+deniak@users.noreply.github.com> Date: Mon, 6 Nov 2023 09:48:51 +0400 Subject: [PATCH] introduce the 2023.1 process document and allow a 1-month transition period (#1784) --- lib/l10n-en_GB.js | 12 ++-- lib/rules.json | 70 ++++++++++---------- lib/rules/sotd/new-features.js | 2 +- lib/rules/sotd/process-document.js | 64 +++++++++++------- lib/rules/sotd/publish.js | 47 ++++++++++--- lib/rules/sotd/stability.js | 2 +- test/data/TR/TRBase.js | 7 -- test/doc-views/TR/Recommendation/REC.js | 2 +- test/doc-views/TR/TRBase.js | 4 +- test/doc-views/layout/spec.handlebars | 6 +- test/doc-views/partials/stability.handlebars | 4 +- test/doc-views/specBase.js | 8 +-- test/docs/2021-cr.html | 6 +- test/docs/2021-crd.html | 4 +- test/docs/2021-cry.html | 6 +- test/docs/2021-cryd.html | 4 +- test/docs/2021-disc.html | 4 +- test/docs/2021-dnote.html | 4 +- test/docs/2021-dry.html | 4 +- test/docs/2021-fpwd.html | 4 +- test/docs/2021-note.html | 4 +- test/docs/2021-pr.html | 4 +- test/docs/2021-rec.html | 2 +- test/docs/2021-ry.html | 4 +- test/docs/2021-stmt.html | 4 +- test/docs/2021-wd-shortname-change.html | 4 +- test/docs/2021-wd.html | 4 +- test/samples.js | 28 ++++---- 28 files changed, 176 insertions(+), 142 deletions(-) diff --git a/lib/l10n-en_GB.js b/lib/l10n-en_GB.js index 0d85277da..2e901a629 100644 --- a/lib/l10n-en_GB.js +++ b/lib/l10n-en_GB.js @@ -176,7 +176,7 @@ export const messages = { 'sotd.stability.no-cr-review': 'No wide review link for Candidate Recommendation', 'sotd.stability.wrong-cr-review-link': - "Wrong wide review link for Candidate Recommendation, link should be 'https://www.w3.org/2023/Process-20230612/#dfn-wide-review'", + "Wrong wide review link for Candidate Recommendation, link should be 'https://www.w3.org/2023/Process-20231103/#dfn-wide-review'", 'sotd.stability.no-licensing-link': "Wrong royalty-free licensing link for CR and REC, link should be ${licensingLink} with text '${licensingText}'", // sotd/review-end @@ -259,10 +259,10 @@ export const messages = { 'The governing process statement has been found multiple times.', 'sotd.process-document.not-found': 'The document must mention the governing process: ${process}', - 'sotd.process-document.wrong-link': - 'The link to the process rules specified in the document is erroneous.', - 'sotd.process-document.wrong-process': - "The document doesn't specify the right governing process: ${process}.", + 'sotd.process-document.previous-allowed': + 'The process document (${process}) you are using is deprecated.', + 'sotd.process-document.previous-not-allowed': + 'The process document (${process}) you are using is no longer allowed.', // sotd/ac-review 'sotd.ac-review.found': 'Found a link to an online questionnaire: ${link}. Does this link provide access to the review form?', @@ -279,7 +279,7 @@ export const messages = { 'Deliverer not found. An attribute data-deliverer must be in the SotD', // sotd/new-features 'sotd.new-features.no-link': - 'The paragraph on future updates to the recommendation should include a link to the new features: https://www.w3.org/2023/Process-20230612/#allow-new-features', + 'The paragraph on future updates to the recommendation should include a link to the new features: https://www.w3.org/2023/Process-20231103/#allow-new-features', 'sotd.new-features.no-warning': "If it is the intention to incorporate new features in future updates of the Recommendation, please make sure to identify the document as intending to allow new features.", // structure/canonical diff --git a/lib/rules.json b/lib/rules.json index 9662cc955..a333d2be5 100644 --- a/lib/rules.json +++ b/lib/rules.json @@ -146,8 +146,8 @@ "datesFormat": true, "publish": [ "Draft Registry", - "Registry track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Registry track</a>" + "Registry track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Registry track</a>" ], "customParagraph": true, "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

Publication as a Draft Registry does not imply endorsement by W3C and its Members

", @@ -235,11 +235,11 @@ "datesFormat": true, "publish": [ "Candidate Registry Snapshot", - "Registry track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Registry track</a>" + "Registry track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Registry track</a>" ], "customParagraph": true, - "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

Publication as a Draft Registry does not imply endorsement by W3C and its Members. A Candidate Registry Snapshot has received wide review.

Include this source code:
<p>Publication as a Draft Registry does not imply endorsement by W3C and its Members. A Candidate Registry Snapshot has received <a href=\"https://www.w3.org/2023/Process-20230612/#dfn-wide-review\">wide review</a>.</p>
", + "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

Publication as a Draft Registry does not imply endorsement by W3C and its Members. A Candidate Registry Snapshot has received wide review.

Include this source code:
<p>Publication as a Draft Registry does not imply endorsement by W3C and its Members. A Candidate Registry Snapshot has received <a href=\"https://www.w3.org/2023/Process-20231103/#dfn-wide-review\">wide review</a>.</p>
", "reviewEndDate": "It must include a minimal duration (before which the group will not request the next transition). The duration must be expressed as an estimated date.", "knownDisclosureNumber": true, "patPolReq": true, @@ -324,8 +324,8 @@ "datesFormat": true, "publish": [ "Candidate Registry Draft", - "Registry track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Registry track</a>" + "Registry track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Registry track</a>" ], "customParagraph": true, "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

Publication as a Candidate Registry Draft does not imply endorsement by W3C and its Members. A Candidate Registry Draft integrates changes from the previous Candidate Registry that the Working Group intends to include in a subsequent Candidate Registry Snapshot.

", @@ -413,8 +413,8 @@ "datesFormat": true, "publish": [ "Registry", - "Registry track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Registry track</a>" + "Registry track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Registry track</a>" ], "customParagraph": true, "usage": "It must include the expectations in terms of usage of this registry. The SOTD should include the paragraph:
W3C recommends the wide usage of this registry.
", @@ -507,8 +507,8 @@ "boilerplateTRDoc": true, "publish": [ "Group Draft Note", - "Note track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Note track</a>" + "Note track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Note track</a>" ], "customParagraph": true, "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

Group Draft Notes are not endorsed by W3C nor its Members.

or

This Group Draft Note is endorsed by the @@@ Working/Interest Group (and the @@@ Working/Interest Group), but is not endorsed by W3C itself nor its Members.

", @@ -596,8 +596,8 @@ "datesFormat": true, "publish": [ "Group Note", - "Note track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Note track</a>" + "Note track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Note track</a>" ], "customParagraph": true, "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

Group Notes are not endorsed by W3C nor its Members.

or

This Group Note is endorsed by the @@@ Working/Interest Group (and the @@@ Working/Interest Group), but is not endorsed by W3C itself nor its Members.

", @@ -685,8 +685,8 @@ "datesFormat": true, "publish": [ "Statement", - "Note track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Note track</a>" + "Note track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Note track</a>" ], "customParagraph": true, "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

A W3C Statement is a specification that, after extensive consensus-building, is endorsed by W3C and its Members.

Include this source code:
<p>A W3C Statement is a specification that, after extensive consensus-building, is endorsed by W3C and its Members.</p>
", @@ -778,8 +778,8 @@ "datesFormat": true, "publish": [ "First Public Working Draft", - "Recommendation track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>" + "Recommendation track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>" ], "customParagraph": true, "stability": ["a First Public Working Draft", ""], @@ -866,8 +866,8 @@ "datesFormat": true, "publish": [ "Working Draft", - "Recommendation track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>" + "Recommendation track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>" ], "customParagraph": true, "changesList": ["should", ""], @@ -960,15 +960,15 @@ "datesFormat": true, "publish": [ "Candidate Recommendation Snapshot", - "Recommendation track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>" + "Recommendation track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>" ], "reviewEndDate": "It must include a minimal duration (before which the group will not request the next transition). The duration must be expressed as an estimated date.", "implEstimation": "It should include an estimated date by which time the Working Group expects to have sufficient implementation experience.", "featAtRisk": "It must identify any \"features at risk\" declared by the Working Group (as defined in section 6.4 of the W3C Process Document).", "customParagraph": true, "changesList": ["must", ""], - "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

Publication as a Candidate Recommendation does not imply endorsement by W3C and its Members. A Candidate Recommendation Snapshot has received wide review, is intended to gather implementation experience, and has commitments from Working Group members to royalty-free licensing for implementations.

Include this source code:
<p>Publication as a Candidate Recommendation does not imply endorsement by W3C and its Members. A Candidate Recommendation Snapshot has received <a href=\"https://www.w3.org/2023/Process-20230612/#dfn-wide-review\">wide review</a>, is intended to gather implementation experience, and has commitments from Working Group members to <a href=\"https://www.w3.org/Consortium/Patent-Policy/#sec-Requirements\">royalty-free licensing</a> for implementations.</p>
", + "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

Publication as a Candidate Recommendation does not imply endorsement by W3C and its Members. A Candidate Recommendation Snapshot has received wide review, is intended to gather implementation experience, and has commitments from Working Group members to royalty-free licensing for implementations.

Include this source code:
<p>Publication as a Candidate Recommendation does not imply endorsement by W3C and its Members. A Candidate Recommendation Snapshot has received <a href=\"https://www.w3.org/2023/Process-20231103/#dfn-wide-review\">wide review</a>, is intended to gather implementation experience, and has commitments from Working Group members to <a href=\"https://www.w3.org/Consortium/Patent-Policy/#sec-Requirements\">royalty-free licensing</a> for implementations.</p>
", "patPolReq": true, "knownDisclosureNumber": true, "whichProcess": true @@ -1053,8 +1053,8 @@ "datesFormat": true, "publish": [ "Candidate Recommendation Draft", - "Recommendation track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>" + "Recommendation track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>" ], "reviewEndDate": "It must include a minimal duration (before which the group will not request the next transition). The duration must be expressed as an estimated date.", "implEstimation": "It should include an estimated date by which time the Working Group expects to have sufficient implementation experience.", @@ -1147,8 +1147,8 @@ "datesFormat": true, "publish": [ "Proposed Recommendation", - "Recommendation track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>" + "Recommendation track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>" ], "ACRepFeedbackEmail": true, "reviewEndDatePR": true, @@ -1162,7 +1162,7 @@ "draftStability": true, "patPolReq": true, "knownDisclosureNumber": true, - "newFeatures": "If it is the intention to incorporate new features in future updates of the specification, please make sure to identify the document as intending to allow new features. Recommended text is:
Future updates to this specification may incorporate new features.
Include one of this source code:
<p>Future updates to this specification may incorporate <a href=\"https://www.w3.org/2023/Process-20230612/#allow-new-features\">new features</a>.</p>", + "newFeatures": "If it is the intention to incorporate new features in future updates of the specification, please make sure to identify the document as intending to allow new features. Recommended text is:
Future updates to this specification may incorporate new features.
Include one of this source code:
<p>Future updates to this specification may incorporate <a href=\"https://www.w3.org/2023/Process-20231103/#allow-new-features\">new features</a>.</p>", "whichProcess": true } }, @@ -1249,14 +1249,14 @@ "boilerplateTRDoc": true, "datesFormat": true, "deployment": true, - "publish": "W3C Recommendation must include one of the following paragraphs in the \"Status of This Document\" depending on the type of Recommendations:
  1. Recommendation without modifications:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>.</p>
  2. Recommendation with candidate corrections:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes candidate corrections.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20230612/#candidate-correction\">candidate corrections.</a>.</p>
  3. Recommendation with candidate additions:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes candidate additions, introducing new features since the Previous Recommendation.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20230612/#candidate-addition\">candidate additions</a>, introducing new features since the Previous Recommendation.</p>
  4. Recommendation with candidate amendments:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes candidate amendments, introducing substantive changes and new features since the Previous Recommendation.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20230612/#candidate-amendments\">candidate amendments</a>, introducing substantive changes and new features since the Previous Recommendation.</p>
  5. Recommendation with proposed corrections:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes proposed corrections.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20230612/#proposed-corrections\">proposed corrections.</a>.</p>
  6. Recommendation with proposed additions:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes proposed additions, introducing new features since the Previous Recommendation.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20230612/#proposed-addition\">proposed additions</a>, introducing new features since the Previous Recommendation.</p>
  7. Recommendation with proposed amendments:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes proposed amendments, introducing substantive changes and new features since the Previous Recommendation.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20230612/#proposed-amendments\">proposed amendments</a>, introducing substantive changes and new features since the Previous Recommendation.</p>
", + "publish": "W3C Recommendation must include one of the following paragraphs in the \"Status of This Document\" depending on the type of Recommendations:
  1. Recommendation without modifications:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>.</p>
  2. Recommendation with candidate corrections:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes candidate corrections.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20231103/#candidate-correction\">candidate corrections.</a>.</p>
  3. Recommendation with candidate additions:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes candidate additions, introducing new features since the Previous Recommendation.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20231103/#candidate-addition\">candidate additions</a>, introducing new features since the Previous Recommendation.</p>
  4. Recommendation with candidate amendments:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes candidate amendments, introducing substantive changes and new features since the Previous Recommendation.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20231103/#candidate-amendments\">candidate amendments</a>, introducing substantive changes and new features since the Previous Recommendation.</p>
  5. Recommendation with proposed corrections:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes proposed corrections.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20231103/#proposed-corrections\">proposed corrections.</a>.</p>
  6. Recommendation with proposed additions:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes proposed additions, introducing new features since the Previous Recommendation.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20231103/#proposed-addition\">proposed additions</a>, introducing new features since the Previous Recommendation.</p>
  7. Recommendation with proposed amendments:
    This document was published by the @@ Working Group as a Recommendation using the Recommendation track. It includes proposed amendments, introducing substantive changes and new features since the Previous Recommendation.
    Include this source code:
    <p>This document was published by the @@ Working Group as a Recommendation using the <a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>. It includes <a href=\"https://www.w3.org/2023/Process-20231103/#proposed-amendments\">proposed amendments</a>, introducing substantive changes and new features since the Previous Recommendation.</p>
", "recRelation": "It must indicate its relationship to previous related Recommendations (e.g., an indication that a Recommendation supersedes, obsoletes, or subsumes another, or that a Recommendation is an editorial revision) and must link to the most recent Recommendation (if any) having the same major revision number. The document thus links to two important resources: the previous edition of the Recommendation via the status section, and the previous draft (the Proposed Recommendation) via the \"Previous version\" link.", "customParagraph": true, "changesList": ["must", ""], "stability": "It must set expectations about the stability of the document. The recommended text is:

A W3C Recommendation is a specification that, after extensive consensus-building, is endorsed by W3C and its Members, and has commitments from Working Group members to royalty-free licensing for implementations.

Include this source code:
<p>A W3C Recommendation is a specification that, after extensive consensus-building, is endorsed by <abbr title=\"World Wide Web Consortium\">W3C</abbr> and its Members, and has commitments from Working Group members to <a href=\"https://www.w3.org/Consortium/Patent-Policy/#sec-Requirements\">royalty-free licensing</a> for implementations.</p>
", "patPolReq": true, "knownDisclosureNumber": true, - "newFeatures": "If it is the intention to incorporate new features in future updates of the Recommendation, please make sure to identify the document as intending to allow new features. Recommended text is:
Future updates to this Recommendation may incorporate new features.
Include one of this source code:
<p>Future updates to this Recommendation may incorporate <a href=\"https://www.w3.org/2023/Process-20230612/#allow-new-features\">new features</a>.</p>", + "newFeatures": "If it is the intention to incorporate new features in future updates of the Recommendation, please make sure to identify the document as intending to allow new features. Recommended text is:
Future updates to this Recommendation may incorporate new features.
Include one of this source code:
<p>Future updates to this Recommendation may incorporate <a href=\"https://www.w3.org/2023/Process-20231103/#allow-new-features\">new features</a>.</p>", "whichProcess": true, "recAddition": "Modifications in W3C Recommendation are divided into \"new features\" and \"changes\". Recommendations with modifications must include the following paragraphs depending on the changes.
  1. proposed corrections, aka \"substantive changes\":

    there should be a paragraph with class=\"correction proposed\"

    Proposed corrections are marked in the document.
    Include this source code:
    <p class=\"correction proposed\">Proposed corrections are marked in the document.</p>
  2. proposed additions, aka \"new features\":

    there should be a paragraph with class=\"addition proposed\"

    Proposed additions are marked in the document.
    Include this source code:
    <p class=\"addition proposed\">Proposed additions are marked in the document.</p>
  3. candidate corrections, aka \"substantive changes\":

    there should be a paragraph with class=\"correction\"

    Candidate corrections are marked in the document.
    Include this source code:
    <p class=\"correction\">Candidate corrections are marked in the document.</p>
  4. candidate additions, aka \"new features\":

    there should be a paragraph with class=\"addition\"

    Candidate additions are marked in the document.
    Include this source code:
    <p class=\"correction\">Candidate additions are marked in the document.</p>
", "commentEnd": "W3C Recommendation with proposed amendments (substantive changes or new features) must have a comment review date of at least 60 days after the publication date." @@ -1341,8 +1341,8 @@ "datesFormat": true, "publish": [ "Recommendation", - "Recommendation track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>" + "Recommendation track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>" ], "recRelation": true, "rescindsRationale": "It must include rationale for the decision to rescind the Recommendation.

Include this source code:
<p>W3C has chosen to rescind the <a href=\"@@PREVIOUS REC URI@@\">@@TITLE@@ Recommendation</a> for the following reasons: [...list of reasons...]. For additional information about replacement or alternative technologies, please refer to the <a href=\"https://www.w3.org/2016/11/obsoleting-rescinding/\">explanation of Obsoleting, Rescinding or Superseding W3C Specifications</a>.</p>

", @@ -1518,8 +1518,8 @@ "datesFormat": true, "publish": [ "Discontinued Draft", - "Recommendation track", - "<a href=\"https://www.w3.org/2023/Process-20230612/#recs-and-notes\">Recommendation track</a>" + "Recommendation track", + "<a href=\"https://www.w3.org/2023/Process-20231103/#recs-and-notes\">Recommendation track</a>" ], "stability": "It must set expectations about the (in)stability of the document. The recommended text is:

Publication as a Discontinued Draft implies that this document is no longer intended to advance or to be maintained. It is inappropriate to cite this document as other than abandoned work.

Include this source code:
<p>Publication as a Discontinued Draft implies that this document is no longer intended to advance or to be maintained. It is inappropriate to cite this document as other than abandoned work.</p>
", "patPolReq": true, @@ -1612,7 +1612,7 @@ "draftStability": "It must include the following sentences in the \"Status Of This Document\":
This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
", "patPolReq": "It must include a text related to the patent policy:

Note: Contact the Communications Team for suitable adaptations in the case where a document has been published jointly by more than one group. In the adaptation, be sure that the text for informative-only specs or specs not going to Rec is the same as the standard text.

", "knownDisclosureNumber": "It must not indicate the number of known disclosures at the time of publication.", - "whichProcess": "The document must include the following boilerplate text in the status section to identify the governing process:

This document is governed by the 12 June 2023 W3C Process Document.

Include this source code:
<p>This document is governed by the <a id=\"w3c_process_revision\" href=\"https://www.w3.org/2023/Process-20230612/\">12 June 2023 W3C Process Document</a>. </p>
", + "whichProcess": "The document must include the following boilerplate text in the status section to identify the governing process:

This document is governed by the 03 November 2023 W3C Process Document.

Include this source code:
<p>This document is governed by the <a id=\"w3c_process_revision\" href=\"https://www.w3.org/2023/Process-20231103/\">03 November 2023 W3C Process Document</a>. </p>
", "discontinue": "If the document was published due to a W3C decision to stop work on this material, the status section should include that rationale.", "expectations": "It should indicate the level of endorsement within the group for the material, set expectations that the group has completed work on the topics covered by the document, and set expectations about the group's commitment to respond to comments about the document.", "ACRepFeedbackEmail": "It also must provide information to Advisory Committee Representatives about how to send their review comments (e.g., the link to all AC reviews, or a link to a specific questionnaire)", @@ -1674,7 +1674,7 @@ "rec-edit-sotd": { "name": "6. Change the \"status of this document\" section", "rules": { - "sotd": "The SOTD gets updated as follows:" + "sotd": "The SOTD gets updated as follows:" } } } diff --git a/lib/rules/sotd/new-features.js b/lib/rules/sotd/new-features.js index b4d48f817..6dcb113b0 100644 --- a/lib/rules/sotd/new-features.js +++ b/lib/rules/sotd/new-features.js @@ -19,7 +19,7 @@ export function check(sr, done) { ); const linkTxt = 'new features'; const linkHref = - 'https://www.w3.org/2023/Process-20230612/#allow-new-features'; + 'https://www.w3.org/2023/Process-20231103/#allow-new-features'; if (sotd && sr.norm(sotd.textContent).match(warning)) { const foundLink = Array.prototype.some.call( diff --git a/lib/rules/sotd/process-document.js b/lib/rules/sotd/process-document.js index 1b8c99129..8ee433226 100644 --- a/lib/rules/sotd/process-document.js +++ b/lib/rules/sotd/process-document.js @@ -12,47 +12,63 @@ export const { name } = self; */ export function check(sr, done) { const sotd = sr.getSotDSection(); - const docDate = sr.getDocumentDate(); const BOILERPLATE_PREFIX = 'This document is governed by the '; const BOILERPLATE_SUFFIX = ' W3C Process Document.'; - let proc = '12 June 2023'; - let procUri = 'https://www.w3.org/2023/Process-20230612/'; - if (docDate < new Date('2023-07-01')) { - proc = '2 November 2021'; - procUri = 'https://www.w3.org/2021/Process-20211102/'; - } + const newProc = '03 November 2023'; + const newProcUri = 'https://www.w3.org/2023/Process-20231103/'; + const previousProc = '12 June 2023'; + const previousProcUri = 'https://www.w3.org/2023/Process-20230612/'; + let previousAllowed; + + const boilerplate = BOILERPLATE_PREFIX + newProc + BOILERPLATE_SUFFIX; + const previousBoilerplate = + BOILERPLATE_PREFIX + previousProc + BOILERPLATE_SUFFIX; - const boilerplate = BOILERPLATE_PREFIX + proc + BOILERPLATE_SUFFIX; + // 1 month transition period + sr.transition({ + from: new Date('2023-11-02'), + to: new Date('2023-12-03'), + doBefore() {}, + doMeanwhile() { + previousAllowed = true; + }, + doAfter() { + previousAllowed = false; + }, + }); if (sotd) { let found = false; - const regex = new RegExp( - `${BOILERPLATE_PREFIX}.+${BOILERPLATE_SUFFIX}` - ); sotd.querySelectorAll('p').forEach(p => { + const link = p.querySelector('a'); if ( sr.norm(p.textContent) === boilerplate && - p.querySelector('a') && - p.querySelector('a').getAttribute('href') === procUri + link && + link.getAttribute('href') === newProcUri ) { - if (found) sr.error(self, 'multiple-times', { process: proc }); + if (found) + sr.error(self, 'multiple-times', { process: newProc }); else { found = true; } } else if ( - sr.norm(p.textContent) !== boilerplate && - regex.test(p.textContent) + sr.norm(p.textContent) === previousBoilerplate && + link && + link.getAttribute('href') === previousProcUri ) { - sr.error(self, 'wrong-process', { process: proc }); - } else if ( - sr.norm(p.textContent) === boilerplate && - p.querySelector('a') && - p.querySelector('a').getAttribute('href') !== procUri - ) { - sr.error(self, 'wrong-link'); + if (previousAllowed) { + sr.warning(self, 'previous-allowed', { + process: previousProc, + }); + found = true; + } else { + sr.error(self, 'previous-not-allowed', { + process: previousProc, + }); + } } }); - if (!found) sr.error(self, 'not-found', { process: proc }); + if (!found) sr.error(self, 'not-found', { process: newProc }); } done(); } diff --git a/lib/rules/sotd/publish.js b/lib/rules/sotd/publish.js index 4266e7656..2a2e675a4 100644 --- a/lib/rules/sotd/publish.js +++ b/lib/rules/sotd/publish.js @@ -36,13 +36,29 @@ export async function check(sr, done) { const sotdLinks = sotd.querySelectorAll('a[href]'); + let baseURL; + // 1 month transition period + sr.transition({ + from: new Date('2023-11-02'), + to: new Date('2023-12-03'), + doBefore() { + baseURL = /^https:\/\/www.w3.org\/2023\/Process-20230612\//; + }, + doMeanwhile() { + baseURL = + /^https:\/\/www.w3.org\/2023\/Process-2023(0612|1103)\//; + }, + doAfter() { + baseURL = /^https:\/\/www.w3.org\/2023\/Process-20231103\//; + }, + }); + // Check track link - const urlExpected = - 'https://www.w3.org/2023/Process-20230612/#recs-and-notes'; + const urlExpected = new RegExp(`${baseURL.source}#recs-and-notes$`); const trackEle = Array.prototype.filter.call(sotdLinks, ele => sr.norm(ele.textContent).match(`${sr.config.track} track`) )[0]; - if (trackEle && trackEle.href !== urlExpected) { + if (trackEle && !urlExpected.test(trackEle.href)) { sr.error(self, 'url-not-match', { url: urlExpected, text: `${sr.config.track} track`, @@ -71,37 +87,46 @@ export async function check(sr, done) { sr.config.status === 'REC' ? sr.getRecMetadata({}) : null; // check if 'candidate amendments' or 'proposed amendments' link in same paragraph is valid. if (recType && JSON.stringify(recType) !== '{}') { - const BASE_URL = 'https://www.w3.org/2023/Process-20230612/'; let urlExpected; let textExpected; // for proposed amendments, proposed additions, proposed corrections. if (recType.pSubChanges && recType.pNewFeatures) { - urlExpected = `${BASE_URL}#proposed-amendments`; + urlExpected = new RegExp( + `${baseURL.source}#proposed-amendments` + ); textExpected = /proposed amendment(s)?/; } else if (recType.pSubChanges) { - urlExpected = `${BASE_URL}#proposed-corrections`; + urlExpected = new RegExp( + `${baseURL.source}#proposed-corrections` + ); textExpected = /proposed correction(s)?/; } else if (recType.pNewFeatures) { - urlExpected = `${BASE_URL}#proposed-addition`; + urlExpected = new RegExp(`${baseURL.source}#proposed-addition`); textExpected = /proposed addition(s)?/; } // for candidate amendments, candidate additions, candidate corrections. if (recType.cSubChanges && recType.cNewFeatures) { - urlExpected = `${BASE_URL}#candidate-amendments`; + urlExpected = new RegExp( + `${baseURL.source}#candidate-amendments` + ); textExpected = /candidate amendments(s)?/; } else if (recType.cSubChanges) { - urlExpected = `${BASE_URL}#candidate-correction`; + urlExpected = new RegExp( + `${baseURL.source}#candidate-correction` + ); textExpected = /candidate correction(s)?/; } else if (recType.cNewFeatures) { - urlExpected = `${BASE_URL}#candidate-addition`; + urlExpected = new RegExp( + `${baseURL.source}#candidate-addition` + ); textExpected = /candidate addition(s)?/; } const linkFound = Array.prototype.some.call( paragraph.querySelectorAll('a'), ele => { if (sr.norm(ele.textContent).match(textExpected)) { - if (ele.href !== urlExpected) { + if (!urlExpected.test(ele.href)) { sr.error(self, 'url-not-match', { url: urlExpected, text: textExpected, diff --git a/lib/rules/sotd/stability.js b/lib/rules/sotd/stability.js index cb659a248..596208be3 100644 --- a/lib/rules/sotd/stability.js +++ b/lib/rules/sotd/stability.js @@ -104,7 +104,7 @@ export function check(sr, done) { if (!review) sr.error(self, 'no-cr-review'); else if ( review.href !== - 'https://www.w3.org/2023/Process-20230612/#dfn-wide-review' + 'https://www.w3.org/2023/Process-20231103/#dfn-wide-review' ) sr.error(self, 'wrong-cr-review-link'); } diff --git a/test/data/TR/TRBase.js b/test/data/TR/TRBase.js index dd35d7a94..3b9ddd35a 100644 --- a/test/data/TR/TRBase.js +++ b/test/data/TR/TRBase.js @@ -58,13 +58,6 @@ export const rules = { data: 'noProcess', errors: ['sotd.process-document.not-found'], }, - { - data: 'wrongLink', - errors: [ - 'sotd.process-document.wrong-link', - 'sotd.process-document.not-found', - ], - }, { data: 'duplicatedProcess', errors: ['sotd.process-document.multiple-times'], diff --git a/test/doc-views/TR/Recommendation/REC.js b/test/doc-views/TR/Recommendation/REC.js index 25736c866..344cd6366 100644 --- a/test/doc-views/TR/Recommendation/REC.js +++ b/test/doc-views/TR/Recommendation/REC.js @@ -139,7 +139,7 @@ export default { showProposedAdd: true, }, processHTML: - '12 June 2023 W3C Process Document', + '03 November 2023 W3C Process Document', }, }, }, diff --git a/test/doc-views/TR/TRBase.js b/test/doc-views/TR/TRBase.js index 3a152a844..02ce4fcd9 100644 --- a/test/doc-views/TR/TRBase.js +++ b/test/doc-views/TR/TRBase.js @@ -111,7 +111,7 @@ export function buildCommonViewData(base) { sotd: { ...base.sotd, processLink: - 'https://www.w3.org/wrong/link/2023/Process-20230612/', + 'https://www.w3.org/wrong/link/2023/Process-20231103/', }, }, duplicatedProcess: { @@ -151,7 +151,7 @@ export function buildCommonViewData(base) { sotd: { ...base.sotd, trackLink: - 'https://www.w3.org/2023/Process-20230612/#wrong-url', + 'https://www.w3.org/2023/Process-20231103/#wrong-url', }, }, noHomepageLink: { diff --git a/test/doc-views/layout/spec.handlebars b/test/doc-views/layout/spec.handlebars index 93b30f3bd..f02cd4ebb 100644 --- a/test/doc-views/layout/spec.handlebars +++ b/test/doc-views/layout/spec.handlebars @@ -195,7 +195,7 @@

{{#if sotd.rec.showProposedAdd}}

- It includes proposed addition, introducing new features since the Previous Recommendation. + It includes proposed addition, introducing new features since the Previous Recommendation.

{{/if}} {{#if sotd.rec.showAddition}} @@ -235,11 +235,11 @@ {{> patent-policy}}

- This document {{sotd.processTextPrefix}}{{! is governed by the}} {{{sotd.processHTML}}}{{! 12 June 2023 W3C Process Document }}. + This document {{sotd.processTextPrefix}}{{! is governed by the}} {{{sotd.processHTML}}}{{! 03 November 2023 W3C Process Document }}.

{{#if sotd.duplicateProcess}}

- This document {{sotd.processTextPrefix}}{{! is governed by the}} {{{sotd.processHTML}}}{{! 12 June 2023 W3C Process Document }}. + This document {{sotd.processTextPrefix}}{{! is governed by the}} {{{sotd.processHTML}}}{{! 03 November 2023 W3C Process Document }}.

{{/if}} {{#if sotd.newFeatures.show}} diff --git a/test/doc-views/partials/stability.handlebars b/test/doc-views/partials/stability.handlebars index 64793867f..a5f36b295 100644 --- a/test/doc-views/partials/stability.handlebars +++ b/test/doc-views/partials/stability.handlebars @@ -21,7 +21,7 @@ DISC: Publication as a Discontinued Draft implies that this document is no longer intended to advance or to be maintained. It is inappropriate to cite this document as other than abandoned work. - CR: Publication as a Candidate Recommendation does not imply endorsement by W3C and its Members. A Candidate Recommendation Snapshot has received wide review, is intended to gather implementation experience, and has commitments from Working Group members to royalty-free licensing for implementations. + CR: Publication as a Candidate Recommendation does not imply endorsement by W3C and its Members. A Candidate Recommendation Snapshot has received wide review, is intended to gather implementation experience, and has commitments from Working Group members to royalty-free licensing for implementations. CRD: Publication as a Candidate Recommendation does not imply endorsement by W3C and its Members. A Candidate Recommendation Draft integrates changes from the previous Candidate Recommendation that the Working Group intends to include in a subsequent Candidate Recommendation Snapshot. + @@ -72,7 +72,7 @@ DRY: Publication as a Draft Registry does not imply endorsement by W3C and its Members. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress. - CRY: Publication as a Candidate Registry Snapshot does not imply endorsement by W3C and its Members. A Candidate Registry Snapshot has received wide review. + CRY: Publication as a Candidate Registry Snapshot does not imply endorsement by W3C and its Members. A Candidate Registry Snapshot has received wide review. CRYD: Publication as a Candidate Registry Draft does not imply endorsement by W3C and its Members. A Candidate Registry Draft integrates changes from the previous Candidate Registry that the Working Group intends to include in a subsequent Candidate Registry Snapshot. diff --git a/test/doc-views/specBase.js b/test/doc-views/specBase.js index 5437b6e52..8437f6a6d 100644 --- a/test/doc-views/specBase.js +++ b/test/doc-views/specBase.js @@ -133,7 +133,7 @@ export const data = { group: 'Internationalization Working Group', WGLink: 'https://www.w3.org/groups/wg/i18n-core/', - trackLink: 'https://www.w3.org/2023/Process-20230612/#recs-and-notes', + trackLink: 'https://www.w3.org/2023/Process-20231103/#recs-and-notes', extra1: '', noEndorsementHTML: 'does not imply endorsement by W3C and its Members', @@ -147,7 +147,7 @@ export const data = { discText: 'intended to advance or to be maintained', wideReviewText: 'wide review', wideReviewLink: - 'https://www.w3.org/2023/Process-20230612/#dfn-wide-review', + 'https://www.w3.org/2023/Process-20231103/#dfn-wide-review', recConsensusText: 'after extensive consensus-building', licensingText: 'royalty-free licensing', @@ -181,9 +181,9 @@ export const data = { duplicateProcess: false, processTextPrefix: 'is governed by the', - processLink: 'https://www.w3.org/2023/Process-20230612/', + processLink: 'https://www.w3.org/2023/Process-20231103/', processHTML: - '12 June 2023 W3C Process Document', + '03 November 2023 W3C Process Document', newFeatures: { show: false, text: 'Future updates to this Recommendation may incorporate new features.', diff --git a/test/docs/2021-cr.html b/test/docs/2021-cr.html index 1d3e2706a..92a89052f 100644 --- a/test/docs/2021-cr.html +++ b/test/docs/2021-cr.html @@ -84,7 +84,7 @@

Status of This Document

This document was published by the Web Performance Working Group as a Candidate Recommendation Snapshot using the Recommendation + href="https://www.w3.org/2023/Process-20231103/#recs-and-notes">Recommendation track.

@@ -92,7 +92,7 @@

Status of This Document

Publication as a Candidate Recommendation does not imply endorsement by W3C and its Members. A Candidate Recommendation Snapshot has received wide review, is intended to + href="https://www.w3.org/2023/Process-20231103/#dfn-wide-review">wide review, is intended to gather implementation experience, and has commitments from Working Group members to royalty-free licensing for implementations.

@@ -111,7 +111,7 @@

Status of This Document

Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

- This document is governed by the 12 June 2023 W3C Process Document. + This document is governed by the 03 November 2023 W3C Process Document.

diff --git a/test/docs/2021-crd.html b/test/docs/2021-crd.html index d73c716de..be7635e60 100644 --- a/test/docs/2021-crd.html +++ b/test/docs/2021-crd.html @@ -102,7 +102,7 @@

Status of This Document

This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.

-

This document was published by the Web Performance Working Group as a Candidate Recommendation Draft using the Recommendation track.

+

This document was published by the Web Performance Working Group as a Candidate Recommendation Draft using the Recommendation track.

Publication as a Candidate Recommendation does not imply endorsement by Status of This Document

- This document is governed by the 12 June 2023 W3C Process Document. + This document is governed by the 03 November 2023 W3C Process Document.