Skip to content

web-features bot improvements for interop 2027 - #1318

Merged
jgraham merged 9 commits into
web-platform-tests:mainfrom
captainbrosset:web-features-bot-2027
Sep 3, 2026
Merged

web-features bot improvements for interop 2027#1318
jgraham merged 9 commits into
web-platform-tests:mainfrom
captainbrosset:web-features-bot-2027

Conversation

@captainbrosset

@captainbrosset captainbrosset commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Fixes #1317.

  • Refreshes individual proposals when issues are opened, edited, labeled, or reopened.
  • Supports refreshing all open focus-area proposals manually or after updating the web-features dependency.
  • Updates generated comments to use the latest explorer data, including developer signals, and more complete standards positions coverage.
  • Handles renamed and split web-feature IDs.
  • Some stricter validation and code cleanups.
  • Upgrades web-features from 2.48.0 to 3.34.2.
  • Adds some simple automated tests which we can improve later.
  • Modernizes the workflow actions, permissions, dependency caching, etc.

Sorry that's a large PR with a lot of code changes. Hopefully, the summary above is helpful.

For what it's worth, the same code also lives at https://github.com/captainbrosset/interop-proposals-bot and I tested it by opening a few issues on that repo. If you want to test the new action/script more, feel free to open and edit issues on my personal repo.

Comment thread .github/workflows/identify-web-features.yml
process-issue:
if: github.event_name == 'issues'
runs-on: ubuntu-latest
concurrency:

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.

How many jobs might this trigger if we close issues en masse or add a lot of labels? GitHub Actions should just queue everything to eventually run, but if we know it'll be hundreds of jobs at the same time, that seems like it might break?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is really here to avoid the case where the same issue is updated multiple times while a job for that issue is already running. With this concurrency block, the next jobs will be queued instead of running in parallel.

If I'm editing the opening comment of an issue twice in less time than it takes the job to run, then I don't run the 2 jobs at the same time, potentially ending up with the wrong content if the second ran faster than the first.

That said, I'm realizing that cancel-in-progress:true would make more sense. We only care about the final state of the issue, not the in-between edits. So a later job on an issue should be allowed to cancel an earlier job. I'll change this.

As for a batch editing of hundreds of issues, I'm not seeing an issue here. We'll let GitHub queue up all the jobs.

Comment thread .github/workflows/identify-web-features.yml Outdated

@jgraham jgraham left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Basically OK, although I'm quite confused with the comment creation flow.

In the future it would be really useful to separate out the changes into more commits; reviewing a mixture of minor formatting changes and multiple different feature changes is much harder.

Comment thread .github/workflows/identify-web-features.yml
Comment thread scripts/package.json
"devDependencies": {
"octokit": "^5.0.3",
"web-features": "^2.48.0",
"web-features": "^3.34.2",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we also configure dependabot to automatically update this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes we should. Not sure exactly how this works, but I can look into it next.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

#1325 should be about right.

Comment thread scripts/identify-web-features.js Outdated
Comment thread scripts/identify-web-features.js Outdated
Comment thread scripts/identify-web-features.js
Comment thread scripts/identify-web-features.js Outdated
Comment thread scripts/identify-web-features.js
@captainbrosset

Copy link
Copy Markdown
Contributor Author

In the future it would be really useful to separate out the changes into more commits

Apologies for the messy initial changes. I've addressed review comments in a series of logical commits now.

# The process-issue job runs when a single issue is opened, edited, reopened or labeled.
process-issue:
if: >-
github.event_name == 'issues' &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is fine, but one could also use a condition like contains(github.event.issue.labels.*.name, 'focus-area-proposal') to only select focus area proposal issues irrespective of the trigger.

@jgraham
jgraham merged commit fd104c5 into web-platform-tests:main Sep 3, 2026
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.

Improve the web-features finder bot for new proposals

3 participants