Skip to content

docs(linter): add license notices for ported ESLint plugins#22768

Merged
Boshen merged 1 commit into
mainfrom
linter-license-notices
May 27, 2026
Merged

docs(linter): add license notices for ported ESLint plugins#22768
Boshen merged 1 commit into
mainfrom
linter-license-notices

Conversation

@Boshen

@Boshen Boshen commented May 27, 2026

Copy link
Copy Markdown
Member

Summary

Brings license attribution for ported ESLint plugins into compliance (#22732).

  • Expand THIRD-PARTY-LICENSE with upstream MIT/BSD license text for 10 previously-uncredited plugins: typescript-eslint, unicorn, react, react-perf, jsx-a11y, jsdoc, eslint-plugin-n, @next/eslint-plugin-next, eslint-plugin-vitest, eslint-plugin-vue, and eslint-plugin-react-hooks.
  • Add an upstream-repo URL doc comment above every plugin module in crates/oxc_linter/src/rules.rs.

Split out of #22733; the rendering of upstream docs in the website References section will follow in a separate PR.

🤖 Generated with Claude Code

Brings license attribution into compliance for the ESLint plugins from which
oxlint rules were ported (#22732).

- Expand `THIRD-PARTY-LICENSE` with the upstream MIT/BSD license texts for the
  10 previously-uncredited plugins: typescript-eslint, unicorn, react,
  react-perf, jsx-a11y, jsdoc, eslint-plugin-n, @next/eslint-plugin-next,
  eslint-plugin-vitest, eslint-plugin-vue, and eslint-plugin-react-hooks.
- Add an upstream-repo URL doc comment above every plugin module in
  `crates/oxc_linter/src/rules.rs` (eslint, typescript, import, jest, react,
  react_perf, unicorn, jsx_a11y, nextjs, jsdoc, node, promise, vitest, vue).
@Boshen Boshen requested a review from camc314 as a code owner May 27, 2026 13:15
@github-actions github-actions Bot added the A-linter Area - Linter label May 27, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0c2448671a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/oxc_linter/src/rules.rs
@Boshen Boshen merged commit 5e113ba into main May 27, 2026
28 checks passed
@Boshen Boshen deleted the linter-license-notices branch May 27, 2026 13:21
@codspeed-hq

codspeed-hq Bot commented May 27, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 5 untouched benchmarks
⏩ 52 skipped benchmarks1


Comparing linter-license-notices (0c24486) with main (fe93f97)

Open in CodSpeed

Footnotes

  1. 52 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

graphite-app Bot pushed a commit that referenced this pull request May 28, 2026
…22769)

## Summary

Renders the upstream-plugin docs URL inside each rule's `## References` section on oxc.rs.

- New `tasks/website_linter/src/rules/upstream.rs` with `upstream_docs_url(plugin, name) -> Option<String>` — convention-based per plugin, with per-rule overrides for cases where the directory differs from the true upstream:
  - `react/rules-of-hooks` and `react/exhaustive-deps` → `eslint-plugin-react-hooks`
  - `react/only-export-components` → `eslint-plugin-react-refresh`
- `doc_page.rs` emits the URL as slot content inside the existing `<RuleReferences>` element. Native oxc rules and unknown plugins produce an empty `<RuleReferences>`.

Follow-up to #22768.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
camc314 pushed a commit that referenced this pull request Jun 1, 2026
# Oxlint
### 🚀 Features

- e4b1f46 linter/typescript: Implement `method-signature-style` rule
(#22679) (Mikhail Baev)
- bc462ca linter/vue: Implement no-reserved-component-names rule
(#22741) (bab)
- ef9e751 linter/vue: Implement component-definition-name-casing rule
(#22818) (bab)
- d67f51a linter/vue: Implement require-prop-type-constructor rule
(#22708) (bab)
- 1444f82 linter/promise/spec-only: Add `Promise.try` to `Promise`
static methods (#22812) (Ben Saufley)
- 8422e8b linter/jsdoc: Implement `require-yields-description` rule
(#22805) (Mikhail Baev)
- fe93f97 linter/eslint: Implement `prefer-named-capture-group` rule
(#22759) (Sebastian Poxhofer)
- 1a7798b linter: Add suggestion for `unicorn/no-new-array` (#22682)
(Sysix)

### 🐛 Bug Fixes

- 760a9f9 linter: Report errors when writing to the filesystem (#22881)
(camc314)
- e5a2748 linter: Avoid no-unreachable false positive after conditional
loop (#22869) (camc314)
- 39d92d6 linter/arrow-body-style: Preserve comments within function
(#22854) (Sysix)
- 3d13e29 parser: Reject `declare` in an already-ambient context
(TS1038) (#22850) (Boshen)
- 5152854 parser: Reject statements in ambient contexts (TS1036)
(#22849) (Boshen)
- 2eafea6 parser: Reject function implementations in ambient contexts
(TS1183) (#22845) (Boshen)
- c645615 parser: Reject incompatible class member modifiers (#22843)
(Boshen)
- 4a1ca4a linter/export: Detect duplicate explicit exports (#22798)
(camc314)
- 0a9a735 linter/no-loop-func: Allow safe let closures (#22811)
(camc314)
- 1599f11 linter: Align lsp extends default plugins (#22788) (camc314)
- db32ec9 linter/no-accumulating-spread: Use loop as primary span
(#22800) (camc314)
- 33ec6b4 linter/consistent-test-it: Avoid adjacent describe leakage
(#22796) (camc314)
- 2606069 linter/no-array-sort: Unwrap parenthesized sort args (#22794)
(camc314)
- 9f2f709 linter/no-array-sort: Skip non compare fn sort arguments
(#22752) (Gaurav Dubey)
- 27268a0 linter/no-else-return: Preserve statement boundary in fixer
(#22687) (camc314)
- d9cb6d8 linter/no-empty-function: Allow functions callbacks with
`allow: functions` (#22764) (camc314)
- a40a314 linter/no-shadow-restricted-names: Ignore enum members
(#22762) (camc314)
- 82366d9 linter/no-cond-assign: Align ternary handling (#22761)
(camc314)

### 📚 Documentation

- 5e113ba linter: Add license notices for ported ESLint plugins (#22768)
(Boshen)
# Oxfmt
### 🚀 Features

- d75cbbf oxfmt: Format `parser:json` files by `oxc_formatter_json`
(#22709) (leaysgur)
- 49db054 formatter_json: Implement `oxc_formatter_json` (json variant
only) (#22641) (leaysgur)
- 9c71f2e ast, codegen, formatter: Add `WithClauseKeyword::as_str`
helper and use it (#22791) (camc314)

### 🐛 Bug Fixes

- d3cdd62 oxfmt: Skip formatting for whitespace-only file (#22780)
(leaysgur)
- 23f0cc8 formatter: Don't move comments inside variable declaration in
for in loop (#22776) (leaysgur)
- f200c40 formatter: Don't move comments inside variable declaration in
for of loop (#22773) (Leonabcd123)

### 📚 Documentation

- 845f393 oxfmt,formatter,formatter_json,formatter_core: Add/update
AGENTS.md (#22873) (leaysgur)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-linter Area - Linter

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant