Skip to content

Update features.json in a GitHub Actions workflow - #571

Open
gsnedders wants to merge 6 commits into
WebAssembly:mainfrom
gsnedders:update-features
Open

gsnedders wants to merge 6 commits into
WebAssembly:mainfrom
gsnedders:update-features

Conversation

@gsnedders

Copy link
Copy Markdown

This adds a GitHub Actions workflow, similar to what https://github.com/tc39/dataset does, to keep features.json up-to-date.

@tomayac tomayac left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for this.

Let's have a second pair of eyes review this, though, just to be on the safe side. @dschuff maybe?

Comment thread package.json
@tomayac
tomayac requested a review from dschuff September 22, 2026 07:04
This avoids the warnings currently seen on the GitHub Actions, and
migrates to an up-to-date node to match what the actions themselves
use.
This also moves ajv-cli@5 and ajv-formats@2 to be dev dependencies in
package.json, rather than duplicating the manual install from ci.yml.

It also notably currently _does not_ add any new inactive proposals to
features.json; it merely will update inactive proposals that already
are tracked in features.json. This could easily be changed in the
future, but to avoid a much larger diff to features.json, they are
currently omitted.
This means features.json now provides a full machine-readable copy of
the proposals.
@gsnedders

Copy link
Copy Markdown
Author

(Force pushed just to rebase past the conflict.)

@dschuff dschuff left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit message and comments/documentations should be clear that the keeping-up-to-date part only applies to proposal phases, not engine support.

As for which proposals to show, see my comment below; I think it's still worth curating this a bit; this page doesn't have the same purpose as the wasm proposals repo itself.

...readmeProposals,
...parseFixedPhaseFile(readProposalsFile('finished-proposals.md'), 5),
...parseFixedPhaseFile(
readProposalsFile('inactive-proposals.md'),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is sort of pre-existing but I'm not sure it's valuable to have inactive proposals. By definition nobody is working on them, and having information won't be useful to developers. I think when I originally made this page the bar was that we don't show anything that doesn't have an implementation, because this page targets developers who might want to target wasm. The scope has expanded some but I'm still not convinced that there's any value in showing proposals with nobody working on them and/or no implementations.
Deprecated proposals would be the exception there, so maybe we make some kind of carveout for that, but I think all the others would be just noise. (or maybe we leave deprecated proposals out too, just to avoid encouraging anyone to use them).

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my point-of-view, I really just want to be able to find all WASM proposals without having to (potentially in multiple places) parse the Markdown files myself — the webpage itself is actually not really my main concern, the JSON file itself is.

The current (main) features.json seems to include all active proposals, plus inactive-but-implemented ones. The fixup commit I've just pushed filters the two places that render things based on features.json down to the that.

This branch has not been deployed

No deployments
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 this pull request may close these issues.

3 participants