Skip to content

chore: fix rule version metadata, add script to automate it#7412

Merged
dyc3 merged 1 commit intomainfrom
fix-version-meta
Sep 7, 2025
Merged

chore: fix rule version metadata, add script to automate it#7412
dyc3 merged 1 commit intomainfrom
fix-version-meta

Conversation

@dyc3
Copy link
Contributor

@dyc3 dyc3 commented Sep 5, 2025

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

@changeset-bot
Copy link

changeset-bot bot commented Sep 5, 2025

⚠️ No Changeset found

Latest commit: e66028c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 5, 2025

Walkthrough

Updated lint-rule metadata: replaced version: "next" with concrete versions (JS nursery rules → 2.2.3; JSON suspicious rules → 2.2.0). Added scripts/update-next-version.sh to find and optionally replace version: "next" in crates/biome_*_analyze (supports --replace, --dry-run, --quiet; requires rg and sed). CONTRIBUTING.md now recommends automation and references the script. CI workflow .github/workflows/autofix.yml runs the script on release PRs. No behavioural, API, or control‑flow changes.

Possibly related PRs

Suggested labels

A-Tooling, A-CLI

Suggested reviewers

  • siketyan
  • arendjr
  • ematipico

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-version-meta

Comment @coderabbitai help to get the list of available commands and usage tips.

@dyc3 dyc3 requested review from a team September 5, 2025 16:53
@github-actions github-actions bot added A-Linter Area: linter L-JavaScript Language: JavaScript and super languages L-JSON Language: JSON and super languages labels Sep 5, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

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 rg and sed/gsed requirements 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 --root flag or SEARCH_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 0

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

📥 Commits

Reviewing files that changed from the base of the PR and between 0733558 and baf4f6e.

📒 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.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
  • crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs
  • crates/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.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
  • crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs
  • crates/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.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
  • crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs
  • crates/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.rs
  • crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs
  • CONTRIBUTING.md
  • 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
  • crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
  • scripts/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.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
  • crates/biome_js_analyze/src/lint/nursery/use_vue_multi_word_component_names.rs
  • 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 : 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.rs
  • crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs
  • 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_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs
  • crates/biome_json_analyze/src/lint/suspicious/no_biome_first_exception.rs
  • 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_js_analyze/src/lint/nursery/use_consistent_arrow_return.rs
  • crates/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 remaining version: "next".
Ran the provided rg command; 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::Unsafe is 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
No v2.2.x tag 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 under set -euo pipefail.

The || true with mapfile avoids 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-hq
Copy link

codspeed-hq bot commented Sep 5, 2025

CodSpeed Performance Report

Merging #7412 will not alter performance

Comparing fix-version-meta (e66028c) with main (b906112)1

Summary

✅ 133 untouched benchmarks

Footnotes

  1. No successful run was found on main (d042f18) during the generation of this report, so b906112 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@dyc3 dyc3 force-pushed the fix-version-meta branch 2 times, most recently from 4c7ff8f to 2f6e35f Compare September 5, 2025 18:24
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

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 trigger

The 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.paths to also match packages/**/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.

📥 Commits

Reviewing files that changed from the base of the PR and between 5900969 and 2f6e35f.

📒 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

@dyc3 dyc3 force-pushed the fix-version-meta branch 2 times, most recently from 5a14e1b to 78b63d9 Compare September 5, 2025 18:56
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

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.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f6e35f and 78b63d9.

📒 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.rs
  • crates/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.rs
  • crates/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.rs
  • crates/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.rs
  • 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/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.rs
  • 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 : 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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

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.

📥 Commits

Reviewing files that changed from the base of the PR and between 78b63d9 and dbb0f2f.

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

@dyc3 dyc3 merged commit 527493a into main Sep 7, 2025
30 of 31 checks passed
@dyc3 dyc3 deleted the fix-version-meta branch September 7, 2025 14:21
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

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 replacement

Also 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

📥 Commits

Reviewing files that changed from the base of the PR and between dbb0f2f and e66028c.

📒 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.rs
  • crates/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.rs
  • crates/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.rs
  • crates/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.rs
  • crates/biome_json_analyze/src/lint/suspicious/use_biome_ignore_folder.rs
  • CONTRIBUTING.md
  • scripts/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.rs
  • 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 : 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 pipefail

Show 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 -->

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Linter Area: linter L-JavaScript Language: JavaScript and super languages L-JSON Language: JSON and super languages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants