|
| 1 | +# 07/10/2025 ESLint TSC Meeting Transcript |
| 2 | + |
| 3 | +**nzakas:** Howdy! |
| 4 | + |
| 5 | +**fasttime:** Hi! |
| 6 | + |
| 7 | +**nzakas:** It'll just be you and I today as @mdjermanovic is away. |
| 8 | + |
| 9 | +**fasttime:** Yes, nice for him 🙂 |
| 10 | + |
| 11 | +**nzakas:** Pulling up the notes from last time |
| 12 | + |
| 13 | +**nzakas:** I was to follow up on moving more types into `@eslint/core`, and I opened that PR yesterday: |
| 14 | +https://github.com/eslint/rewrite/pull/237 |
| 15 | + * 👍 @fasttime |
| 16 | + |
| 17 | +**nzakas:** @mdjermanovic updated the `unstable_config_lookup_from_file` flag to `v10_config_lookup_from_file`. |
| 18 | + * 👍 @fasttime |
| 19 | + |
| 20 | +**nzakas:** Let's do statuses. I've been working on a couple of RFCs (CSS variable tracking and rule language metadata), adding token methods to `JSONSourceCode`, and a bunch of build-related stuff (contributor pool report generation, automated baseline data). |
| 21 | + |
| 22 | +**fasttime:** I've been working on switching performance tests to hyperfine, updating the multithread linting RFC, and reviewing issues and PRs. |
| 23 | + |
| 24 | +**nzakas:** RFC Duty Update: |
| 25 | +This week - @nzakas |
| 26 | +July 14 - @fasttime |
| 27 | +July 21 - @mdjermanovic |
| 28 | + * 👍 @fasttime |
| 29 | + |
| 30 | +**fasttime:** I don't know actually if it's @mdjermanovic's turn or mine next week |
| 31 | + |
| 32 | +**nzakas:** Oops, good catch. It should be yours. |
| 33 | + |
| 34 | +**nzakas:** Because I swapped with him because he's away this week. |
| 35 | + |
| 36 | +**fasttime:** Yeah, that's fine. |
| 37 | + |
| 38 | +**nzakas:** I flagged a couple things to talk about. |
| 39 | + |
| 40 | +**nzakas:** First one: https://github.com/eslint/rewrite/issues/234 |
| 41 | + |
| 42 | +**nzakas:** > **TSC Summary:** This issue reports that the internal type for rule.meta.docs.recommended in ESLint is too restrictive—it is typed as `boolean | undefined`, but some plugins (notably typescript-eslint) use other values (like strings or objects) for config generation. This causes TypeScript type errors when using `defineConfig()`, even though it works at runtime. |
| 43 | +> |
| 44 | +> **TSC Question:** What do we want to do here? Some options: |
| 45 | +> 1. Omit the `recommended` field from the type definition. |
| 46 | +> 2. Change its type to `unknown` (with a note that ESLint itself uses boolean). |
| 47 | +> 3. Use a union type to allow any value for `recommended` in configs. |
| 48 | +
|
| 49 | +**fasttime:** 1. will require both us and typescript-eslint to extend the base rule in order to define a `meta.docs.recommended` property. |
| 50 | + |
| 51 | +**fasttime:** 2. seems easier. |
| 52 | + |
| 53 | +**fasttime:** From my perspective, it's fine to be lenient in `meta.docs` types since plugins may use these differently than we do. |
| 54 | + |
| 55 | +**nzakas:** Shall we adopt option 2 then? Set to `unknown`? |
| 56 | + |
| 57 | +**fasttime:** Sounds good. |
| 58 | + |
| 59 | +**nzakas:** Okay, we've agreed to set the type of `meta.docs.recommended` to `unknown`. |
| 60 | + |
| 61 | +**nzakas:** I also wanted to check in on the multithread linting PR to see what the status is. Are there other changes you're planning or is it ready for review? |
| 62 | +https://github.com/eslint/eslint/pull/19794 |
| 63 | + |
| 64 | +**fasttime:** I have two points I would like to decide/work on before making this ready for review. |
| 65 | + |
| 66 | +**fasttime:** One is emitting warning when `concurrency` is used inappropriately (e.g. because there aren't many files). For this, I'll need to experiment a bit. |
| 67 | + |
| 68 | +**fasttime:** The other question is how to handle `concurrency=1`. I will post an updated description of the problem probably on the weekend and hopefully @mdjermanovic will be able to participate to the discussion. |
| 69 | + |
| 70 | +**nzakas:** Sounds good. The results are fantastic so excited to get it out there soon. 🙂 |
| 71 | + * 👍 @fasttime |
| 72 | + |
| 73 | +**nzakas:** Any other issues or PRs you'd like to discuss? |
| 74 | + |
| 75 | +**fasttime:** I noted this one for today: https://github.com/eslint/eslint/issues/18912 |
| 76 | + |
| 77 | +**fasttime:** It's been open for 9 months now without a PR. |
| 78 | + |
| 79 | +**nzakas:** Yes, Tanuj is assigned. I'll ping him again. |
| 80 | + |
| 81 | +**fasttime:** Thanks! I'd be interested to know how he's planning to approach that. |
| 82 | + |
| 83 | +**nzakas:** And just a reminder to add the "tsc agenda" label to anything you want to talk about. That way it comes up in the search I do at the start of the meeting. 🙂 |
| 84 | + |
| 85 | +**fasttime:** Okay, sorry. I'll do that next time. |
| 86 | + * 👍 @nzakas |
| 87 | + |
| 88 | +**nzakas:** Anything else? |
| 89 | + |
| 90 | +**fasttime:** Nothing else from my side. |
| 91 | + |
| 92 | +**nzakas:** Then let's do contributor pool, starring our new automated, no-AI report! |
| 93 | +https://github.com/eslint/tsc-meetings/blob/main/notes/2025/2025-07-01-contributor-pool.md |
| 94 | + * 🎉 @fasttime |
| 95 | + |
| 96 | +**nzakas:** xbinaryx had another busy month. Shall we say $1200 for everything? |
| 97 | + * 👍 @fasttime |
| 98 | + |
| 99 | +**nzakas:** What do you think for sethamus? |
| 100 | + |
| 101 | +**fasttime:** does $600 sound fair? Half of the amount for xbinaryx |
| 102 | + |
| 103 | +**nzakas:** Sounds good |
| 104 | + |
| 105 | +**nzakas:** For TKDev7, $300? |
| 106 | + * 👍 @fasttime |
| 107 | + |
| 108 | +**nzakas:** For Pixel 998, $200? Both PRs look fairly small. |
| 109 | + * 👍 @fasttime |
| 110 | + |
| 111 | +**nzakas:** For SwetaTanwar I'm thinking $500. The no-missing-link-fragments rule, in particular, took a bunch of work. |
| 112 | + |
| 113 | +**fasttime:** I see. Yes, $500 is okay. |
| 114 | + |
| 115 | +**nzakas:** For jgoz and fisker I think $100 each? |
| 116 | + * 👍 @fasttime |
| 117 | + |
| 118 | +**nzakas:** What do you think for the last two? |
| 119 | + |
| 120 | +**fasttime:** ota-meshi did a lot of work, so I don't know. Is $300 okay? |
| 121 | + * 👍 @nzakas |
| 122 | + |
| 123 | +**fasttime:** For remcohaszing maybe $200 as that PR took longer than usual to complete? |
| 124 | + * 👍 @nzakas |
| 125 | + |
| 126 | +**nzakas:** I'll let them know. |
| 127 | + |
| 128 | +**fasttime:** Thanks! |
| 129 | + |
| 130 | +**nzakas:** Let's talk about the release |
| 131 | + |
| 132 | +**fasttime:** I can do the release tomorrow. |
| 133 | + |
| 134 | +**nzakas:** Thanks! |
| 135 | + |
| 136 | +**fasttime:** I don't see anything in particular that should be merged by tomorrow. |
| 137 | + |
| 138 | +**nzakas:** Agreed, nothing pressing in the open PRs. |
| 139 | + |
| 140 | +**fasttime:** Alright, it will be just `@eslint/js` and `eslint`. |
| 141 | + * 👍 @nzakas |
| 142 | + |
| 143 | +**nzakas:** By the way, are you aware of the GitHub action to post across the various social media platforms that I set up? |
| 144 | + |
| 145 | +**fasttime:** Yes, I used it the last three times I did a release, it's working like a charm |
| 146 | + * 👍 @nzakas |
| 147 | + |
| 148 | +**fasttime:** I usually open the social media pages to see if the posts are showing up correctly and it always worked flawlessly. The `\n` replacement also works perfectly. |
| 149 | + * 🎉 @nzakas |
| 150 | + |
| 151 | +**nzakas:** Glad to hear it. |
| 152 | + |
| 153 | +**nzakas:** Okay, I think that's all for today. Thanks! |
| 154 | + |
| 155 | +**nzakas:** And thanks @sam3k_ for the notes. |
| 156 | + |
| 157 | +**fasttime:** Thanks! Bye 👋 |
0 commit comments