Skip to content

Commit 7d174a7

Browse files
github-actions[bot]ESLint Bot
andauthored
Add TSC meeting 12-June-2025 transcript (#592)
Co-authored-by: ESLint Bot <eslint[bot]@users.noreply.github.com>
1 parent 160d133 commit 7d174a7

File tree

1 file changed

+271
-0
lines changed

1 file changed

+271
-0
lines changed

notes/2025/2025-06-12-transcript.md

Lines changed: 271 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,271 @@
1+
# 06/12/2025 ESLint TSC Meeting Transcript
2+
3+
**mdjermanovic:** Hi!
4+
5+
**nzakas:** Howdy!
6+
7+
**fasttime:** Hi!
8+
9+
**nzakas:** Pulling up the notes from last meeting
10+
11+
**nzakas:** Okay, doesn't look like we had any action items to follow up on
12+
13+
**nzakas:** Let's start with statuses. I've continued working on fixing CSSTree types, added support for math functions to CSSTree, and added support for nested element selector rules in CSSTree.
14+
15+
**mdjermanovic:** I've been working mostly on `@eslint/config-array`: I fixed two bugs, and still working on the `basePath` feature. It should be ready for review early next week.
16+
* 👍 @nzakas, @fasttime
17+
18+
**fasttime:** I've been reviewing issues and PRs and I continued working on the multithread linting prototype.
19+
20+
**nzakas:** RFC Duty schedule:
21+
This week - @nzakas
22+
June 16 - @mdjermanovic
23+
June 23 - @fasttime
24+
* 👍 @mdjermanovic, @fasttime
25+
26+
**nzakas:** And let's just check availability. I'll be around 2.5-3 hours eacy weekday.
27+
28+
**mdjermanovic:** I expect to be available around 2 hours each day
29+
30+
**fasttime:** I'm not sure yet, but I should be available at least 7-9 hours per week.
31+
32+
**nzakas:** Okay, I flagged one issue for today:
33+
https://github.com/eslint/eslint/issues/19834
34+
35+
**nzakas:** > **TSC Summary:** The issue is requesting an enhancement to the no-duplicate-imports rule to better support TypeScript syntax. The current rule flags an error when TypeScript type imports are used alongside regular imports from the same module. Currently, the rule reports an error when a file includes both a value import and a type import from the same module.
36+
>
37+
> **TSC Question:** Do we want to add the proposed option `allowSeparateTypeImports` that would allow separate import statements for types from the same module without triggering the "duplicate imports" rule error?
38+
39+
**mdjermanovic:** Generally makes sense to me. Just not sure how to treat imports such as `import { type foo } from "bar";` (type-only?) and mixed ones like `import { type foo, bar } from "baz";`
40+
41+
**mdjermanovic:** If there's a mixed one, then probably any other should be considered duplicate.
42+
43+
**fasttime:** Yeah, today TypeScript allows mixed imports of types and values, but in older versions (4.5 I think) this was not possible, so that option was necessary.
44+
45+
**nzakas:** I think we are looking to distinguish between `import` and `import type`, specifically. If people are using `import { type foo }`, then I don't think the new option would cover that.
46+
47+
**mdjermanovic:** Okay, we could say that we are in favor of adding this option, and discuss these details on the issue before the implementation?
48+
49+
**fasttime:** Fine to me 👍
50+
51+
**nzakas:** For clarity: which details are you referring to?
52+
53+
**mdjermanovic:** Details about how mixed imports of types and values should be treated.
54+
55+
**mdjermanovic:** And imports that don't use `import type` syntax but `import { type ..., type... }`
56+
57+
**nzakas:** I think maybe our wires are a bit crossed. The proposal for `allowSeparateTypeImports` is just to allow `import` and `import type` for the same module. It doesn't affect anything else, nor do I think it should.
58+
59+
**mdjermanovic:** Maybe it will indeed be that simple, I'd just like to clarify what happens with mentioned examples.
60+
61+
**nzakas:** In the example you gave, it's the same behavior as there is today regardless of the new option's setting.
62+
63+
**nzakas:** Becaus they're both `import`, they're considered a duplicate and a violation is reported
64+
65+
**mdjermanovic:** So that it's clear why are, for example, `import { foo } from "mod"` and `import { type bar } from "mod"` reported as duplicates, whereas `import { foo } from "mod"` and `import type { bar } from "mod"` are not.
66+
67+
**nzakas:** It's a preference to use `import type {bar}` instead of `import { type bar }`. If people enable the option, they're saying they do not want the latter.
68+
69+
**mdjermanovic:** Okay, then makes sense to treat only `import type` as type import.
70+
* 👍 @nzakas
71+
72+
**nzakas:** We've resolved to accept the proposal for the `allowSeparateTypeImports` option to allow `import type` alongside `import` from the same module.
73+
* 👍 @mdjermanovic, @fasttime
74+
75+
**nzakas:** That's the only issue I have flagged. Any other issues or PRs that need discussion?
76+
77+
**fasttime:** Nothing from my side.
78+
79+
**mdjermanovic:** Maybe we could discuss questions raised here now: https://github.com/eslint/eslint/pull/19843#discussion_r2142999877
80+
81+
**mdjermanovic:** Now it looks to me like a breaking-ish change because `RuleEntry` will no longer make all `Options` optional in rule config entries
82+
83+
**nzakas:** Hmm, yeah, that's a problem.
84+
85+
**fasttime:** I didn't even know that rules can have mandatory options.
86+
87+
**mdjermanovic:** In theory, a rule can always require specifying some options, although I'm not sure if such rules exist (in the core certainly not)
88+
89+
**nzakas:** This is the new definition for `RuleConfig`:
90+
https://github.com/eslint/rewrite/blob/37e3e14499c1d42c0c420dfbabac3a10a9a82925/packages/core/src/types.ts#L680-L682
91+
92+
**nzakas:** Which doesn't match `RuleEntry`
93+
94+
**nzakas:** I think the larger question is if all rules options should be optional or not?
95+
96+
**mdjermanovic:** Yeah, that allows for configs such as `["error"]`, but not for configs such as `["error", "always"]` if the rule has > 1 options elements
97+
98+
**mdjermanovic:** That would probably makes the most sense, but we're not enforcing it currently.
99+
100+
**nzakas:** For clarity: it would make sense that all rules options are optional?
101+
102+
**mdjermanovic:** I think yes. But we don't know if that's the case with all plugin/custom rules that exist.
103+
104+
**nzakas:** Based on the current `RuleEntry` type, I don't think there's a way to make any rule options required?
105+
106+
**mdjermanovic:** I think it isn't by using that type, but that's beyond my knowlege of TypeScript
107+
108+
**fasttime:** Yes, currently all rule options would be typed as optional.
109+
110+
**nzakas:** I suppose in theory, `defaultOptions` means no rule options need to be required.
111+
112+
**mdjermanovic:** But I believe (would need to doublecheck) it is possible to enforce mandatory options in rule schemas, by specifying a full JSON schema with minItems > 0
113+
114+
**nzakas:** 🤔
115+
116+
**fasttime:** Maybe we could check that?
117+
118+
**nzakas:** Does someone want to take the action item to investigate and report back?
119+
120+
**mdjermanovic:** I can check that
121+
* 👍 @fasttime
122+
123+
**mdjermanovic:** And report on this thread: https://github.com/eslint/eslint/pull/19843#discussion_r2142999877
124+
* 👍 @nzakas
125+
126+
**nzakas:** I'll set both PRs to be a draft until we can resolve this.
127+
* 👍 @mdjermanovic
128+
129+
**fasttime:** Sounds good.
130+
131+
**nzakas:** Okay, anything else?
132+
133+
**mdjermanovic:** Nothing else from my side for today
134+
135+
**fasttime:** I also have nothing.
136+
137+
**nzakas:** Okay, let's do contributor pool for May
138+
139+
**nzakas:** https://github.com/issues?q=org%3Aeslint%20label%3A%22contributor%20pool%22%20merged%3A2025-05-01..2025-05-31
140+
141+
**nzakas:** There's A LOT
142+
* 🎉 @mdjermanovic
143+
144+
**nzakas:** I'm going to quickly drop this into AI to summarize since the GitHub search won't let me narrow down by authors (I reported this as a bug to GitHub)
145+
146+
**nzakas:** Damn, apparently this page is dynamically rendered so AI can't scrape them. ☹️ :
147+
148+
**fasttime:** Yes, you must be logged in to see it.
149+
150+
**nzakas:** Going to try copy-pasting
151+
152+
**nzakas:** Sethamus: 7 PRs
153+
154+
**nzakas:** thecalamity: 5 PRs
155+
156+
**nzakas:** Pixel998: 4 PRs
157+
158+
**nzakas:** SwetaTanwar: 2 PRs
159+
160+
**nzakas:** Everyone else has one.
161+
162+
**nzakas:** (I'll make a script to do this from now on)
163+
164+
**nzakas:** I'll let you guys suggest amounts for a change of pace. 🙂
165+
166+
**mdjermanovic:** I think Pixel998 had 4 PRs (there's also page 2)
167+
168+
**nzakas:** Oops yes. Missed that
169+
170+
**mdjermanovic:** Those 4PRs are 3 new rules in `@eslint/markdown` and a lot of work on blog post updated date
171+
172+
**mdjermanovic:** Maybe $800 ($200 each) ?
173+
* 👍 @nzakas, @fasttime
174+
175+
**mdjermanovic:** I'm not sure what happend, but there's only one page now
176+
177+
**nzakas:** I removed a couple PRs that were from lumirlumir
178+
* 👍 @mdjermanovic, @fasttime
179+
180+
**mdjermanovic:** sethamus I think 6 PRs are $100 each. Not sure about this one: https://github.com/eslint/eslint/pull/19697
181+
182+
**fasttime:** Other sethamus' PRs are 2-5 files changed. This one has 7.
183+
184+
**nzakas:** This one also took a while and a lot of feedback was incorporated.
185+
186+
**fasttime:** Maybe $1000 for everything?
187+
* 👍 @nzakas, @mdjermanovic
188+
189+
**mdjermanovic:** thecalamity I think 5 x $100 for 5 PRs, and $200 for a new rule, total $600
190+
191+
**fasttime:** thecalamity has one new rule, the other PRs are smaller.
192+
193+
**mdjermanovic:** Sorry, they have 6 PRs in total, so that would be $700
194+
195+
**mdjermanovic:** So, $700 for thecalamiity ?
196+
* 👍 @nzakas, @fasttime
197+
198+
**mdjermanovic:** SwetaTanwar I think $200 for the report issue button, and $100 for the other PR, so $300 in total?
199+
* 👍 @nzakas, @fasttime
200+
201+
**mdjermanovic:** xbinaryx $100 for the bot update
202+
* 👍 @nzakas, @fasttime
203+
204+
**mdjermanovic:** azat-io $100 for a bug fix
205+
206+
**fasttime:** For jtbandes also at least $200 for the new rule?
207+
* 👍 @nzakas, @mdjermanovic
208+
209+
**mdjermanovic:** Yes, I made a mistake.
210+
211+
**fasttime:** So $100 for azat-io and $200 for jtbandes?
212+
* 👍 @nzakas, @mdjermanovic
213+
214+
**mdjermanovic:** jokeyrhyme $100 for a bug fix.
215+
* 👍 @nzakas, @fasttime
216+
217+
**mdjermanovic:** yeonjuan I'm not sure: https://github.com/eslint/code-explorer/pull/99
218+
219+
**fasttime:** Maybe $200? It took only two days but it's a big PR.
220+
* 👍 @nzakas, @mdjermanovic
221+
222+
**mdjermanovic:** I think that's all?
223+
224+
**nzakas:** Looks like it.
225+
226+
**fasttime:** Yes.
227+
228+
**nzakas:** If we're going to get this many contributors, we really need some automation around this process. 😄 Good problem to have.
229+
230+
**nzakas:** I'll take the action to let them know.
231+
* 👍 @sam3k_, @mdjermanovic, @fasttime
232+
233+
**mdjermanovic:** If it would be at least possible to sort by authors, but it doesn't seem that option is supported
234+
235+
**nzakas:** Yeah, I think I'll just write a script to do it. Easy enough to call the GitHub API.
236+
237+
**nzakas:** Let's talk about the release.
238+
239+
**mdjermanovic:** I can tomorrow
240+
* 👍 @nzakas
241+
242+
**fasttime:** Thanks!
243+
244+
**mdjermanovic:** @fasttime if you have time, there are two PRs needing a second review
245+
246+
**mdjermanovic:** https://github.com/eslint/eslint/pull/19845
247+
248+
**mdjermanovic:** https://github.com/eslint/eslint/pull/19832
249+
250+
**fasttime:** Yes, I will take a look tomorrow morning.
251+
252+
**mdjermanovic:** Thanks!
253+
254+
**mdjermanovic:** That would be just `@eslint/js` and `eslint` I think.
255+
* 👍 @nzakas, @fasttime
256+
257+
**mdjermanovic:** I don't see any other PRs that are near to ready to merge
258+
259+
**nzakas:** Nope. Lots of drafts.
260+
261+
**mdjermanovic:** Okay, I think that's all regarding the tomorrow's release
262+
263+
**fasttime:** I don't have anything else to discuss.
264+
265+
**nzakas:** Okay, then I think that's it for today.
266+
267+
**nzakas:** Thanks everyone (and thanks @sam3k) for the notes
268+
269+
**mdjermanovic:** Thanks! 👋
270+
271+
**fasttime:** Thanks! Take care 👋

0 commit comments

Comments
 (0)