chore: fix rule version metadata, add script to automate it#7412
Conversation
|
WalkthroughUpdated lint-rule metadata: replaced Possibly related PRs
Suggested labels
Suggested reviewers
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the ✨ Finishing Touches
🧪 Generate unit tests
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs (1)
153-155: Fix typo in user‑facing action message (“patter” → “pattern”).Visible on the website; worth correcting.
- "Add the patter "<Emphasis>"**"</Emphasis>" at the beginning of the list." + "Add the pattern "<Emphasis>"**"</Emphasis>" at the beginning of the list."crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs (1)
109-114: Tighten grammar in diagnostics (user‑facing).These strings render on the site; small tweaks improve clarity.
- "Incorrect usage of ignore a folder found." + "Incorrect usage when ignoring a folder." @@ - "Since version 2.2.0, ignoring folders doesn't require the use the trailing "<Emphasis>"/**"</Emphasis>". This is a bug that affects version prior v2.2.0." + "Since version 2.2.0, ignoring folders no longer requires the trailing "<Emphasis>"/**"</Emphasis>". This was a bug in versions prior to v2.2.0."
🧹 Nitpick comments (4)
CONTRIBUTING.md (1)
461-461: Release checklist item: show how to run the script (and list pre‑reqs).A tiny usage example here will save folks a hop to the script. Also call out
rgandsed/gsedrequirements for portability.-1. [ ] Replace all `version: "next"` to the new version number in the metadata of the rules. (See `scripts/update-next-version.sh`) +1. [ ] Replace all `version: "next"` to the new version number in the metadata of the rules. (See `scripts/update-next-version.sh`) + + For example: + ```sh + # Dry run + bash scripts/update-next-version.sh --dry-run + # Replace all occurrences with a target version + bash scripts/update-next-version.sh --replace 2.2.4 + ``` + Prerequisites: `rg` (ripgrep) and `sed` available on PATH. On macOS, the script may require GNU sed (`gsed`).scripts/update-next-version.sh (3)
31-33: Consider allowing a configurable search root (env/flag).Minor ergonomics: a
--rootflag orSEARCH_ROOT=${SEARCH_ROOT:-crates/…}env override makes this usable from submodules or forks with different layouts.
120-125: Add a CI‑friendly “fail on found” mode.Useful for release pipelines to prevent shipping with lingering
version: "next".Apply:
@@ -echo "Found $TOTAL_FILES file(s) containing version: \"next\"." +echo "Found $TOTAL_FILES file(s) containing version: \"next\"." @@ - echo "These rules need to be updated before release!" - echo "To replace 'next' with another value, rerun with --replace <STRING>." - fi - exit 0 + echo "These rules need to be updated before release!" + echo "To replace 'next' with another value, rerun with --replace <STRING>." + fi + if [[ "${FAIL_ON_FOUND:-false}" == "true" ]]; then + exit 2 + fi + exit 0And add flag wiring:
@@ -# -h, --help Show help +# -h, --help Show help +# -f, --fail-on-found Exit non-zero (2) in search mode if matches are found @@ -QUIET="false" +QUIET="false" +FAIL_ON_FOUND="false" @@ -q|--quiet) QUIET="true" shift ;; + -f|--fail-on-found) + FAIL_ON_FOUND="true" + shift + ;;
160-165: Mac devs will stumble on BSD sed.You note “GNU sed recommended”; consider detecting BSD sed and printing a friendly hint (use
gsed), rather than failing mid‑way.Example:
need_sed() { - if ! command -v sed >/dev/null 2>&1; then + if ! command -v sed >/dev/null 2>&1; then echo "Error: sed is required but not installed." >&2 exit 1 fi + if sed --version >/dev/null 2>&1; then + return + fi + if [[ "$(sed -n '1p' /dev/null 2>&1)" == *"usage: sed"* ]]; then + echo "Detected BSD sed. For macOS, install gnu-sed (brew install gnu-sed) and run with gsed, or run this script on Linux." >&2 + fi }
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (7)
CONTRIBUTING.md(1 hunks)crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs(1 hunks)scripts/update-next-version.sh(1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{rs,toml}
📄 CodeRabbit inference engine (CONTRIBUTING.md)
Format Rust and TOML files before committing (use
just f/just format).
Files:
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rscrates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rscrates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
crates/biome_*_{syntax,parser,formatter,analyze,factory,semantic}/**
📄 CodeRabbit inference engine (CLAUDE.md)
Maintain the per-language crate structure: biome_{lang}_{syntax,parser,formatter,analyze,factory,semantic}
Files:
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rscrates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rscrates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
crates/biome_*/**
📄 CodeRabbit inference engine (CLAUDE.md)
Place core crates under /crates/biome_*/
Files:
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rscrates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rscrates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
🧠 Learnings (9)
📓 Common learnings
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : In declare_lint_rule! metadata, set version: "next"
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/lib/src/lint/nursery/**/*.rs : Place all new rules in the nursery group under biome_js_analyze/lib/src/lint/nursery
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : When deprecating a rule, add deprecated: "<reason>" to declare_lint_rule!
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : In declare_lint_rule! metadata, set version: "next"
Applied to files:
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rscrates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rsCONTRIBUTING.mdcrates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rsscripts/update-next-version.sh
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/lib/src/lint/nursery/**/*.rs : Place all new rules in the nursery group under biome_js_analyze/lib/src/lint/nursery
Applied to files:
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rscrates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rscrates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : When deprecating a rule, add deprecated: "<reason>" to declare_lint_rule!
Applied to files:
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rscrates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : If a rule provides a code action, declare fix_kind in declare_lint_rule!
Applied to files:
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rscrates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : Set the language field in declare_lint_rule! to the most specific applicable language (js/jsx/ts/tsx)
Applied to files:
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-08-11T11:40:38.097Z
Learnt from: CR
PR: biomejs/biome#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:40:38.097Z
Learning: For production builds, set BIOME_VERSION to a value different from 0.0.0 to disable nursery recommended rules.
Applied to files:
CONTRIBUTING.md
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_rule_options/lib/**/*.rs : Define per‑rule options in the biome_rule_options crate (one file per rule, e.g., use_my_rule.rs)
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-08-11T11:46:05.836Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_diagnostics/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:46:05.836Z
Learning: Applies to crates/biome_diagnostics/**/*.rs : Use helper advice types from biome_diagnostics::v2 (CodeFrameAdvice, CommandAdvice, DiffAdvice, LogAdvice) when suitable
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
🧬 Code graph analysis (2)
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs (1)
crates/biome_package/benches/semver.rs (1)
version(64-64)
crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs (1)
crates/biome_package/benches/semver.rs (1)
version(64-64)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (24)
- GitHub Check: Bench (biome_package)
- GitHub Check: Bench (biome_json_formatter)
- GitHub Check: Bench (biome_graphql_formatter)
- GitHub Check: Bench (biome_configuration)
- GitHub Check: Bench (biome_html_formatter)
- GitHub Check: Bench (biome_html_parser)
- GitHub Check: Bench (biome_graphql_parser)
- GitHub Check: Bench (biome_json_analyze)
- GitHub Check: Bench (biome_css_analyze)
- GitHub Check: Bench (biome_json_parser)
- GitHub Check: Bench (biome_module_graph)
- GitHub Check: Bench (biome_css_formatter)
- GitHub Check: Bench (biome_js_analyze)
- GitHub Check: Bench (biome_css_parser)
- GitHub Check: Bench (biome_js_formatter)
- GitHub Check: Bench (biome_js_parser)
- GitHub Check: Documentation
- GitHub Check: Test Node.js API
- GitHub Check: Lint project (depot-windows-2022)
- GitHub Check: Test (depot-ubuntu-24.04-arm-16)
- GitHub Check: Test (depot-windows-2022-16)
- GitHub Check: Lint project (depot-ubuntu-24.04-arm-16)
- GitHub Check: Check Dependencies
- GitHub Check: autofix
🔇 Additional comments (10)
CONTRIBUTING.md (1)
461-461: Sanity check passed—no remainingversion: "next".
Ran the providedrgcommand; no matches found.crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs (1)
44-44: Version bump looks correct.Matches the JSON ruleset targeting 2.2.0; no behavioural changes introduced.
crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs (1)
104-111: LGTM on metadata update.Version aligns with JS nursery rules in 2.2.3; no other changes.
crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs (1)
73-78: LGTM on version metadata.Keeping
fix_kind: FixKind::Unsafeis appropriate for binding removal.crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs (1)
43-49: LGTM on version metadata.Consistent with JSON rules landing in 2.2.0.
crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs (2)
53-57: Verify language scope covers TS/TSX as needed.The rule checks TS nodes (TsAsExpression, TsTypeAssertion, etc.) but
language: "js". If Biome expects broader coverage here (e.g. js/ts/tsx), adjust accordingly; otherwise all good.
50-58: Double-check rule’s “since” version
Nov2.2.xtag or CHANGELOG.md entry for useConsistentArrowReturn was found. Confirm it first shipped in 2.2.3 or update the version/changelog accordingly.scripts/update-next-version.sh (3)
104-107: Nice: robust match collection underset -euo pipefail.The
|| truewithmapfileavoids premature exits when no matches are found. Solid.
141-147: Good call on escaping replacement metacharacters.Covers &, /, | and backslashes—prevents sed clobbering. Nice.
166-169: Post‑replace summary is clear.The “Review changes with: git diff” nudge is perfect.
CodSpeed Performance ReportMerging #7412 will not alter performanceComparing Summary
Footnotes |
4c7ff8f to
2f6e35f
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/autofix.yml (1)
3-15: Include JavaScript package paths in the autofix workflow triggerThe workflow only runs on Rust/TOML changes (crates/**, Cargo.toml, etc.), so PRs that only bump package.json (as in PR #7413) won’t invoke it. Expand
on.pull_request.pathsto also matchpackages/**/package.json(and pnpm-lock.yaml), or add a label-based trigger for release PRs.
🧹 Nitpick comments (3)
.github/workflows/autofix.yml (3)
55-59: Call the script via bash, set explicit shell, and drop the useless cat.More robust on runners where the script may lack +x; also fixes SC2002 and is a touch cleaner.
- - name: Update rule versions if this is a release PR - if: "github.event.pull_request.title == 'ci: release'" - run: | - scripts/update-next-version.sh --replace "$(cat packages/@biomejs/biome/package.json | jq --raw-output .version)" + - name: Update rule versions if this is a release PR + if: "github.event.pull_request.title == 'ci: release'" + shell: bash + run: | + bash scripts/update-next-version.sh --replace "$(jq -r .version packages/@biomejs/biome/package.json)"
56-56: Make release detection less brittle.Titles drift. Consider a prefix or label check to avoid silent skips.
- if: "github.event.pull_request.title == 'ci: release'" + if: startsWith(github.event.pull_request.title, 'ci: release')Alternatively, gate on a "release" label:
if: contains(join(github.event.pull_request.labels.*.name, ','), 'release').
55-59: Format after in-place edits.The script changes Rust files post-format step. Re-run fmt to keep diffs tidy.
run: | - bash scripts/update-next-version.sh --replace "$(jq -r .version packages/@biomejs/biome/package.json)" + bash scripts/update-next-version.sh --replace "$(jq -r .version packages/@biomejs/biome/package.json)" + cargo fmt --all
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (8)
.github/workflows/autofix.yml(2 hunks)CONTRIBUTING.md(1 hunks)crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs(1 hunks)scripts/update-next-version.sh(1 hunks)
✅ Files skipped from review due to trivial changes (2)
- crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs
- crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
🚧 Files skipped from review as they are similar to previous changes (5)
- crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs
- crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs
- CONTRIBUTING.md
- crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs
- scripts/update-next-version.sh
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : In declare_lint_rule! metadata, set version: "next"
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/lib/src/lint/nursery/**/*.rs : Place all new rules in the nursery group under biome_js_analyze/lib/src/lint/nursery
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : Set the language field in declare_lint_rule! to the most specific applicable language (js/jsx/ts/tsx)
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : When deprecating a rule, add deprecated: "<reason>" to declare_lint_rule!
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : If a rule provides a code action, declare fix_kind in declare_lint_rule!
🪛 actionlint (1.7.7)
.github/workflows/autofix.yml
57-57: shellcheck reported issue in this script: SC2002:style:1:49: Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead
(shellcheck)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (25)
- GitHub Check: Documentation
- GitHub Check: End-to-end tests
- GitHub Check: Lint project (depot-windows-2022)
- GitHub Check: Test (depot-ubuntu-24.04-arm-16)
- GitHub Check: Lint project (depot-ubuntu-24.04-arm-16)
- GitHub Check: Check Dependencies
- GitHub Check: Test (depot-windows-2022-16)
- GitHub Check: Test Node.js API
- GitHub Check: Bench (biome_html_formatter)
- GitHub Check: Bench (biome_configuration)
- GitHub Check: Bench (biome_html_parser)
- GitHub Check: Bench (biome_package)
- GitHub Check: autofix
- GitHub Check: Bench (biome_module_graph)
- GitHub Check: Bench (biome_json_analyze)
- GitHub Check: Bench (biome_css_analyze)
- GitHub Check: Bench (biome_graphql_formatter)
- GitHub Check: Bench (biome_json_parser)
- GitHub Check: Bench (biome_js_parser)
- GitHub Check: Bench (biome_css_parser)
- GitHub Check: Bench (biome_json_formatter)
- GitHub Check: Bench (biome_css_formatter)
- GitHub Check: Bench (biome_js_analyze)
- GitHub Check: Bench (biome_graphql_parser)
- GitHub Check: Bench (biome_js_formatter)
🔇 Additional comments (1)
.github/workflows/autofix.yml (1)
55-59: Confirm jq is present on depot runners.Custom images sometimes lack jq. If it’s missing, install it or move JSON parsing into the script.
You can add this step before use if needed:
- name: Ensure jq run: sudo apt-get update && sudo apt-get install -y jq
5a14e1b to
78b63d9
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs (1)
103-115: Fix user-facing grammar in diagnostic and note.Small polish to avoid awkward phrasing.
RuleDiagnostic::new( rule_category!(), state.range(), markup! { - "Incorrect usage of ignore a folder found." + "Incorrect pattern for ignoring a folder." }, ) .note(markup! { - "Since version 2.2.0, ignoring folders doesn't require the use the trailing "<Emphasis>"/**"</Emphasis>". This is a bug that affects version prior v2.2.0." + "Since Biome v2.2.0, ignoring folders no longer requires the trailing "<Emphasis>"/**"</Emphasis>". Versions prior to v2.2.0 contained a bug in this behaviour." }),
🧹 Nitpick comments (1)
.github/workflows/autofix.yml (1)
16-17: Update the comment to reflect new trigger.The comment still says “rust code or root Cargo” but now also includes package.json paths.
- paths: # Only run when changes are made to rust code or root Cargo + paths: # Run on Rust/Cargo changes and package.json (needed for auto-fixing rule versions)
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (8)
.github/workflows/autofix.yml(3 hunks)CONTRIBUTING.md(1 hunks)crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs(1 hunks)scripts/update-next-version.sh(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs
🚧 Files skipped from review as they are similar to previous changes (4)
- CONTRIBUTING.md
- crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs
- crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs
- scripts/update-next-version.sh
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{rs,toml}
📄 CodeRabbit inference engine (CONTRIBUTING.md)
Format Rust and TOML files before committing (use
just f/just format).
Files:
crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
crates/biome_*_{syntax,parser,formatter,analyze,factory,semantic}/**
📄 CodeRabbit inference engine (CLAUDE.md)
Maintain the per-language crate structure: biome_{lang}_{syntax,parser,formatter,analyze,factory,semantic}
Files:
crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
crates/biome_*/**
📄 CodeRabbit inference engine (CLAUDE.md)
Place core crates under /crates/biome_*/
Files:
crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : In declare_lint_rule! metadata, set version: "next"
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/lib/src/lint/nursery/**/*.rs : Place all new rules in the nursery group under biome_js_analyze/lib/src/lint/nursery
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : When deprecating a rule, add deprecated: "<reason>" to declare_lint_rule!
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : If a rule provides a code action, declare fix_kind in declare_lint_rule!
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : Set the language field in declare_lint_rule! to the most specific applicable language (js/jsx/ts/tsx)
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : In declare_lint_rule! metadata, set version: "next"
Applied to files:
crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/lib/src/lint/nursery/**/*.rs : Place all new rules in the nursery group under biome_js_analyze/lib/src/lint/nursery
Applied to files:
crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : When deprecating a rule, add deprecated: "<reason>" to declare_lint_rule!
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : If a rule provides a code action, declare fix_kind in declare_lint_rule!
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_rule_options/lib/**/*.rs : Define per‑rule options in the biome_rule_options crate (one file per rule, e.g., use_my_rule.rs)
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : Set the language field in declare_lint_rule! to the most specific applicable language (js/jsx/ts/tsx)
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-08-11T11:46:05.836Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_diagnostics/CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:46:05.836Z
Learning: Applies to crates/biome_diagnostics/**/*.rs : Use helper advice types from biome_diagnostics::v2 (CodeFrameAdvice, CommandAdvice, DiffAdvice, LogAdvice) when suitable
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
🪛 actionlint (1.7.7)
.github/workflows/autofix.yml
59-59: label "depot-ubuntu-24.04-arm-4" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (17)
- GitHub Check: Test Node.js API
- GitHub Check: Bench (biome_json_formatter)
- GitHub Check: Bench (biome_css_formatter)
- GitHub Check: Bench (biome_json_analyze)
- GitHub Check: Bench (biome_module_graph)
- GitHub Check: Bench (biome_graphql_formatter)
- GitHub Check: Bench (biome_configuration)
- GitHub Check: Bench (biome_html_parser)
- GitHub Check: Bench (biome_css_analyze)
- GitHub Check: Bench (biome_js_formatter)
- GitHub Check: Bench (biome_html_formatter)
- GitHub Check: Bench (biome_js_analyze)
- GitHub Check: Bench (biome_graphql_parser)
- GitHub Check: Bench (biome_json_parser)
- GitHub Check: Bench (biome_js_parser)
- GitHub Check: Bench (biome_css_parser)
- GitHub Check: autofix
🔇 Additional comments (2)
crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs (1)
73-78: Version pin looks good.Bumping to 2.2.3 aligns with the PR’s stated clean-up of “next”. Nothing else to do here.
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs (1)
43-49: Version pin looks good.Using 2.2.0 here matches the rule’s introduction timeline noted in the PR.
78b63d9 to
dbb0f2f
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
.github/workflows/autofix.yml (1)
58-61: Unknown/self-hosted runner label will trip actionlint; standardise or whitelist.Use the same known label as the other job or add this label to actionlint config.
autofix-rule-versions: - runs-on: depot-ubuntu-24.04-arm-4 + runs-on: depot-ubuntu-24.04-arm-16 if: "github.event.pull_request.title == 'ci: release'" steps:If you must keep -arm-4, whitelist it in .actionlint.yaml.
🧹 Nitpick comments (2)
.github/workflows/autofix.yml (2)
65-68: Make apt non-interactive and ensure tools are present.Add -y; consider installing jq here for robustness even if the runner currently has it.
- - run: | - sudo apt-get update - sudo apt-get install ripgrep + - run: | + sudo apt-get update + sudo apt-get install -y ripgrep jq
69-73: Harden the update step.Fail fast on errors and avoid subshell pitfalls by assigning VERSION first.
- name: Update rule versions - run: | - scripts/update-next-version.sh --replace "$(jq --raw-output .version packages/@biomejs/biome/package.json)" + run: | + set -euo pipefail + VERSION="$(jq -r .version packages/@biomejs/biome/package.json)" + scripts/update-next-version.sh --replace "$VERSION"
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (8)
.github/workflows/autofix.yml(3 hunks)CONTRIBUTING.md(1 hunks)crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs(1 hunks)scripts/update-next-version.sh(1 hunks)
✅ Files skipped from review due to trivial changes (2)
- crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs
- crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs
🚧 Files skipped from review as they are similar to previous changes (5)
- CONTRIBUTING.md
- crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
- crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs
- crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs
- scripts/update-next-version.sh
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : In declare_lint_rule! metadata, set version: "next"
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/lib/src/lint/nursery/**/*.rs : Place all new rules in the nursery group under biome_js_analyze/lib/src/lint/nursery
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : When deprecating a rule, add deprecated: "<reason>" to declare_lint_rule!
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : If a rule provides a code action, declare fix_kind in declare_lint_rule!
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : Set the language field in declare_lint_rule! to the most specific applicable language (js/jsx/ts/tsx)
🪛 actionlint (1.7.7)
.github/workflows/autofix.yml
59-59: label "depot-ubuntu-24.04-arm-4" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (25)
- GitHub Check: Lint project (depot-windows-2022)
- GitHub Check: Test (depot-windows-2022-16)
- GitHub Check: Test (depot-ubuntu-24.04-arm-16)
- GitHub Check: Documentation
- GitHub Check: Lint project (depot-ubuntu-24.04-arm-16)
- GitHub Check: End-to-end tests
- GitHub Check: Check Dependencies
- GitHub Check: Bench (biome_json_formatter)
- GitHub Check: Bench (biome_html_parser)
- GitHub Check: Bench (biome_graphql_parser)
- GitHub Check: Bench (biome_html_formatter)
- GitHub Check: Bench (biome_package)
- GitHub Check: Bench (biome_json_analyze)
- GitHub Check: Bench (biome_json_parser)
- GitHub Check: Bench (biome_graphql_formatter)
- GitHub Check: Bench (biome_js_analyze)
- GitHub Check: Bench (biome_module_graph)
- GitHub Check: Bench (biome_configuration)
- GitHub Check: Bench (biome_css_formatter)
- GitHub Check: Bench (biome_js_parser)
- GitHub Check: Bench (biome_css_parser)
- GitHub Check: Bench (biome_js_formatter)
- GitHub Check: Bench (biome_css_analyze)
- GitHub Check: Test Node.js API
- GitHub Check: autofix
🔇 Additional comments (1)
.github/workflows/autofix.yml (1)
16-17: Nice trigger refinement for package.json changes.Good addition; this ensures the rule-version updater runs when versions bump.
dbb0f2f to
e66028c
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs (1)
109-114: Polish user‑facing diagnostics (grammar).Two nits in the message/note. Recommend:
- markup! { - "Incorrect usage of ignore a folder found." - }, + markup! { + "Incorrect folder ignore pattern." + }, @@ - .note(markup! { - "Since version 2.2.0, ignoring folders doesn't require the use the trailing "<Emphasis>"/**"</Emphasis>". This is a bug that affects version prior v2.2.0." - }), + .note(markup! { + "Since version 2.2.0, ignoring folders doesn't require the use of the trailing "<Emphasis>"/**"</Emphasis>". This was a bug in versions prior to v2.2.0." + }),
♻️ Duplicate comments (1)
scripts/update-next-version.sh (1)
4-26: Script name: use hyphens consistently (matches filename).Header and help text use update_next_version.sh (underscores) while the file is update-next-version.sh (hyphens). Please align.
-# Script: update_next_version.sh +# Script: update-next-version.sh @@ -# ./update_next_version.sh +# ./update-next-version.sh @@ -# ./update_next_version.sh --replace 1.2.3 +# ./update-next-version.sh --replace 1.2.3 @@ - update_next_version.sh # list matches - update_next_version.sh -r 1.2.3 # replace next -> 1.2.3 - update_next_version.sh -r 1.2.3 -n # dry-run replacement + update-next-version.sh # list matches + update-next-version.sh -r 1.2.3 # replace next -> 1.2.3 + update-next-version.sh -r 1.2.3 -n # dry-run replacementAlso applies to: 39-43
🧹 Nitpick comments (3)
CONTRIBUTING.md (1)
461-461: Fix stray space before comma.-1. [ ] Replace all `version: "next"` with the new version number in the metadata of the rules. This should be automated , but you can use `scripts/update-next-version.sh` if you need to do it manually. +1. [ ] Replace all `version: "next"` with the new version number in the metadata of the rules. This should be automated, but you can use `scripts/update-next-version.sh` if you need to do it manually.scripts/update-next-version.sh (2)
31-33: Be tolerant of spacing around the colon.Some files may have spaces before the colon (e.g.
version : "next"). Widen the matcher and replacement to handle that.-PATTERN='version:[[:space:]]*"next"' +PATTERN='version[[:space:]]*:[[:space:]]*"next"'- sed -E -i "s|version:[[:space:]]*\"next\"|version: \"$ESCAPED_REPLACE\"|g" "$f" + sed -E -i "s|version[[:space:]]*:[[:space:]]*\"next\"|version: \"$ESCAPED_REPLACE\"|g" "$f"Also applies to: 163-163
115-125: Quiet mode message: small tweak.Tiny wording tweak for clarity.
- echo "Found $TOTAL_FILES file(s) containing version: \"next\"." + echo "Found $TOTAL_FILES file(s) containing version: \"next\"." if [[ $TOTAL_FILES -gt 0 ]]; then - echo "These rules need to be updated before release!" + echo "These rules likely need updating before release."
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (8)
.github/workflows/autofix.yml(3 hunks)CONTRIBUTING.md(1 hunks)crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs(1 hunks)crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs(1 hunks)crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs(1 hunks)scripts/update-next-version.sh(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- crates/biome_js_analyze/src/lint/nursery/no_useless_catch_binding.rs
- crates/biome_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs
- crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{rs,toml}
📄 CodeRabbit inference engine (CONTRIBUTING.md)
Format Rust and TOML files before committing (use
just f/just format).
Files:
crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
crates/biome_*_{syntax,parser,formatter,analyze,factory,semantic}/**
📄 CodeRabbit inference engine (CLAUDE.md)
Maintain the per-language crate structure: biome_{lang}_{syntax,parser,formatter,analyze,factory,semantic}
Files:
crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
crates/biome_*/**
📄 CodeRabbit inference engine (CLAUDE.md)
Place core crates under /crates/biome_*/
Files:
crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
🧠 Learnings (9)
📓 Common learnings
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : In declare_lint_rule! metadata, set version: "next"
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/lib/src/lint/nursery/**/*.rs : Place all new rules in the nursery group under biome_js_analyze/lib/src/lint/nursery
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : If a rule provides a code action, declare fix_kind in declare_lint_rule!
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : In declare_lint_rule! metadata, set version: "next"
Applied to files:
crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rsCONTRIBUTING.mdscripts/update-next-version.sh
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/lib/src/lint/nursery/**/*.rs : Place all new rules in the nursery group under biome_js_analyze/lib/src/lint/nursery
Applied to files:
crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rscrates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : When deprecating a rule, add deprecated: "<reason>" to declare_lint_rule!
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : If a rule provides a code action, declare fix_kind in declare_lint_rule!
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_rule_options/lib/**/*.rs : Define per‑rule options in the biome_rule_options crate (one file per rule, e.g., use_my_rule.rs)
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-09-05T09:13:58.901Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-05T09:13:58.901Z
Learning: Applies to crates/biome_analyze/crates/biome_js_analyze/**/src/**/*.rs : Set the language field in declare_lint_rule! to the most specific applicable language (js/jsx/ts/tsx)
Applied to files:
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
📚 Learning: 2025-08-05T14:43:29.581Z
Learnt from: dyc3
PR: biomejs/biome#7081
File: packages/@biomejs/biome/configuration_schema.json:7765-7781
Timestamp: 2025-08-05T14:43:29.581Z
Learning: The file `packages/biomejs/biome/configuration_schema.json` is auto-generated and should not be manually edited or reviewed for schema issues; any changes should be made at the code generation source.
Applied to files:
.github/workflows/autofix.yml
📚 Learning: 2025-08-11T11:40:38.097Z
Learnt from: CR
PR: biomejs/biome#0
File: CONTRIBUTING.md:0-0
Timestamp: 2025-08-11T11:40:38.097Z
Learning: For production builds, set BIOME_VERSION to a value different from 0.0.0 to disable nursery recommended rules.
Applied to files:
CONTRIBUTING.md
🔇 Additional comments (4)
crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs (1)
104-111: Version bump looks correct.Matches the stated release mapping; no behavioural changes.
crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs (1)
43-49: Correct version metadata.Setting the rule to 2.2.0 aligns with the docs and message body below.
scripts/update-next-version.sh (1)
128-137: No‑match replacement path already handled. LGTM.Good UX: early exit when nothing to replace.
.github/workflows/autofix.yml (1)
59-71: ```shell
#!/usr/bin/env bash
set -euo pipefailShow the current installation steps in the autofix workflow
sed -n '59,71p' .github/workflows/autofix.yml || { echo "autofix.yml not found"; exit 1; }
Check for any '-y' flags on apt-get install
grep -n "apt-get install.*-y" .github/workflows/autofix.yml || echo "No '-y' flags found in apt-get install commands"
Check for any installation of jq
grep -n "apt-get install.*jq" .github/workflows/autofix.yml || echo "No jq installation step found"
</blockquote></details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
Summary
We forgot to update this metadata for the past couple releases, so the website was showing incorect info.
Also, added a script to help automate it. It's AI generated, but I tested it and it works as expected.
Test Plan
Manually tested the new script. Went back in the changelog to figure out the right versions.
To test the automation, we currently have a new rule in the new release PR: #7413 So we'll know if it works then 🤞
Docs