You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Automated update of rust-analyzer and its ra_ap_* crates from 0.0.347 to 0.0.352 (ra_ap_intern pinned to 0.0.352 to keep all ra_ap_* crates aligned, per rust/updating-rust-analyzer.md), following the process in rust/updating-rust-analyzer.md.
The automated updater script (rust/scripts/update_rust_analyzer.py) got as far as cargo upgrade --incompatible --pinned and then failed because the recursive dependency resolution hit a yanked transitive crate (chacha20 0.10.1, pulled in by rand). This PR manually completes the remaining steps of the documented update process.
Changes
Cargo: Upgrade dependencies — Upgraded ra_ap_* crates to 0.0.352 (downgrading ra_ap_intern from the 0.0.353 picked by cargo upgrade down to 0.0.352 so all ra_ap_* crates agree), plus either, clap, serde_with, toml, syn, zstd, rand. Worked around the yanked chacha20 0.10.1 by pinning chacha20 to 0.10.2 in Cargo.lock.
Rust: Update rust-analyzer sources — Updated RUST_ANALYZER_SRC_TAG/RUST_ANALYZER_SRC_INTEGRITY in MODULE.bazel to the 2026-09-14 rust-analyzer release matching ra_ap_syntax@0.0.352.
Rust: Update fixed toolchain — Bumped FIXED_RUST_TOOLCHAIN (and the matching rustup toolchain install commands in test setup scripts) from 1.97.0 to 1.98.1, the latest stable release preceding the new rust-analyzer version.
Bazel: Regenerate vendored cargo dependencies — Re-ran misc/bazel/3rdparty/update_tree_sitter_extractors_deps.sh and bazel mod tidy.
Rust: Run codegen — Re-ran bazel run (rust/redacted) The rust-analyzer patch (rust/ast-generator/patches/rust-analyzer.patch) needed a small update since upstream removed the #![allow(clippy::disallowed_types)]line it used to target; the patch was regenerated to match the new upstream file (same effective changes: allow warnings/clippy/rustfmt-skip on the generated modules, make a few generator internalspub`).
The new rust-analyzer grammar adds a DocComment node alongside Attr, both now implementing a common AnyAttr supertype. Codegen propagated this into rust/schema/ast.py, rust/ql/lib/rust.dbscheme, and the generated .qll/Rust files (new AnyAttr/DocComment classes and QL library files).
The extractor's generated emit_any_attr/emit_doc_comment methods are currently unused (dead-code warning) because upstream hasn't yet wired DocComment into any grammar rule that would call them; this is expected with this rust-analyzer version and not a regression.
Rust: Add schema upgrade/downgrade scripts and change note — Since the dbscheme changed (new any_attr union type and doc_comments relation), added upgrade/downgrade scripts via misc/scripts/prepare-db-upgrade.sh --lang rust (both marked compatibility: full, since the change is purely additive and not yet populated by the extractor) and a change note under rust/ql/lib/change-notes/.
Rust: Update rust-toolchain.toml to 1.98 — Bumped the local dev channel in rust-toolchain.toml from 1.97 to 1.98 to match the new ra_ap_* MSRV, needed for rust/lint.py (cargo fmt/clippy) to run.
Validation
cargo check --workspace — passes with the new dependency versions.
bazel run (rust/redacted) — succeeds (only pre-existing/expected WARNING no test source in ...` messages and the new dead-code warning noted above).
bazel run (rust/redacted):install — succeeds; the extractor pack builds and installs to rust/extractor-pack.
rust/lint.py (cargo fmt + cargo clippy --fix -D warnings) — passes on all rust/-related crates it targets, after bumping to the 1.98 toolchain. (Unrelated cargo fmt/clippy drift in shared/yeast-schema and unified/swift-syntax-rs, and a pre-existing clippy::unnecessary_unwrap error in shared/yeast-schema, were verified to already exist on main and were left untouched to keep this diff focused.)
cargo test --workspace — all tests pass except the pre-existing ast-generator's codegen::grammar::test, which fails on both main and this branch when run outside the Bazel sandbox (it depends on crates/syntax/rust.ungram being injected by bazel run (rust/redacted), and even then relies on a project_root()path only valid under Bazel's runfiles layout); this crate has no dedicated CI job today (onlybazel run (rust/redacted), which passed).
Known limitations / follow-ups for a maintainer
CI has not run for this PR yet — this PR was prepared and validated entirely locally/offline; its own CI run (once triggered) should be checked, especially the Rust extractor test suite, DCA, and the rust-analyzer-update workflow's own checks.
Per rust/updating-rust-analyzer.md step 8, DCA with database caching disabled should be run and iterated on if needed — not done here since it requires CI infrastructure.
The new AnyAttr/DocComment classes are currently unreachable from any concrete extraction path (rust-analyzer's grammar hasn't yet started emitting DocComment nodes in place of/alongside Attr), so no QL tests were added for them; a future rust-analyzer update that actually wires up DocComment may require additional extractor/test work.
The environment's proxy blocked go.dev/golang.google.cn downloads during bazel mod tidy; this did not prevent the vendored deps regeneration from completing, but a maintainer running this in a different network environment may see different/no such warnings.
Note
This was originally intended as a pull request, but the git push operation failed.
Original error: ERR_VALIDATION: pushSignedCommits: refusing unsigned push for branch 'automation/update-rust-analyzer/rust/rust-analyzer-update-docs-c04a3264256ee0d2': Signed-commit payload violates file-protection policy (deny): .github/workflows/update-rust-analyzer.lock.yml, .github/workflows/update-rust-analyzer.md
Summary
Automated update of
rust-analyzerand itsra_ap_*crates from0.0.347to0.0.352(ra_ap_internpinned to0.0.352to keep allra_ap_*crates aligned, perrust/updating-rust-analyzer.md), following the process inrust/updating-rust-analyzer.md.The automated updater script (
rust/scripts/update_rust_analyzer.py) got as far ascargo upgrade --incompatible --pinnedand then failed because the recursive dependency resolution hit a yanked transitive crate (chacha20 0.10.1, pulled in byrand). This PR manually completes the remaining steps of the documented update process.Changes
ra_ap_*crates to0.0.352(downgradingra_ap_internfrom the0.0.353picked bycargo upgradedown to0.0.352so allra_ap_*crates agree), pluseither,clap,serde_with,toml,syn,zstd,rand. Worked around the yankedchacha20 0.10.1by pinningchacha20to0.10.2inCargo.lock.RUST_ANALYZER_SRC_TAG/RUST_ANALYZER_SRC_INTEGRITYinMODULE.bazelto the2026-09-14rust-analyzer release matchingra_ap_syntax@0.0.352.FIXED_RUST_TOOLCHAIN(and the matchingrustup toolchain installcommands in test setup scripts) from1.97.0to1.98.1, the latest stable release preceding the new rust-analyzer version.misc/bazel/3rdparty/update_tree_sitter_extractors_deps.shandbazel mod tidy.bazel run (rust/redacted) The rust-analyzer patch (rust/ast-generator/patches/rust-analyzer.patch) needed a small update since upstream removed the#![allow(clippy::disallowed_types)]line it used to target; the patch was regenerated to match the new upstream file (same effective changes: allow warnings/clippy/rustfmt-skip on the generated modules, make a few generator internalspub`).DocCommentnode alongsideAttr, both now implementing a commonAnyAttrsupertype. Codegen propagated this intorust/schema/ast.py,rust/ql/lib/rust.dbscheme, and the generated.qll/Rust files (newAnyAttr/DocCommentclasses and QL library files).emit_any_attr/emit_doc_commentmethods are currently unused (dead-code warning) because upstream hasn't yet wiredDocCommentinto any grammar rule that would call them; this is expected with this rust-analyzer version and not a regression.any_attrunion type anddoc_commentsrelation), added upgrade/downgrade scripts viamisc/scripts/prepare-db-upgrade.sh --lang rust(both markedcompatibility: full, since the change is purely additive and not yet populated by the extractor) and a change note underrust/ql/lib/change-notes/.channelinrust-toolchain.tomlfrom1.97to1.98to match the newra_ap_*MSRV, needed forrust/lint.py(cargo fmt/clippy) to run.Validation
cargo check --workspace— passes with the new dependency versions.bazel run (rust/redacted) — succeeds (only pre-existing/expectedWARNING no test source in ...` messages and the new dead-code warning noted above).bazel run (rust/redacted):install— succeeds; the extractor pack builds and installs torust/extractor-pack.rust/lint.py(cargo fmt+cargo clippy --fix -D warnings) — passes on all rust/-related crates it targets, after bumping to the 1.98 toolchain. (Unrelatedcargo fmt/clippydrift inshared/yeast-schemaandunified/swift-syntax-rs, and a pre-existingclippy::unnecessary_unwraperror inshared/yeast-schema, were verified to already exist onmainand were left untouched to keep this diff focused.)cargo test --workspace— all tests pass except the pre-existingast-generator'scodegen::grammar::test, which fails on bothmainand this branch when run outside the Bazel sandbox (it depends oncrates/syntax/rust.ungrambeing injected bybazel run (rust/redacted), and even then relies on aproject_root()path only valid under Bazel's runfiles layout); this crate has no dedicated CI job today (onlybazel run (rust/redacted), which passed).Known limitations / follow-ups for a maintainer
rust-analyzer-updateworkflow's own checks.rust/updating-rust-analyzer.mdstep 8, DCA with database caching disabled should be run and iterated on if needed — not done here since it requires CI infrastructure.AnyAttr/DocCommentclasses are currently unreachable from any concrete extraction path (rust-analyzer's grammar hasn't yet started emittingDocCommentnodes in place of/alongsideAttr), so no QL tests were added for them; a future rust-analyzer update that actually wires upDocCommentmay require additional extractor/test work.go.dev/golang.google.cndownloads duringbazel mod tidy; this did not prevent the vendored deps regeneration from completing, but a maintainer running this in a different network environment may see different/no such warnings.Note
This was originally intended as a pull request, but the git push operation failed.
Original error: ERR_VALIDATION: pushSignedCommits: refusing unsigned push for branch 'automation/update-rust-analyzer/rust/rust-analyzer-update-docs-c04a3264256ee0d2': Signed-commit payload violates file-protection policy (deny): .github/workflows/update-rust-analyzer.lock.yml, .github/workflows/update-rust-analyzer.md
Workflow Run: View run details and download bundle artifact
The bundle file is available in the
agentartifact in the workflow run linked above.Create the pull request manually
Warning
Firewall blocked 2 domains
The following domains were blocked by the firewall during workflow execution:
go.devgolang.google.cnTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.