Skip to content

Commit

Permalink
Add TSC meeting 25-July-2024 transcript (#524)
Browse files Browse the repository at this point in the history
Co-authored-by: ESLint Bot <eslint[bot]@users.noreply.github.com>
  • Loading branch information
github-actions[bot] and ESLint Bot committed Aug 9, 2024
1 parent 215c2df commit 040c11a
Showing 1 changed file with 246 additions and 0 deletions.
246 changes: 246 additions & 0 deletions notes/2024/2024-07-25-transcript.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
# 07/25/2024 ESLint TSC Meeting Transcript

**nzakas:** Howdy!

**mdjermanovic:** Hi!

**fasttime:** Hi!

**nzakas:** Let me pull up notes from last meeting

**nzakas:** Looks like we didn't have any action items to follow up on.

**nzakas:** So let's do statuses. I'll start. I've been working on `@eslint/json`, `@eslint/markdown`, the new config loading RFC, and started work on the core rewrite RFC (but that will take a while).

**mdjermanovic:** I finished `eslint-plugin-react` support for ESLint v9, and was mostly reviewing PRs.
* 🎉 @nzakas, @ricecracker2234

**fasttime:** I finished updating `@types/eslint` to v9 and I've been also mostly busy reviewing issues and PRs.
* 🎉 @nzakas, @mdjermanovic

**nzakas:** It seems like v9 support is starting to settle down a bit now, which is a good thing.
* 👍 @mdjermanovic, @fasttime

**nzakas:** Looks like we don't have any issues or PRs flagged, but I did want to mention that this PR has been looking for another review for three weeks: https://github.com/eslint/eslintrc/pull/166

**nzakas:** So please take a look when you can.
* 👍 @mdjermanovic, @fasttime

**nzakas:** The Code Inspector code has been pushed to GitHub and we have a dev version running. There are definitely some rough edges still to sand down. Do either of you want to take lead on getting it ready for release?

**nzakas:** (I just can't take anything else on at this point.)

**mdjermanovic:** I'll be mostly offline from 1 to 20 August

**fasttime:** Then I'll take the code inspector.

**mdjermanovic:** Thanks!

**fasttime:** Probably I'll need some help because I'm not 100% familiar with the website code.

**nzakas:** @fasttime you also have https://github.com/eslint/rewrite/issues/64 on your todo list

**nzakas:** It's completely separate from the website

**nzakas:** And the good news is that no one is familiar with it because it's so new 🙂

**fasttime:** Yeah, I have a lots of todos, hopefully I'll find the time in the next weeks.
* 👍 @nzakas

**nzakas:** I'd say prioritize the Code Inspector work over the migrate-config work
* 👍 @fasttime

**fasttime:** I was actually hoping that someone else would take the issue about migrating config files, but it doesn't look like.

**nzakas:** So was I 🙂

**nzakas:** Unfortunately, if it's not one of us three, I just don't think it will get done.
* 👍 @fasttime

**nzakas:** Alas, that's what it means to be on the TSC: We get stuck with the hard, boring work. 😄
* 🤦‍♂️ @fasttime

**mdjermanovic:** Did we ask on the team channel if anyone would like to take the task?

**fasttime:** Yeah, we did.

**nzakas:** the migrate-config task?

**mdjermanovic:** Yes, that one

**nzakas:** Yes, I asked on 6/27
* 👍 @mdjermanovic

**nzakas:** Okay, since we don't have anything else flagged, I'd like to see if we can resolve the last question @mdjermanovic asked on https://github.com/eslint/rfcs/pull/120:

> with that setup, `eslint .` should not traverse into `subir`. But, with the same setup, I'm still not sure if `eslint subdir`, and especially `eslint subdir/foo.js` should result in files being ignored (as in the FAQ of this RFC document).
**nzakas:** I think the distinction you're making is between explicitly passing the directory/file vs. having it match a pattern, correct?

**mdjermanovic:** Mostly, but it could be with patterns too

**mdjermanovic:** eslintrc, I believe, starts looking for config files from the pattern "root"

**mdjermanovic:** (that's part of the pattern that represents a literal path, what `glob-parent` returns)

**fasttime:** So, the root is not the current directory, but depends on the pattern?

**mdjermanovic:** Yes

**nzakas:** Let me code up a quick example

**mdjermanovic:** I think ignoring files/directories is the only open question, everything else is pretty clear, so my suggestion is to leave that part of the design for discussing on the implementation

**fasttime:** Fine to me 👍

**nzakas:** So in eslintrc, the file is ignored in all cases: https://stackblitz.com/edit/stackblitz-starters-eeskfp?file=.eslintrc.json

**nzakas:** I think it makes sense that the same filepath should have the same result regardless of how it's arrived at

**fasttime:** In eslintrc, the root directory is indicated explicitly in the config file, similarly, for `.gitignore` the root is the directory that contains the `.git` subdirectory, but in the current config system we don't have that information.

**mdjermanovic:** There is no root `.eslintrc.json` in the stackblitz?

**nzakas:** I'm not sure why we're discussing root at all.

**nzakas:** If we agree that `eslint .` should ignore `subdir`, then that means we need to honor `./eslint.config.js`. And if we honor it, then it seems like we should honor it 100% of the time.

**fasttime:** I just thought that having a root directory would make the results predictable, regardless of what the cwd is, or what the patterns look like.

**mdjermanovic:** That's different from eslintrc, there might be a good reason why eslintrc was working the other way.

**nzakas:** What do you mean it's different that eslintrc? The Stackblitz I just shared shows that it's working the same?

**mdjermanovic:** I don't see two `.eslintrc` config files in the link you sent

**nzakas:** Hmmm

**nzakas:** Huh weird

**nzakas:** i see it on my screen, but when I reload, it's gone

**fasttime:** I agree. Just not sure where the lookup for the top `eslint.config.js` would have to start, but we can defer it to the implementation, as suggested.

**nzakas:** Okay, I have no idea why StackBlitz is refusing to save that file.

**nzakas:** I don't want to defer to implementation because I can't move forward without an answer to this question.

**fasttime:** I usually hit Ctrl+S to save all files

**nzakas:** Yeah, I've already tried saving multiple ways and the file just won't save

**nzakas:** But the bottom line is that in eslintrc, you always get the same result regardless of how you pass the file path on the command line, and I think flat config should do the same.

**nzakas:** So if `eslint .` ignores `subdir` then so should `eslint subdir` and `eslint subdir/foo.js`.

**nzakas:** If `eslint .` does not ignore `subdir` then the same should go for `eslint subdir` and `eslint subdir/foo.js`.

**nzakas:** I don't think mixing and matching makes any sense

**fasttime:** In that case, maybe we'll need a way to mark the root directory, like in eslintrc.

**nzakas:** No we don't. We just need to decide between those two options.

**mdjermanovic:** Here's a stakblitz example: https://stackblitz.com/edit/stackblitz-starters-wjz9em?file=.eslintrc.json,package.json,subdir%2F.eslintrc.json

**mdjermanovic:** (I fixed it now)

**mdjermanovic:** `eslint .` doesn't go into `subdir` because of the ignorePattern in the cwd config file, but `eslint subdir` and `eslint subdir/file.js` do lint the file

**nzakas:** Right, because the lookup behavior is different. It's not a direct map to the new config loader.

**nzakas:** In eslintrc, the lookup always starts from the file, but that's not true with this RFC.

**nzakas:** So in eslintrc, `root: true` cuts off the lookup. In this RFC, the lookup first starts from the directory.

**mdjermanovic:** Okay, we could make it different (as proposed in the RFC) and see the feedback during the experimental phase, since it will be behind a feature flag

**nzakas:** Just to be clear, by as proposed in the RFC, you mean that the subdirectory is always ignored regardless of how it's passed?

**mdjermanovic:** Yes, except I believe when you run ESLint from that subdirectory

**mdjermanovic:** In that case, it won't go up to look for more config files?

**nzakas:** Hmmm, that is true. 🤔

**fasttime:** I think we should ignore `subdir` when someone runs `eslint .`, but without a root directory, I don't see how we can enforce the same behavior regardless of the current directory where eslint is run from.

**nzakas:** It's really not about a root directory at all. It's about how far up the directory ancestry we are searching for config files.

**nzakas:** Unless we want to keep searching, we won't get the same behavior.

**nzakas:** Of course, option 1 doesn't have this problem. 🙂

**mdjermanovic:** Option 1 is problematic for performance reasons

**mdjermanovic:** `eslint .` would need to check all the subtree

**nzakas:** What do you mean by check all the subtree?

**mdjermanovic:** Traverse all subdirectories to see if there's a config file in there

**fasttime:** With option 2, we could search all the way up the directory tree for the last (uppermost) `eslint.config.js` that is found. Would that be an option?

**nzakas:** Ugh no, That's eslintrc all over again

**nzakas:** Okay, we're coming up on time, so let's table this for now. I'll do some more thinking and update the RFC. I can't make progress until we come to a decision on this behavior so let's just work more there.
* 👍 @mdjermanovic, @fasttime

**mdjermanovic:** Okay, we can have that as the top priority in the coming days

**fasttime:** I'm on RFC duty next week anyways 🙂

**nzakas:** Was just going to post RFC duty:

Next week: @fasttime
8/5: @nzakas
8/12: @mdjermanovic (you'll be back by then?)

**mdjermanovic:** Nope, would anyone like to switch shifts? 🙂

**mdjermanovic:** I could take two in a row when I'm back

**nzakas:** When will you be back?

**mdjermanovic:** on 21st August

**nzakas:** Okay so you'll miss two shifts, so we should just rotate between @fasttime and I until you're back

**mdjermanovic:** Thanks!

**fasttime:** I'll be available, so I could take the shift on 8/12

**nzakas:** Next week: @fasttime
8/5: @nzakas
8/12: @fasttime
8/19: @nzakas
* 👍 @mdjermanovic, @fasttime

**nzakas:** All right, let's talk the release then we can get out of here. 🙂

**fasttime:** If nobody else wants, I could do the release tomorrow.
* 🙏 @nzakas, @mdjermanovic

**mdjermanovic:** Thanks!

**nzakas:** Looks like just `eslint` and `@eslint/js`?
* 👍 @mdjermanovic, @fasttime

**nzakas:** I really miss having the release-please PR to see what will be released. 🙂

**nzakas:** Someday
* 👍 @fasttime

**nzakas:** And @mdjermanovic you're offline starting August 1?

**mdjermanovic:** Mostly offline, yes

**nzakas:** Well, enjoy!

**mdjermanovic:** Thanks!

**nzakas:** All right, that's all for today. Thanks everyone! (And thanks @sam3k_ for the notes)

**mdjermanovic:** Thanks everyone 👋

**fasttime:** Thanks!

0 comments on commit 040c11a

Please sign in to comment.