Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft status of ReSpec specs may be missed #944

Closed
tidoust opened this issue May 5, 2023 · 0 comments · Fixed by #1000
Closed

Draft status of ReSpec specs may be missed #944

tidoust opened this issue May 5, 2023 · 0 comments · Fixed by #1000

Comments

@tidoust
Copy link
Member

tidoust commented May 5, 2023

When it needs to retrieve information from the spec itself, the code uses JSDOM without running scripts. For ReSpec draft specs (that do not get published through the spec-prod action), this means that the code does not have access to the generated spec and in particular won't find the spec's status.

This prevents the code from extracting the actual spec's status, resorting to "Editor's Draft". Most of the time, that is correct, but we may need to add unofficial drafts and CG drafts from time to time.

Examples of specs for which that is an issue:

I don't know whether we can use JSDOM to generate a ReSpec spec (we switched to Puppeteer in Reffy partly because that did not work well)

tidoust added a commit that referenced this issue May 5, 2023
This adds specs reported in #941 that seem to have sufficiently progressed to
now meet inclusion criteria:

- WebXR Mesh Detection Module
- Navigation-Tracking Mitigations
- Direct Sockets API (unofficial draft)
- Document Picture-in-Picture (unofficial draft)
- Shared Storage API
- Storage Buckets API

Note the need to set the status of Direct Sockets explicitly due to #944.

This will add the following entries:

```json
[
  {
    "url": "https://immersive-web.github.io/real-world-meshing/",
    "seriesComposition": "full",
    "shortname": "real-world-meshing",
    "series": {
      "shortname": "real-world-meshing",
      "currentSpecification": "real-world-meshing",
      "title": "WebXR Mesh Detection",
      "shortTitle": "WebXR Mesh Detection",
      "nightlyUrl": "https://immersive-web.github.io/real-world-meshing/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Immersive Web Community Group",
        "url": "https://www.w3.org/community/immersive-web/"
      }
    ],
    "nightly": {
      "url": "https://immersive-web.github.io/real-world-meshing/",
      "status": "Draft Community Group Report",
      "alternateUrls": [],
      "repository": "https://github.com/immersive-web/real-world-meshing",
      "sourcePath": "index.bs",
      "filename": "index.html"
    },
    "title": "WebXR Mesh Detection Module",
    "source": "spec",
    "shortTitle": "WebXR Mesh Detection",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://privacycg.github.io/nav-tracking-mitigations/",
    "seriesComposition": "full",
    "shortname": "nav-tracking-mitigations",
    "series": {
      "shortname": "nav-tracking-mitigations",
      "currentSpecification": "nav-tracking-mitigations",
      "title": "Navigational-Tracking Mitigations",
      "shortTitle": "Navigational-Tracking Mitigations",
      "nightlyUrl": "https://privacycg.github.io/nav-tracking-mitigations/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Privacy Community Group",
        "url": "https://www.w3.org/community/privacycg/"
      }
    ],
    "nightly": {
      "url": "https://privacycg.github.io/nav-tracking-mitigations/",
      "status": "Editor's Draft",
      "alternateUrls": [],
      "repository": "https://github.com/privacycg/nav-tracking-mitigations",
      "sourcePath": "index.bs",
      "filename": "index.html"
    },
    "title": "Navigational-Tracking Mitigations",
    "source": "spec",
    "shortTitle": "Navigational-Tracking Mitigations",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://wicg.github.io/direct-sockets/",
    "seriesComposition": "full",
    "shortname": "direct-sockets",
    "series": {
      "shortname": "direct-sockets",
      "currentSpecification": "direct-sockets",
      "title": "Direct Sockets API",
      "shortTitle": "Direct Sockets API",
      "nightlyUrl": "https://wicg.github.io/direct-sockets/"
    },
    "nightly": {
      "url": "https://wicg.github.io/direct-sockets/",
      "status": "Unofficial Proposal Draft",
      "alternateUrls": [],
      "repository": "https://github.com/WICG/direct-sockets",
      "sourcePath": "index.html",
      "filename": "index.html"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Web Platform Incubator Community Group",
        "url": "https://www.w3.org/community/wicg/"
      }
    ],
    "title": "Direct Sockets API",
    "source": "spec",
    "shortTitle": "Direct Sockets API",
    "categories": [
      "browser"
    ],
    "standing": "pending"
  },
  {
    "url": "https://wicg.github.io/document-picture-in-picture/",
    "seriesComposition": "full",
    "shortname": "document-picture-in-picture",
    "series": {
      "shortname": "document-picture-in-picture",
      "currentSpecification": "document-picture-in-picture",
      "title": "Document Picture-in-Picture Specification",
      "shortTitle": "Document Picture-in-Picture",
      "nightlyUrl": "https://wicg.github.io/document-picture-in-picture/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Web Platform Incubator Community Group",
        "url": "https://www.w3.org/community/wicg/"
      }
    ],
    "nightly": {
      "url": "https://wicg.github.io/document-picture-in-picture/",
      "status": "Unofficial Proposal Draft",
      "alternateUrls": [],
      "repository": "https://github.com/WICG/document-picture-in-picture",
      "sourcePath": "spec.bs",
      "filename": "index.html"
    },
    "title": "Document Picture-in-Picture Specification",
    "source": "spec",
    "shortTitle": "Document Picture-in-Picture",
    "categories": [
      "browser"
    ],
    "standing": "pending",
    "tests": {
      "repository": "https://github.com/web-platform-tests/wpt",
      "testPaths": [
        "document-picture-in-picture"
      ]
    }
  },
  {
    "url": "https://wicg.github.io/shared-storage/",
    "seriesComposition": "full",
    "shortname": "shared-storage",
    "series": {
      "shortname": "shared-storage",
      "currentSpecification": "shared-storage",
      "title": "Shared Storage API",
      "shortTitle": "Shared Storage API",
      "nightlyUrl": "https://wicg.github.io/shared-storage/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Web Platform Incubator Community Group",
        "url": "https://www.w3.org/community/wicg/"
      }
    ],
    "nightly": {
      "url": "https://wicg.github.io/shared-storage/",
      "status": "Draft Community Group Report",
      "alternateUrls": [],
      "repository": "https://github.com/WICG/shared-storage",
      "sourcePath": "spec.bs",
      "filename": "index.html"
    },
    "title": "Shared Storage API",
    "source": "spec",
    "shortTitle": "Shared Storage API",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://wicg.github.io/storage-buckets/",
    "seriesComposition": "full",
    "shortname": "storage-buckets",
    "series": {
      "shortname": "storage-buckets",
      "currentSpecification": "storage-buckets",
      "title": "Storage Buckets API",
      "shortTitle": "Storage Buckets API",
      "nightlyUrl": "https://wicg.github.io/storage-buckets/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Web Platform Incubator Community Group",
        "url": "https://www.w3.org/community/wicg/"
      }
    ],
    "nightly": {
      "url": "https://wicg.github.io/storage-buckets/",
      "status": "Draft Community Group Report",
      "alternateUrls": [],
      "repository": "https://github.com/WICG/storage-buckets",
      "sourcePath": "index.bs",
      "filename": "index.html"
    },
    "title": "Storage Buckets API",
    "source": "spec",
    "shortTitle": "Storage Buckets API",
    "categories": [
      "browser"
    ],
    "standing": "good"
  }
]
```
tidoust added a commit that referenced this issue May 5, 2023
* Update review of monitored specs

* Add 6 specs (4 WICG, 1 Privacy CG, 1 Immersive Web CG)

This adds specs reported in #941 that seem to have sufficiently progressed to
now meet inclusion criteria:

- WebXR Mesh Detection Module
- Navigation-Tracking Mitigations
- Direct Sockets API (unofficial draft)
- Document Picture-in-Picture (unofficial draft)
- Shared Storage API
- Storage Buckets API

Note the need to set the status of Direct Sockets explicitly due to #944.

This will add the following entries:

```json
[
  {
    "url": "https://immersive-web.github.io/real-world-meshing/",
    "seriesComposition": "full",
    "shortname": "real-world-meshing",
    "series": {
      "shortname": "real-world-meshing",
      "currentSpecification": "real-world-meshing",
      "title": "WebXR Mesh Detection",
      "shortTitle": "WebXR Mesh Detection",
      "nightlyUrl": "https://immersive-web.github.io/real-world-meshing/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Immersive Web Community Group",
        "url": "https://www.w3.org/community/immersive-web/"
      }
    ],
    "nightly": {
      "url": "https://immersive-web.github.io/real-world-meshing/",
      "status": "Draft Community Group Report",
      "alternateUrls": [],
      "repository": "https://github.com/immersive-web/real-world-meshing",
      "sourcePath": "index.bs",
      "filename": "index.html"
    },
    "title": "WebXR Mesh Detection Module",
    "source": "spec",
    "shortTitle": "WebXR Mesh Detection",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://privacycg.github.io/nav-tracking-mitigations/",
    "seriesComposition": "full",
    "shortname": "nav-tracking-mitigations",
    "series": {
      "shortname": "nav-tracking-mitigations",
      "currentSpecification": "nav-tracking-mitigations",
      "title": "Navigational-Tracking Mitigations",
      "shortTitle": "Navigational-Tracking Mitigations",
      "nightlyUrl": "https://privacycg.github.io/nav-tracking-mitigations/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Privacy Community Group",
        "url": "https://www.w3.org/community/privacycg/"
      }
    ],
    "nightly": {
      "url": "https://privacycg.github.io/nav-tracking-mitigations/",
      "status": "Editor's Draft",
      "alternateUrls": [],
      "repository": "https://github.com/privacycg/nav-tracking-mitigations",
      "sourcePath": "index.bs",
      "filename": "index.html"
    },
    "title": "Navigational-Tracking Mitigations",
    "source": "spec",
    "shortTitle": "Navigational-Tracking Mitigations",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://wicg.github.io/direct-sockets/",
    "seriesComposition": "full",
    "shortname": "direct-sockets",
    "series": {
      "shortname": "direct-sockets",
      "currentSpecification": "direct-sockets",
      "title": "Direct Sockets API",
      "shortTitle": "Direct Sockets API",
      "nightlyUrl": "https://wicg.github.io/direct-sockets/"
    },
    "nightly": {
      "url": "https://wicg.github.io/direct-sockets/",
      "status": "Unofficial Proposal Draft",
      "alternateUrls": [],
      "repository": "https://github.com/WICG/direct-sockets",
      "sourcePath": "index.html",
      "filename": "index.html"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Web Platform Incubator Community Group",
        "url": "https://www.w3.org/community/wicg/"
      }
    ],
    "title": "Direct Sockets API",
    "source": "spec",
    "shortTitle": "Direct Sockets API",
    "categories": [
      "browser"
    ],
    "standing": "pending"
  },
  {
    "url": "https://wicg.github.io/document-picture-in-picture/",
    "seriesComposition": "full",
    "shortname": "document-picture-in-picture",
    "series": {
      "shortname": "document-picture-in-picture",
      "currentSpecification": "document-picture-in-picture",
      "title": "Document Picture-in-Picture Specification",
      "shortTitle": "Document Picture-in-Picture",
      "nightlyUrl": "https://wicg.github.io/document-picture-in-picture/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Web Platform Incubator Community Group",
        "url": "https://www.w3.org/community/wicg/"
      }
    ],
    "nightly": {
      "url": "https://wicg.github.io/document-picture-in-picture/",
      "status": "Unofficial Proposal Draft",
      "alternateUrls": [],
      "repository": "https://github.com/WICG/document-picture-in-picture",
      "sourcePath": "spec.bs",
      "filename": "index.html"
    },
    "title": "Document Picture-in-Picture Specification",
    "source": "spec",
    "shortTitle": "Document Picture-in-Picture",
    "categories": [
      "browser"
    ],
    "standing": "pending",
    "tests": {
      "repository": "https://github.com/web-platform-tests/wpt",
      "testPaths": [
        "document-picture-in-picture"
      ]
    }
  },
  {
    "url": "https://wicg.github.io/shared-storage/",
    "seriesComposition": "full",
    "shortname": "shared-storage",
    "series": {
      "shortname": "shared-storage",
      "currentSpecification": "shared-storage",
      "title": "Shared Storage API",
      "shortTitle": "Shared Storage API",
      "nightlyUrl": "https://wicg.github.io/shared-storage/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Web Platform Incubator Community Group",
        "url": "https://www.w3.org/community/wicg/"
      }
    ],
    "nightly": {
      "url": "https://wicg.github.io/shared-storage/",
      "status": "Draft Community Group Report",
      "alternateUrls": [],
      "repository": "https://github.com/WICG/shared-storage",
      "sourcePath": "spec.bs",
      "filename": "index.html"
    },
    "title": "Shared Storage API",
    "source": "spec",
    "shortTitle": "Shared Storage API",
    "categories": [
      "browser"
    ],
    "standing": "good"
  },
  {
    "url": "https://wicg.github.io/storage-buckets/",
    "seriesComposition": "full",
    "shortname": "storage-buckets",
    "series": {
      "shortname": "storage-buckets",
      "currentSpecification": "storage-buckets",
      "title": "Storage Buckets API",
      "shortTitle": "Storage Buckets API",
      "nightlyUrl": "https://wicg.github.io/storage-buckets/"
    },
    "organization": "W3C",
    "groups": [
      {
        "name": "Web Platform Incubator Community Group",
        "url": "https://www.w3.org/community/wicg/"
      }
    ],
    "nightly": {
      "url": "https://wicg.github.io/storage-buckets/",
      "status": "Draft Community Group Report",
      "alternateUrls": [],
      "repository": "https://github.com/WICG/storage-buckets",
      "sourcePath": "index.bs",
      "filename": "index.html"
    },
    "title": "Storage Buckets API",
    "source": "spec",
    "shortTitle": "Storage Buckets API",
    "categories": [
      "browser"
    ],
    "standing": "good"
  }
]
```

* Drop newly added specs from monitor file

* Adjust comment for Element Capture

---------

Co-authored-by: tidoust <tidoust@users.noreply.github.com>
Co-authored-by: Francois Daoust <fd@tidoust.net>
@tidoust tidoust changed the title Unofficial draft status of ReSpec specs may be missed Draft status of ReSpec specs may be missed Jul 4, 2023
tidoust added a commit that referenced this issue Jul 7, 2023
Fixes #944. Note generation of ReSpec specs with JSDOM is still not possible in
practice, due to missing APIs in JSDOM required by ReSpec.

To make sure that the result would work for all WICG specs (in case
browser-specs becomes the source for Specref for WICG specs), I made a built
without retrieving info from Specref for WICG specs. Result looks good, and
would actually fix a couple of outdated titles and incorrect spec statuses.
tidoust added a commit that referenced this issue Jul 12, 2023
Fixes #944. Note generation of ReSpec specs with JSDOM is still not possible in
practice, due to missing APIs in JSDOM required by ReSpec.

To make sure that the result would work for all WICG specs (in case
browser-specs becomes the source for Specref for WICG specs), I made a built
without retrieving info from Specref for WICG specs. Result looks good, and
would actually fix a couple of outdated titles and incorrect spec statuses.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant