Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Add 2024-07-25 meeting notes #522

Merged
merged 3 commits into from
Aug 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions notes/2024/2024-07-25.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# 2024-07-25 ESLint TSC Meeting Notes

## Transcript

[`2024-07-25-transcript.md`](2024-07-25-transcript.md)

## Attending

- Nicholas C. Zakas (@nzakas) - TSC
- Milos Djermanovic (@mdjermanovic) - TSC
- Francesco Trotta (@fasttime) - TSC

@nzakas moderated, and @sam3k took notes.

## Topics

### Statuses

* **@nzakas:** has 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:** finished `eslint-plugin-react` support for ESLint v9, and was mostly reviewing PRs.

* **@fasttime:** finished updating `@types/eslint` to v9 and has been also mostly busy reviewing issues and PRs.


### [feat: merge `rule.meta.defaultOptions` before validation](https://github.com/eslint/eslintrc/pull/166)

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.

**Action Items:** @fasttime will do a review as well

### [Change Request: Better support migrating JS config files](https://github.com/eslint/rewrite/issues/64)

**Action Items:** @fasttime will look into this after looking at the Code Inspector PR.

### [feat!: Look Up Config Files From Linted File](https://github.com/eslint/rfcs/pull/120)

Regarding [this comment](https://github.com/eslint/rfcs/pull/120#issuecomment-2251117016) by @mdjermanovic:

> I agree with option 2 as presented in [#120 (comment)](https://github.com/eslint/rfcs/pull/120#issuecomment-2221153450): 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).

Meeting thread:

> @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. `eslintrc`, I believe, starts looking for config files from the pattern "root" (that's part of the pattern that represents a literal path, what `glob-parent` returns). 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

> @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. 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. So if `eslint .` ignores `subdir` then so should `eslint subdir` and `eslint subdir/foo.js`. If `eslint .` does not ignore `subdir` then the same should go for `eslint subdir` and `eslint subdir/foo.js`. I don't think mixing and matching makes any sense

> @mdjermanovic: in this [stackblitz](https://stackblitz.com/edit/stackblitz-starters-wjz9em?file=.eslintrc.json,package.json,subdir%2F.eslintrc.json) example `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. In eslintrc, the lookup always starts from the file, but that's not true with this RFC. So in eslintrc, `root: true` cuts off the lookup. In this RFC, the lookup first starts from the directory.

> @mdjermanovic: 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. In that case, it won't go up to look for more config files?

> @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.

**Options Explored:**

* Option 1: `eslint .` checks all the subtree (Problematic for performance reasons)

* Option 2: search all the way up the directory tree for the last (uppermost) `eslint.config.js` that is found. (That's eslintrc all over again)

**Resolution:** we've tabled this for now.

**Action Items:** @nzakas will think about it more and update the RFC.

### RFC Duty Schedule

* Next week: @fasttime
* August 5: @nzakas
* August 12: @fasttime
* August 19: @nzakas

### Scheduled release for July 26th, 2024

**Action Items:**

- @fasttime will release the following:

- `eslint`
- `@eslint/js`
Loading