+
Skip to content

Conversation

Netail
Copy link
Contributor

@Netail Netail commented Sep 30, 2025

Summary

Implement Eslint Graphql's require-deprecation-date

Related # #3303

Test Plan

Docs

Copy link

changeset-bot bot commented Sep 30, 2025

🦋 Changeset detected

Latest commit: 4c3824a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@biomejs/biome Patch
@biomejs/cli-win32-x64 Patch
@biomejs/cli-win32-arm64 Patch
@biomejs/cli-darwin-x64 Patch
@biomejs/cli-darwin-arm64 Patch
@biomejs/cli-linux-x64 Patch
@biomejs/cli-linux-arm64 Patch
@biomejs/cli-linux-x64-musl Patch
@biomejs/cli-linux-arm64-musl Patch
@biomejs/wasm-web Patch
@biomejs/wasm-bundler Patch
@biomejs/wasm-nodejs Patch
@biomejs/backend-jsonrpc Patch

Not sure what this means? Click here to learn what changesets are.

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

@github-actions github-actions bot added A-Project Area: project A-Linter Area: linter A-Parser Area: parser A-Diagnostic Area: diagnostocis labels Sep 30, 2025
Copy link

codspeed-hq bot commented Sep 30, 2025

CodSpeed Performance Report

Merging #7620 will not alter performance

Comparing Netail:feat/use-deprecated-date (4c3824a) with main (a8e7301)

Summary

✅ 53 untouched
⏩ 85 skipped1

Footnotes

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

Copy link
Contributor

coderabbitai bot commented Sep 30, 2025

Walkthrough

Adds a new nursery GraphQL lint rule useDeprecatedDate that enforces a configurable deletion-date argument (default "deletionDate") on @deprecated directives. The rule checks for the argument, ensures it’s a GraphQL string (using a new inner_string_text helper), parses YYYY‑MM‑DD dates, compares to current UTC and emits diagnostics for Missing, Invalid, or Due (past) states. Wires the rule into the Lint category, introduces DeprecatedDateIssue, exposes UseDeprecatedDateOptions (with Default and Deserializable), adds valid/invalid spec tests, and adds the jiff workspace dependency.

Suggested reviewers

  • ematipico
  • arendjr
  • siketyan

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title succinctly identifies the new lint rule and the crate where it was added, clearly summarising the main change without extraneous details or noise.
Description Check ✅ Passed The description outlines the feature being implemented and includes links to relevant discussions and placeholders for test and documentation plans, demonstrating its relevance to the changeset.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent 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 046af87 and 4c3824a.

⛔ Files ignored due to path filters (4)
  • crates/biome_configuration/src/analyzer/linter/rules.rs is excluded by !**/rules.rs and included by **
  • crates/biome_diagnostics_categories/src/categories.rs is excluded by !**/categories.rs and included by **
  • packages/@biomejs/backend-jsonrpc/src/workspace.ts is excluded by !**/backend-jsonrpc/src/workspace.ts and included by **
  • packages/@biomejs/biome/configuration_schema.json is excluded by !**/configuration_schema.json and included by **
📒 Files selected for processing (1)
  • crates/biome_rule_options/src/lib.rs (1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
crates/biome_*/**

📄 CodeRabbit inference engine (CLAUDE.md)

Place core crates under /crates/biome_*/

Files:

  • crates/biome_rule_options/src/lib.rs
**/*.{rs,toml}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Before committing, format Rust and TOML files (e.g., via just f/just format)

Files:

  • crates/biome_rule_options/src/lib.rs
**/*.rs

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Document rules, assists, and options via inline rustdoc in Rust source

Files:

  • crates/biome_rule_options/src/lib.rs
⏰ 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). (23)
  • GitHub Check: Bench (biome_graphql_formatter)
  • GitHub Check: Bench (biome_graphql_parser)
  • GitHub Check: Bench (biome_configuration)
  • GitHub Check: Documentation
  • GitHub Check: Test (depot-windows-2022-16)
  • GitHub Check: Test (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Lint project (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Lint project (depot-windows-2022)
  • GitHub Check: Check Dependencies
  • GitHub Check: Bench (biome_json_formatter)
  • GitHub Check: Bench (biome_json_analyze)
  • GitHub Check: Bench (biome_json_parser)
  • GitHub Check: Bench (biome_css_formatter)
  • GitHub Check: Bench (biome_css_analyze)
  • GitHub Check: Check JS Files
  • GitHub Check: Test Node.js API
  • GitHub Check: Bench (biome_css_parser)
  • GitHub Check: Bench (biome_package)
  • GitHub Check: Bench (biome_module_graph)
  • GitHub Check: autofix
  • GitHub Check: Bench (biome_js_parser)
  • GitHub Check: Bench (biome_js_analyze)
  • GitHub Check: Bench (biome_js_formatter)
🔇 Additional comments (1)
crates/biome_rule_options/src/lib.rs (1)

276-276: LGTM!

The module export is correctly placed in alphabetical order and follows the established pattern. Since this is a generated file (line 1), the rustdoc documentation requirement from the coding guidelines applies to the source module (crates/biome_rule_options/src/use_deprecated_date.rs) rather than here.


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

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: 4

🧹 Nitpick comments (4)
crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs (4)

88-93: Enforce strict YYYY‑MM‑DD before/while parsing.

The code calls .parse() without format gating, but the note says the argument “must match the YYYY‑MM‑DD format”. Add a lightweight pre‑check (length + hyphen positions + digits) or use a format‑specific parser, then fall back to Invalid on mismatch.

Also applies to: 135-136


68-74: De‑duplicate argument name resolution.

The “default to deletionDate when empty” logic is duplicated. Compute it once (helper function or store it in State) and reuse in both run and diagnostic.

-        let argument_name = ctx
-            .options()
-            .argument_name
-            .is_empty()
-            .then(|| "deletionDate".into())
-            .unwrap_or(ctx.options().argument_name.clone());
+        let argument_name = resolve_argument_name(ctx.options());

Also applies to: 106-112


44-48: Limit enum visibility.

DeprecatedDateIssue doesn’t need to be public; keep it private to avoid expanding the public surface.

-pub enum DeprecatedDateIssue {
+enum DeprecatedDateIssue {

50-55: Trim State payload (optional).

diagnostic gets the span from ctx.query() and doesn’t use the stored GraphqlDirective. Consider type State = DeprecatedDateIssue to reduce allocations and state churn.

📜 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 2b9b9d8 and 6ff80ca.

⛔ Files ignored due to path filters (6)
  • Cargo.lock is excluded by !**/*.lock and included by **
  • crates/biome_configuration/src/analyzer/linter/rules.rs is excluded by !**/rules.rs and included by **
  • crates/biome_diagnostics_categories/src/categories.rs is excluded by !**/categories.rs and included by **
  • crates/biome_graphql_analyze/src/lint/nursery.rs is excluded by !**/nursery.rs and included by **
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/invalid.graphql.snap is excluded by !**/*.snap and included by **
  • packages/@biomejs/biome/configuration_schema.json is excluded by !**/configuration_schema.json and included by **
📒 Files selected for processing (11)
  • .changeset/ninety-hotels-grin.md (1 hunks)
  • Cargo.toml (1 hunks)
  • crates/biome_graphql_analyze/Cargo.toml (1 hunks)
  • crates/biome_graphql_analyze/src/lint.rs (1 hunks)
  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs (1 hunks)
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/invalid.graphql (1 hunks)
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/valid.graphql (1 hunks)
  • crates/biome_graphql_syntax/src/lib.rs (2 hunks)
  • crates/biome_graphql_syntax/src/string_value_ext.rs (2 hunks)
  • crates/biome_rule_options/src/lib.rs (1 hunks)
  • crates/biome_rule_options/src/use_deprecated_date.rs (1 hunks)
🧰 Additional context used
📓 Path-based instructions (9)
crates/biome_*/**

📄 CodeRabbit inference engine (CLAUDE.md)

Place core crates under /crates/biome_*/

Files:

  • crates/biome_rule_options/src/lib.rs
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/invalid.graphql
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/valid.graphql
  • crates/biome_graphql_syntax/src/string_value_ext.rs
  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs
  • crates/biome_graphql_analyze/src/lint.rs
  • crates/biome_graphql_syntax/src/lib.rs
  • crates/biome_rule_options/src/use_deprecated_date.rs
  • crates/biome_graphql_analyze/Cargo.toml
**/*.rs

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Format all Rust source files before committing (just f)

Files:

  • crates/biome_rule_options/src/lib.rs
  • crates/biome_graphql_syntax/src/string_value_ext.rs
  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs
  • crates/biome_graphql_analyze/src/lint.rs
  • crates/biome_graphql_syntax/src/lib.rs
  • crates/biome_rule_options/src/use_deprecated_date.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_graphql_analyze/tests/specs/nursery/useDeprecatedDate/invalid.graphql
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/valid.graphql
  • crates/biome_graphql_syntax/src/string_value_ext.rs
  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs
  • crates/biome_graphql_analyze/src/lint.rs
  • crates/biome_graphql_syntax/src/lib.rs
  • crates/biome_graphql_analyze/Cargo.toml
**/tests/**

📄 CodeRabbit inference engine (CLAUDE.md)

Place test files under a tests/ directory in each crate

Files:

  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/invalid.graphql
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/valid.graphql
**/*.toml

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Format all TOML files before committing (just f, via taplo-cli)

Files:

  • Cargo.toml
  • crates/biome_graphql_analyze/Cargo.toml
Cargo.toml

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Define shared workspace dependencies in the root Cargo.toml using the [workspace.dependencies] table

Files:

  • Cargo.toml
crates/**/Cargo.toml

📄 CodeRabbit inference engine (CONTRIBUTING.md)

crates/**/Cargo.toml: In internal crates, reference internal dependencies with workspace = true
Use path dependencies for dev-dependencies in internal crates to avoid requiring published versions

Files:

  • crates/biome_graphql_analyze/Cargo.toml
crates/*/Cargo.toml

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Place new crates under the crates/ directory

Files:

  • crates/biome_graphql_analyze/Cargo.toml
.changeset/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

.changeset/*.md: In changeset files, only use #### or ##### headers; avoid other header levels
Changeset descriptions should use past tense for what you did (e.g., "Added...")
Describe current Biome behavior in present tense within changesets (e.g., "Biome now supports...")
For bug fixes in changesets, start with a link to the issue (e.g., "Fixed #1234: ...")
When referencing rules or assists in changesets, include links to their documentation pages
Include a minimal code block in the changeset when applicable to demonstrate the change
End every sentence in the changeset description with a period

Files:

  • .changeset/ninety-hotels-grin.md
🧠 Learnings (6)
📓 Common learnings
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-10T08:05:22.867Z
Learning: Applies to crates/biome_analyze/**/src/{lint,assist}/**/*.rs : When deprecating a rule, add `deprecated: "<reason>"` to `declare_lint_rule!`
📚 Learning: 2025-09-10T08:05:22.867Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-10T08:05:22.867Z
Learning: Applies to crates/biome_analyze/**/src/{lint,assist}/**/*.rs : When deprecating a rule, add `deprecated: "<reason>"` to `declare_lint_rule!`

Applied to files:

  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs
  • .changeset/ninety-hotels-grin.md
📚 Learning: 2025-09-10T08:05:22.867Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-10T08:05:22.867Z
Learning: Applies to crates/biome_analyze/**/src/{lint,assist}/**/*.rs : In declare_lint_rule! macros, set `version: "next"` for new or updated rules

Applied to files:

  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs
  • crates/biome_graphql_analyze/src/lint.rs
📚 Learning: 2025-09-10T08:05:22.867Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-10T08:05:22.867Z
Learning: Applies to crates/biome_analyze/**/src/**/nursery/**/*.rs : Place all new rules in the nursery group (implement rule files under a `.../src/*/nursery/` directory)

Applied to files:

  • crates/biome_graphql_analyze/src/lint.rs
📚 Learning: 2025-09-10T08:05:22.867Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-10T08:05:22.867Z
Learning: Applies to crates/biome_analyze/**/src/{lint,assist}/**/*.rs : Avoid deep indentation and panics; prefer `?`, `ok()?`, and combinators (`map`, `and_then`, `filter`) over nested `if let`/`unwrap`/`expect`

Applied to files:

  • crates/biome_graphql_analyze/src/lint.rs
📚 Learning: 2025-09-10T08:05:22.867Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-10T08:05:22.867Z
Learning: Applies to crates/biome_analyze/crates/biome_rule_options/lib/**/*.rs : Options types must implement serialization/deserialization and schema support using derives: `Serialize`, `Deserialize`, `Deserializable`, and `#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]`

Applied to files:

  • crates/biome_rule_options/src/use_deprecated_date.rs
🧬 Code graph analysis (3)
crates/biome_graphql_syntax/src/string_value_ext.rs (1)
crates/biome_graphql_syntax/src/lib.rs (1)
  • inner_string_text (119-128)
crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs (1)
crates/biome_analyze/src/rule.rs (3)
  • sources (575-578)
  • same (244-249)
  • recommended (560-563)
crates/biome_graphql_syntax/src/lib.rs (1)
crates/biome_graphql_syntax/src/string_value_ext.rs (1)
  • inner_string_text (20-22)
⏰ 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). (23)
  • GitHub Check: Check Dependencies
  • GitHub Check: Documentation
  • GitHub Check: Test (depot-windows-2022-16)
  • GitHub Check: Test (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Bench (biome_graphql_parser)
  • GitHub Check: Bench (biome_package)
  • GitHub Check: Bench (biome_html_formatter)
  • GitHub Check: Bench (biome_module_graph)
  • GitHub Check: Bench (biome_configuration)
  • GitHub Check: Bench (biome_css_analyze)
  • GitHub Check: Bench (biome_html_parser)
  • GitHub Check: Bench (biome_graphql_formatter)
  • GitHub Check: Check JS Files
  • GitHub Check: Bench (biome_css_formatter)
  • GitHub Check: Bench (biome_json_formatter)
  • GitHub Check: Bench (biome_json_parser)
  • GitHub Check: Bench (biome_css_parser)
  • GitHub Check: Bench (biome_json_analyze)
  • GitHub Check: Bench (biome_js_formatter)
  • GitHub Check: Bench (biome_js_analyze)
  • GitHub Check: Bench (biome_js_parser)
  • GitHub Check: Test Node.js API
  • GitHub Check: autofix

Copy link
Contributor Author

@Netail Netail left a comment

Choose a reason for hiding this comment

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

@ematipico
Copy link
Member

https://github.com/biomejs/biome/pull/7620/files#diff-dc2003cef1c68fb2632517e6837aba01d97ca6fa976306765dda643f679504d6R68-R73
Is there an easier way to set a default value for a string option?

CodeRabbit suggested the answer 😁

Copy link
Member

@ematipico ematipico left a comment

Choose a reason for hiding this comment

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

There aren't enough tests. The rule has three error states, and we tested only one. We should cover all of them

@Netail Netail force-pushed the feat/use-deprecated-date branch from 08c4323 to 4977673 Compare October 1, 2025 08:39
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)
crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs (1)

92-96: UTC “today” looks good.

Thanks for switching to a UTC‑based clock; this removes local‑TZ flakiness from date comparisons.

🧹 Nitpick comments (3)
crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs (3)

62-75: Avoid allocating for name comparisons.

Using to_trimmed_string() allocates. Prefer borrowing token text (e.g. trimmed_text on the name token) and compare to &str to keep this allocation‑free. Same for the argument name check.

Can you switch both name comparisons to borrowed text APIs available on GraphQL name/value tokens?


70-70: Trim clones from options.

You don’t need to clone the option string; borrow it as &str for both the comparison and diagnostics.

-        let argument_name = ctx.options().argument_name.clone();
+        let argument_name = ctx.options().argument_name.as_str();
-        let argument_name = ctx.options().argument_name.clone();
+        let argument_name = ctx.options().argument_name.as_str();

Also applies to: 103-103


85-90: Streamline parsing and comparison.

The is_err() + ok()? pattern is a bit clunky. Parse once, branch, then compare with the parsed value.

-        let due_date_value = argument_string_value.inner_string_text().ok()?;
-        let due_date = due_date_value.text().parse();
-
-        if due_date.is_err() {
-            return Some((DeprecatedDateIssue::Invalid, node.clone()));
-        }
+        let due_date_value = argument_string_value.inner_string_text().ok()?;
+        let due_date: jiff::civil::Date = match due_date_value.text().parse() {
+            Ok(d) => d,
+            Err(_) => return Some((DeprecatedDateIssue::Invalid, node.clone())),
+        };
 
         let now = Timestamp::now().to_zoned(TimeZone::UTC).date();
 
-        if now > due_date.ok()? {
+        if now > due_date {
             return Some((DeprecatedDateIssue::Due, node.clone()));
         }

Also applies to: 94-96

📜 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 4977673 and f7c6a1f.

⛔ Files ignored due to path filters (1)
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/invalid.graphql.snap is excluded by !**/*.snap and included by **
📒 Files selected for processing (2)
  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs (1 hunks)
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/invalid.graphql (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • crates/biome_graphql_analyze/tests/specs/nursery/useDeprecatedDate/invalid.graphql
🧰 Additional context used
📓 Path-based instructions (3)
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_graphql_analyze/src/lint/nursery/use_deprecated_date.rs
crates/biome_*/**

📄 CodeRabbit inference engine (CLAUDE.md)

Place core crates under /crates/biome_*/

Files:

  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs
**/*.rs

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Format all Rust source files before committing (just f)

Files:

  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs
🧠 Learnings (1)
📚 Learning: 2025-09-10T08:05:22.867Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_analyze/CONTRIBUTING.md:0-0
Timestamp: 2025-09-10T08:05:22.867Z
Learning: Applies to crates/biome_analyze/**/src/{lint,assist}/**/*.rs : When deprecating a rule, add `deprecated: "<reason>"` to `declare_lint_rule!`

Applied to files:

  • crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs
🧬 Code graph analysis (1)
crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs (1)
crates/biome_analyze/src/rule.rs (3)
  • sources (575-578)
  • same (244-249)
  • recommended (560-563)
⏰ 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). (23)
  • GitHub Check: Bench (biome_graphql_parser)
  • GitHub Check: Bench (biome_configuration)
  • GitHub Check: Documentation
  • GitHub Check: Test (depot-windows-2022-16)
  • GitHub Check: Test (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Check Dependencies
  • GitHub Check: Lint project (depot-windows-2022)
  • GitHub Check: Test Node.js API
  • GitHub Check: Bench (biome_css_formatter)
  • GitHub Check: Bench (biome_graphql_formatter)
  • GitHub Check: Bench (biome_html_formatter)
  • GitHub Check: Bench (biome_css_parser)
  • GitHub Check: Bench (biome_json_formatter)
  • GitHub Check: Bench (biome_html_parser)
  • GitHub Check: Bench (biome_json_analyze)
  • GitHub Check: Bench (biome_js_formatter)
  • GitHub Check: Bench (biome_js_analyze)
  • GitHub Check: Bench (biome_module_graph)
  • GitHub Check: autofix
  • GitHub Check: Bench (biome_json_parser)
  • GitHub Check: Bench (biome_js_parser)
  • GitHub Check: Bench (biome_css_analyze)
  • GitHub Check: Check JS Files
🔇 Additional comments (3)
crates/biome_graphql_analyze/src/lint/nursery/use_deprecated_date.rs (3)

10-43: Bold move, clean landing.

Rule metadata wiring looks correct: name, language, source mapping and non‑recommended status all make sense. Nice use of .same() to attribute source.


130-141: Grammar fix landed.

“The deprecation has passed its due date.” reads well and is user‑friendly.


127-129: Format message is accurate
jiff::civil::Date::FromStr strictly enforces zero-padded YYYY-MM-DD (e.g. “2024-06-19”), so the existing “must match the YYYY-MM-DD format” wording is correct.

@Netail Netail force-pushed the feat/use-deprecated-date branch from f7c6a1f to fbb7f3f Compare October 1, 2025 10:01
@ematipico ematipico merged commit 5beb1ee into biomejs:main Oct 5, 2025
29 checks passed
@Netail Netail deleted the feat/use-deprecated-date branch October 5, 2025 20:46
@github-actions github-actions bot mentioned this pull request Oct 4, 2025
cadunass pushed a commit to cadunass/biome that referenced this pull request Oct 9, 2025
)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
andogq pushed a commit to andogq/biome that referenced this pull request Oct 14, 2025
)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Diagnostic Area: diagnostocis A-Linter Area: linter A-Parser Area: parser A-Project Area: project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载