Skip to content

Commit d51068d

Browse files
github-actions[bot]ESLint Bot
and
ESLint Bot
authored
Add TSC meeting 20-February-2025 transcript (#568)
Co-authored-by: ESLint Bot <eslint[bot]@users.noreply.github.com>
1 parent 28d690b commit d51068d

File tree

1 file changed

+178
-0
lines changed

1 file changed

+178
-0
lines changed

notes/2025/2025-02-20-transcript.md

+178
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
# 02/20/2025 ESLint TSC Meeting Transcript
2+
3+
**nzakas:** Howdy!
4+
5+
**mdjermanovic:** Hi!
6+
7+
**fasttime:** Hi!
8+
9+
**nzakas:** Looking over last meeting's action items and doesn't look like there were any
10+
11+
**nzakas:** So let's start with statuses. I've been working on the CSS plugin, the `defineConfig()` helper, and various publishing improvements in `eslint/rewrite`.
12+
13+
**nzakas:** Oh, and added JSX support to eslint-scope
14+
15+
**mdjermanovic:** I was mostly reviewing PRs.
16+
17+
**fasttime:** I was also mostly reviewing PRs and worked on the fix for the retry utility
18+
19+
**nzakas:** RFC Duty:
20+
This week - @fasttime
21+
Feb 24 - @nzakas
22+
Mar 3 - @mdjermanovic
23+
* 👍 @mdjermanovic, @fasttime
24+
25+
**nzakas:** Okay, let's dig right in.
26+
27+
**nzakas:** First item: https://github.com/eslint/eslint/issues/19173
28+
29+
**nzakas:** > **TSC Summary:** In this issue, we agreed to start making some core rules TypeScript syntax-aware.
30+
>
31+
> **TSC Question:** Should we add something into the rule `meta` to reflect this? If so, what should it be? And should we take into account that rules may be aware of other languages and/or types as well?
32+
33+
**mdjermanovic:** What would be the new field used for?
34+
35+
**nzakas:** I was thinking we could display a TypeScript logo on the rule page to indicate that it's TypeScript-aware
36+
37+
**nzakas:** Kind of like npm does when the package has types
38+
39+
**mdjermanovic:** I'm not sure if it would be very useful, many core rules already just work with TypeScript syntax
40+
41+
**mdjermanovic:** Although they're not checking anything TS-specific
42+
43+
**nzakas:** Right, that's the difference here.
44+
45+
**nzakas:** I think this could also be useful for maintenance purposes, knowing which rules we've specifically updated for TypeScript and which we haven't.
46+
47+
**mdjermanovic:** Yeah, but what are the benefits of knowing that rule checks TS-specific syntax for end users?
48+
49+
**mdjermanovic:** Ah, if it's only for us then it makes sense, though it might be better to put it in meta.docs then.
50+
51+
**nzakas:** I think for end-users, being able to say "you don't have to use a typescript-eslint rule for this" may be beneficial.
52+
53+
**mdjermanovic:** Yeah, but we should then add the same field to all rules that work well with ts code
54+
55+
**nzakas:** Although, the logo on the rule docs might ultimately be more useful for us to be able to quickly verify if the rule should be working with TypeScript-specific syntax.
56+
57+
**nzakas:** I know I frequently look up rule docs when an issue mentions one to check if it's frozen, deprecated, etc.
58+
59+
**nzakas:** I think adding to `meta.docs` is the correct location regardless
60+
61+
**mdjermanovic:** What I'm trying to say is that for users it's more important whether the rule can be used with TS code than whether it specifically checks TS AST
62+
63+
**nzakas:** I agree
64+
65+
**mdjermanovic:** And that's I believe already maintained in typescript-eslint
66+
67+
**nzakas:** "that" being which core rules work with TypeScript and which don't?
68+
69+
**mdjermanovic:** Yes, rules that don't work have replacements
70+
71+
**nzakas:** Right.
72+
73+
**nzakas:** So it sounds like we're generally in favor of adding something into `meta.docs`?
74+
75+
**mdjermanovic:** I'm in favor for maintenance purpose, but I'm not sure if we should display it in the rule docs
76+
77+
**mdjermanovic:** Unless we mark all rules that work well with TS (i.e., those that don't have replacements in typescript-eslint)
78+
79+
**nzakas:** We can take that as a separate decision later. No need to bundle the adding of meta data with displaying it.
80+
81+
**mdjermanovic:** Okay, I agree with adding a new field to `meta.docs`
82+
83+
**fasttime:** Sounds good to add a new internal field to `meta.docs`
84+
85+
**nzakas:** I was thinking maybe we should add two new fields so that it works with all languages.
86+
87+
**nzakas:** Maybe `meta.docs.language = "javascript"` and `meta.docs.dialects = ["javascript", "typescript"]`
88+
89+
**nzakas:** (or some such thing)
90+
91+
**nzakas:** So then the Markdown rules would be `meta.docs.language = "markdown"` and `meta.docs.dialects = ["commonmark", "gfm", "mdx"]`, as an example.
92+
93+
**fasttime:** Could `meta.docs.language` be used to check if someone is using a rule with the wrong parser?
94+
95+
**nzakas:** Potentially, but I think that would require the parser to declare its language as well.
96+
97+
**fasttime:** I mean, if the parser would also provide a `language` field that matches the rule's
98+
99+
**nzakas:** Although i think it would be on the `Language` object rather than the parser
100+
101+
**fasttime:** Yeah, exactly. When I saw the comment on GitHub this was first thought, because sometimes users mix up things in their config when they try to lint multiple languages.
102+
103+
**nzakas:** Yeah, we could potentially then just disable any rules that where `language` doesn't match, but then that should be `meta.language` rather than `meta.docs.language` because it affects functionality.
104+
105+
**mdjermanovic:** Yes, if it would be used to change runtime behavior then it should be directly in `meta` rather than `meta.docs`
106+
* 👍 @fasttime
107+
108+
**nzakas:** And what about `dialects`?
109+
110+
**nzakas:** because that's really where we get the TypeScript info
111+
112+
**fasttime:** No objections from my side.
113+
114+
**mdjermanovic:** Yeah, both should be at the same level
115+
116+
**nzakas:** Okay, it looks like we've agreed to add `meta.language` and `meta.dialects`, starting with rules that are TypeScript-enabled. We can revisit discussions around how to use that data at a later time.
117+
* 👍 @mdjermanovic, @fasttime
118+
119+
**nzakas:** Next item:
120+
121+
**nzakas:** > Agenda item: While CSSTree is an excellent parser, it appears to be maintained by just one person and the turnaround time on fixes is very long. Should we fork CSSTree and use that for `@eslint/css` by default? The intention is to continue to push on CSSTree to implement the changes we need by submitting PRs back upstream. Ideally, most of these changes would be transparent to rules and when they're not, hopefully we can get some feedback on proposed API changes.
122+
123+
**fasttime:** Sounds good to me.
124+
125+
**mdjermanovic:** Sounds good to me too
126+
127+
**nzakas:** Okay, we've decided to create a fork of CSSTree (`@eslint/css-tree`). I'll work on getting that set up some time in the next week.
128+
* 👍 @mdjermanovic
129+
130+
**fasttime:** Thanks!
131+
132+
**nzakas:** That's all the agenda items. Is there anything else anyone would like to discuss?
133+
134+
**mdjermanovic:** Nothing in particular from my side
135+
136+
**fasttime:** Nothing from me, too.
137+
138+
**nzakas:** Okay, then let's talk about the release
139+
140+
**fasttime:** I can do it.
141+
142+
**nzakas:** Thanks!
143+
144+
**mdjermanovic:** Thanks!
145+
146+
**nzakas:** There are a couple of types-related changes I'd like to get in, if possible
147+
148+
**nzakas:** https://github.com/eslint/rewrite/pull/155
149+
https://github.com/eslint/eslintrc/pull/179
150+
151+
**nzakas:** I'll be working on those after this meeting
152+
153+
**fasttime:** Thanks, I left some comments on both.
154+
* 👍 @nzakas
155+
156+
**nzakas:** If we can publish a new `@eslint/core`, then I'll also update `@eslint/json` before releasing the next version
157+
158+
**fasttime:** Then maybe we could release `@eslint/core` earlier?
159+
160+
**nzakas:** Yes. I think once that PR is merged we can just release it. Then it'll be ready for the other releases
161+
162+
**fasttime:** Fine 👍
163+
164+
**nzakas:** Is this one close? https://github.com/eslint/eslint/pull/19238
165+
166+
**mdjermanovic:** Very close, I'll check tomorrow
167+
* 👍 @nzakas, @fasttime
168+
169+
**mdjermanovic:** If it isn't ready for tomorrow's release, we should merge it as soon as possible after we close the release due to the number of files and possible merge conflicts
170+
* 👍 @fasttime
171+
172+
**nzakas:** Agreed
173+
174+
**nzakas:** Okay, I think that's all we have for today. Thanks everyone! (And thanks @sam3k_ for the notes)
175+
176+
**mdjermanovic:** Thanks! 👋
177+
178+
**fasttime:** Thanks! Take care 👋

0 commit comments

Comments
 (0)