Skip to content

chore: add initial ecosystem plugin tests workflow#19643

Merged
lumirlumir merged 58 commits into
eslint:mainfrom
JoshuaKGoldberg:ecosystem-tests
Apr 27, 2026
Merged

chore: add initial ecosystem plugin tests workflow#19643
lumirlumir merged 58 commits into
eslint:mainfrom
JoshuaKGoldberg:ecosystem-tests

Conversation

@JoshuaKGoldberg

@JoshuaKGoldberg JoshuaKGoldberg commented Apr 21, 2025

Copy link
Copy Markdown
Contributor

Prerequisites checklist

What is the purpose of this pull request? (put an "X" next to an item)

[ ] Documentation update
[ ] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[x] Other, please explain: internal CI change; implements eslint/rfcs#127

What changes did you make? (Give an overview)

Fixes #19139.

Adds an initial .github/workflows/ecosystem.yml and package script.

Is there anything you'd like reviewers to focus on?

@github-project-automation github-project-automation Bot moved this to Needs Triage in Triage Apr 21, 2025
@eslint-github-bot eslint-github-bot Bot added the chore This change is not user-facing label Apr 21, 2025
@netlify

netlify Bot commented Apr 21, 2025

Copy link
Copy Markdown

Deploy Preview for docs-eslint canceled.

Name Link
🔨 Latest commit 78095d7
🔍 Latest deploy log https://app.netlify.com/projects/docs-eslint/deploys/69da7814a3e73300089b8610

Comment thread tools/test-ecosystem.mjs Fixed
@JoshuaKGoldberg JoshuaKGoldberg force-pushed the ecosystem-tests branch 5 times, most recently from 578c12d to baa84df Compare April 22, 2025 15:35
@JoshuaKGoldberg JoshuaKGoldberg marked this pull request as ready for review April 22, 2025 15:48
@JoshuaKGoldberg JoshuaKGoldberg requested a review from a team as a code owner April 22, 2025 15:48
Comment thread .github/workflows/ecosystem.yml Outdated
Comment thread .github/workflows/ecosystem.yml Outdated
Comment thread package.json Outdated
Comment thread .github/workflows/ecosystem.yml
Comment thread tools/test-ecosystem.mjs Outdated
@mdjermanovic mdjermanovic moved this from Needs Triage to Implementing in Triage Apr 22, 2025
@mdjermanovic mdjermanovic added the accepted There is consensus among the team that this change meets the criteria for inclusion label Apr 22, 2025

@nzakas nzakas 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.

Thanks for getting started on this. Left some comments throughout.

Comment thread tools/test-ecosystem.mjs Outdated
Comment thread tools/test-ecosystem.mjs Outdated
Comment thread tools/test-ecosystem.mjs Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Hi everyone, it looks like we lost track of this pull request. Please review and see what the next steps are. This pull request will auto-close in 7 days without an update.

@github-actions github-actions Bot added the Stale label May 10, 2025
Comment thread tools/test-ecosystem.mjs Outdated
Comment thread tools/test-ecosystem.mjs Outdated
@github-actions github-actions Bot removed the Stale label May 11, 2025
Co-authored-by: Nicholas C. Zakas <nicholas@humanwhocodes.com>
@JoshuaKGoldberg

Copy link
Copy Markdown
Contributor Author

Todo for self: noting https://github.com/eslint/eslint/pull/19643/files#r2068835929 at root level so I don't forget to file the issue.

@JoshuaKGoldberg JoshuaKGoldberg requested a review from fisker May 19, 2025 19:23
@JoshuaKGoldberg

JoshuaKGoldberg commented Apr 6, 2026

Copy link
Copy Markdown
Contributor Author

Oh, right! Sorry - after all the back-and-forth around direction I'd lost track of this. I'll get it up-to-date, address feedback, and re-request review once it's ready again.

Edit: I remember now, I'd been waiting for resolution on #19643 (comment) too. I'll just resolve that thread since it's been a while.

@JoshuaKGoldberg

Copy link
Copy Markdown
Contributor Author

Well, since last review activity, several packages have started failing. Specifically:

  • @eslint/markdown
  • @typescript-eslint/typescript-eslint

These still pass:

  • @eslint/css
  • @eslint/json
  • @eslint-community/eslint-plugin-eslint-comments
  • eslint-plugin-unicorn
  • eslint-plugin-vue

Proposal: would the team be ok with me removing the currently-failing packages, with followup issues to add them back in? Failures keep popping up between long review periods and it's slow wack-a-mole fixing them.

@JoshuaKGoldberg JoshuaKGoldberg requested a review from fasttime April 7, 2026 01:19
@fasttime

fasttime commented Apr 7, 2026

Copy link
Copy Markdown
Member

Well, since last review activity, several packages have started failing. Specifically:

* `@eslint/markdown`
* `@typescript-eslint/typescript-eslint`

These still pass:

* `@eslint/css`
* `@eslint/json`
* `@eslint-community/eslint-plugin-eslint-comments`
* `eslint-plugin-unicorn`
* `eslint-plugin-vue`

Proposal: would the team be ok with me removing the currently-failing packages, with followup issues to add them back in? Failures keep popping up between long review periods and it's slow wack-a-mole fixing them.

I think that's perfectly okay 👍 For @eslint/markdown, the problem seems to be just a missing "types": [] entry in tsconfig.json, which causes TypeScript to use the outdated @types/eslint-scope package in the node_modules of the eslnt repo. For @typescript-eslint/typescript-eslint, we'd need to take a closer look (I suspect that yarn and npm don't fit well together), but that could be done later.

runCommand(["git", "checkout", pluginSettings.commit]);

// 3. Install the plugin's dependencies
runCommand(["pwd"]);

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.

I'm testing on Windows and this doesn't seem to work because, in PowerShell pwd is a cmdlet alias rather than an executable. This is what I'm seeing:

Testing @eslint/css in ...\eslint\ecosystem\eslint-css
[@eslint/css] git clone https://github.com/eslint/css ...\eslint\ecosystem\eslint-css --depth 1
[@eslint/css] git fetch origin 5c1c6251a359d26d117171de3a1e258e2c15ded9
[@eslint/css] git checkout 5c1c6251a359d26d117171de3a1e258e2c15ded9
[@eslint/css] pwd
Failed: @eslint/css

Errors occurred while testing plugins:

@eslint/css: Error: spawnSync pwd ENOENT
    at notFoundError (...\eslint\node_modules\cross-spawn\lib\enoent.js:6:26)
    at Object.verifyENOENTSync (...\eslint\node_modules\cross-spawn\lib\enoent.js:48:16)
    at spawn.spawnSync [as sync] (...\eslint\node_modules\cross-spawn\index.js:29:43)
    at runCommand (file:///.../eslint/tools/test-ecosystem/index.mjs:62:24)
    at runTests (file:///.../eslint/tools/test-ecosystem/index.mjs:90:2)
    at async file:///.../eslint/tools/test-ecosystem/index.mjs:127:3

Not a blocker since the ecosystem tests run on Unix in CI, but it would still be nice to fix this for Windows compatibility if possible.

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.

Oh wait, cross-spawn uses the old cmd.exe shell on Windows, so instead of pwd, this could be just cd without arguments to print the current directory.

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.

I would definitely like to leave any Windows-specific work as a followup. 🫠

Comment thread package.json Outdated
Comment thread knip.jsonc Outdated
@JoshuaKGoldberg JoshuaKGoldberg requested a review from fasttime April 8, 2026 13:06
Comment thread .github/workflows/ecosystem-updates.yml Outdated
Comment thread tools/test-ecosystem/index.mjs Outdated
Comment thread tools/test-ecosystem/index.mjs Outdated
Comment thread .github/workflows/ecosystem-tests.yml Outdated
Comment thread .github/workflows/ecosystem-updates.yml Outdated
Comment thread .github/workflows/ecosystem-updates.yml Outdated
Comment thread .gitignore
JoshuaKGoldberg and others added 3 commits April 11, 2026 12:32
Co-authored-by: Francesco Trotta <github@fasttime.org>
Co-authored-by: 루밀LuMir <rpfos@naver.com>

@fasttime fasttime 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.

LGTM, thanks! Leaving open for @lumirlumir to verify.

@lumirlumir lumirlumir 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.

I'm sorry for the delay. Everything looks good to me.

Thank you for your time and effort on this PR!

@lumirlumir lumirlumir merged commit 77add7f into eslint:main Apr 27, 2026
38 checks passed
@github-project-automation github-project-automation Bot moved this from Second Review Needed to Complete in Triage Apr 27, 2026
@JoshuaKGoldberg JoshuaKGoldberg deleted the ecosystem-tests branch April 27, 2026 12:17
@JoshuaKGoldberg

Copy link
Copy Markdown
Contributor Author

Whoop! Thanks everyone for reviewing - this was a lot of back-and-forth, and I'm really excited to see it finally land!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

accepted There is consensus among the team that this change meets the criteria for inclusion chore This change is not user-facing github actions

Projects

Status: Complete

Development

Successfully merging this pull request may close these issues.

Repo: add end-to-end/integration tests for popular 3rd party plugins

9 participants