Skip to content

v0.7.3

Latest

Choose a tag to compare

@fansenze fansenze released this 05 Aug 10:39

Highlights

Faster linting for large codebases

Rslint 0.7.3 reduces repeated work across the linting pipeline with parallel TypeScript Program construction, shared program metadata and configuration plans, and optimized rule hot paths. This release also expands adoption of the shared Refs API, improving the consistency of reference resolution across rules.

12 new rules

This release adds 12 rules across ESLint, Jest, Unicorn, and Rstest, expanding coverage for control flow, error handling, modern Node.js patterns, collection usage, and test quality.

What's Changed

New Features 🎉

  • feat(jest): declare options JSON Schema for jest/ rules by @swwind in #1417
  • feat(unicorn): declare options JSON Schema for unicorn/ rules by @swwind in #1418
  • feat(jsx-a11y): declare options JSON Schema for jsx-a11y/ rules by @swwind in #1346
  • feat(eslint-plugin-jest): add require-top-level-describe rule by @eryue0220 in #1455
  • feat(react): declare options JSON Schema for react/ rules by @swwind in #1426
  • feat(rule): fallback to TypeChecker in RefStore.Resolve for cross-file symbols by @swwind in #1450
  • feat(rule): resolve local named export specifiers in RefStore by @swwind in #1459
  • feat(eslint-plugin-jest): add require-to-throw-message rule by @eryue0220 in #1456
  • feat: expose external symbols in tsgo semantic data by @CPunisher in #1453
  • feat(rstest): add no-identical-title rule by @elecmonkey in #1473
  • feat(unicorn): port rule prefer-node-protocol by @elecmonkey in #1483
  • feat: port rule no-useless-assignment by @swwind in #1468
  • feat(unicorn): port rule prefer-array-some by @elecmonkey in #1484
  • feat(unicorn): port rule prefer-set-has by @elecmonkey in #1479
  • feat(rstest): add no-commented-out-tests rule by @elecmonkey in #1339
  • feat: expose symbol id and object from type data by @quininer in #1522
  • feat: port rule unicorn/error-message by @swwind in #1478
  • feat: port rule no-unreachable-loop by @swwind in #1569
  • feat(rstest): add no-disabled-tests rule by @elecmonkey in #1475
  • feat: port rule preserve-caught-error by @swwind in #1482

Performance 🚀

Bug Fixes 🐞

  • fix: drop stale RequiresTypeInfo from prefer-const by @swwind in #1454
  • fix(unicorn): avoid redundant shadow fallback by @fansenze in #1470
  • fix: resolve type-only exports in the correct symbol space by @fansenze in #1476
  • fix: resolve type-only exports for unused variables by @fansenze in #1477
  • fix(unicorn): align prefer-node-protocol with upstream v72 by @fansenze in #1501
  • fix(linter): traverse computed assignment keys by @fansenze in #1584

Refactor 🔨

  • refactor(jest,rstest): share test framework utilities between Jest and Rstest by @elecmonkey in #1460
  • refactor(jest,rstest): share no-mocks-import rule by @elecmonkey in #1461
  • refactor(rule): port no-ex-assign to the Refs API by @swwind in #1492
  • refactor(rule): converge binding-symbol lookups on utils helpers by @swwind in #1516
  • refactor: extract shared control-flow graph into internal/utils/cfg by @swwind in #1566

Document 📖

Other Changes

  • test: make nil guard control flow explicit by @fansenze in #1448
  • chore: move to pnpm catalog by @swwind in #1358
  • chore(deps): update actions/checkout digest to d23441a by @renovate[bot] in #1161
  • chore(deps): update actions/setup-go digest to 924ae3a by @renovate[bot] in #1162
  • chore: upgrade monaco-editor to 0.56.0 by @elecmonkey in #1457
  • test(rule-tester): validate test case options against the rule's schema by @swwind in #1464
  • chore(deps): update dependency eslint to ^10.8.0 by @renovate[bot] in #1410
  • chore(deps): update actions/cache action to v5.1.0 by @renovate[bot] in #1488
  • chore(deps): update dependency eslint-plugin-playwright to ^2.11.0 by @renovate[bot] in #1496
  • chore(deps): update module golang.org/x/text to v0.40.0 by @renovate[bot] in #1499
  • test: make go test work with -trimpath by @swwind in #1507
  • test: adapt no-useless-backreference test to embedfs Root by @swwind in #1532
  • chore(deps): update dependency vscode to ^1.131.0 by @renovate[bot] in #1498
  • chore(deps): update dtolnay/rust-toolchain digest to 4cda84d by @renovate[bot] in #1487
  • chore(deps): update dependency @napi-rs/cli to ^3.8.2 by @renovate[bot] in #1495
  • ci: add timeout to Go test job by @fansenze in #1543
  • chore(deps): update actions/setup-node digest to 2499707 by @renovate[bot] in #1486
  • test: stabilize parallel program panic test by @fansenze in #1557
  • chore(deps): upgrade eslint-plugin-unicorn to 72 by @elecmonkey in #1533
  • test: isolate broken nested config workspace by @fansenze in #1575
  • test: cover computed assignment keys in core rules by @fansenze in #1586

Full Changelog: v0.7.2...v0.7.3