Skip to content

Commit 95d622a

Browse files
authored
docs: Add 2026-04-30 meeting notes (#699)
1 parent d99b343 commit 95d622a

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

notes/2026/2026-04-30.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# 2026-04-30 ESLint TSC Meeting Notes
2+
3+
## Transcript
4+
5+
[`2026-04-30-transcript.md`](2026-04-30-transcript.md)
6+
7+
## Attending
8+
9+
- Nicholas C. Zakas (@nzakas) - TSC
10+
- Milos Djermanovic (@mdjermanovic) - TSC
11+
- Francesco Trotta (@fasttime) - TSC
12+
13+
@nzakas moderated, and @sam3k took notes.
14+
15+
## Topics
16+
17+
### Follow-up from Previous Meeting
18+
19+
**TSC Summary:** No follow-up items to review from the previous meeting.
20+
21+
### Statuses
22+
23+
* **@nzakas:** Health continued to keep him from contributing in any meaningful way since the last meeting.
24+
* **@mdjermanovic:** Fixed some ASI-related bugs in core rules and has been working on upgrading `file-entry-cache` to v11.
25+
* **@fasttime:** Made progress on the `--base-path` RFC and added tests for older TypeScript versions to a few repos.
26+
27+
### Availability Next Two Weeks
28+
29+
* **@nzakas:** Can't be sure given his health; best to assume he won't be around consistently until things resolve.
30+
* **@mdjermanovic:** Hopes to be able to work 1-1.5 hours each day.
31+
* **@fasttime:** Hopes to work 9-12 hours per week the next couple of weeks.
32+
33+
### RFC Duty Update
34+
35+
* This week: @mdjermanovic
36+
* May 4: @nzakas
37+
* May 11: @fasttime
38+
39+
### [Bug: Config loading crashes when `require.cache` is unavailable](https://github.com/eslint/eslint/issues/20813)
40+
41+
**TSC Summary:** After @fasttime's investigation, the crash turned out to be a bug in Yarn. The team discussed whether to wait for upstream fixes or land a guard in ESLint.
42+
43+
**Discussion Points:**
44+
- @fasttime suggested waiting for the next Node.js 24 release to see if it fixes the problem before deciding how to proceed.
45+
- @nzakas felt the fix is low-risk and preferred landing it so users are unblocked rather than waiting on Yarn or Node.js.
46+
- A PR is already open: [PR #20812](https://github.com/eslint/eslint/pull/20812).
47+
48+
**Resolution:** The TSC agreed to move forward with [PR #20812](https://github.com/eslint/eslint/pull/20812) so users aren't blocked while Yarn/Node.js work on their own fixes.
49+
50+
### [fix: correctly identify file paths in `loadFormatter`](https://github.com/eslint/eslint/pull/20814)
51+
52+
**TSC Summary:** The PR author flagged that the change could break some existing usage and asked whether it should be treated as a breaking change for v11.
53+
54+
**Discussion Points:**
55+
- @nzakas: if any existing use cases stop working, the change should wait until v11.
56+
- @fasttime agreed that's the safer route.
57+
58+
**Resolution:** The TSC agreed this is a breaking change and should be held until v11.
59+
60+
### [Change Request: Checking `meta.deprecated` schema in rule tester](https://github.com/eslint/eslint/issues/20603)
61+
62+
**TSC Summary:** The team discussed whether and how invalid `meta.deprecated` values in rules should be handled. (Noted that "tsc agenda" is for meeting discussion and "tsc waiting" is for offline resolution; this one was picked up since the team had time.)
63+
64+
**Discussion Points:**
65+
- @nzakas: because `meta.deprecated` doesn't generally affect runtime behavior, runtime validation isn't appropriate; `RuleTester` is a better place for this. By contrast, `meta.languages` is validated at runtime because it does affect runtime behavior.
66+
- @nzakas suggested this is a good use case for the TypeScript `JSRuleDefinition` type.
67+
- @mdjermanovic noted that invalid values can in fact crash ESLint at runtime — specifically, if `meta.deprecated.replacedBy` exists but isn't an array, ESLint will crash (see [eslint.js#L148](https://github.com/eslint/eslint/blob/3ffb14ea517de750ed1181579ef844af342e4096/lib/eslint/eslint.js#L148)). This was previously hit by a rule in `eslint-plugin-eslint-comments` ([fix commit](https://github.com/eslint-community/eslint-plugin-eslint-comments/commit/de049807e525ac3e2d164c8873f9035b08eb23a6)).
68+
- @fasttime confirmed types should already catch incorrect values during development, but `RuleTester` currently has no validation.
69+
- The team aligned on a two-part approach: at runtime, guard against non-array `replacedBy` (so ESLint doesn't crash) as a regular fix; in `RuleTester`, add comprehensive validation of `meta.deprecated` (a breaking change).
70+
- On RFC necessity: @nzakas didn't feel it warranted an RFC but didn't feel strongly. @mdjermanovic was slightly in favor; @fasttime deferred to @mdjermanovic. The team agreed to do an RFC, expecting details around invalid properties, URLs, etc.
71+
72+
**Resolution:** The TSC agreed to:
73+
- Add a runtime guard so ESLint doesn't crash when `meta.deprecated.replacedBy` isn't an array (regular fix).
74+
- Add comprehensive `meta.deprecated` validation to `RuleTester` (breaking change), driven by an RFC.
75+
76+
### Scheduled Release for May 1st, 2026
77+
78+
**Packages to Release:**
79+
- `eslint` (no pending releases for ESLint dependencies; just the `eslint` package).
80+
81+
**Action Items:**
82+
- @mdjermanovic will do the release on May 1st.
83+
- @mdjermanovic will re-check [PR #20812](https://github.com/eslint/eslint/pull/20812) before the release; the remaining suggestion is minor (test-related). @fasttime will also take a look.

0 commit comments

Comments
 (0)