Skip to content

deps: bump tree-sitter from 0.26.11 to 0.26.12 - #1342

Merged
dekobon merged 1 commit into
mainfrom
deps/tree-sitter-0.26.12
Aug 22, 2026
Merged

deps: bump tree-sitter from 0.26.11 to 0.26.12#1342
dekobon merged 1 commit into
mainfrom
deps/tree-sitter-0.26.12

Conversation

@dekobon

@dekobon dekobon commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Takes the tree-sitter runtime from =0.26.11 to =0.26.12 across
every manifest and lockfile in one commit.

Why one PR instead of eight

Dependabot opened this bump once per manifest: #1334 (root), #1333
(/fuzz), #1331 (/enums, which also edits all five vendored
manifests), #1329, #1328, #1327, #1322, #1321. The runtime is =-pinned
in seven manifests and locked in eight lockfiles, and
utils/check-excluded-manifests.py requires every one of them to agree.
Merging them serially would leave each intermediate commit with a split
pin — red on the gate, and unresolvable for anyone who checked out that
commit. #1331 also overlaps five of its siblings, so the sequence has no
conflict-free ordering.

This branch supersedes all eight. Closing them in favour of it.

The release does not reach this workspace's behaviour

Diffed the two published crates directly:

Surface Result
include/tree_sitter/api.h byte-identical
Rust bindings byte-identical
TREE_SITTER_LANGUAGE_VERSION 15, unchanged (min compatible 13)
C sources 3 files, 36 lines

Because the ABI constants and the header are unchanged, the vendored
parser.c sources stay valid against the runtime — the drift
check-excluded-manifests.py exists to catch is not present. Because
the Rust bindings are unchanged, the Send + Sync argument that
big-code-analysis-py/src/node.rs rests on is unaffected.

The three C fixes:

  • parser.c — restart error recovery when the parser is already in
    ERROR_STATE. The only change with any plausible reach here, and it
    applies to malformed input.
  • tree_cursor.c — a later anonymous sibling no longer settles
    has_later_named_siblings.
  • query.c — anchor semantics for skipped quantifiers. Inert: this
    workspace uses no tree-sitter query API (no Query::new, no
    QueryCursor).

Each lockfile moved exactly this one package; no edge was re-pointed.

Verification

make pre-commitBCA_GATE: pass (gate=pre-commit)

  • 5,364 Rust tests pass (10 skipped) and 363 Python tests pass
    (1 xfailed)
    — the same totals main carries, so nothing was gained
    or lost.
  • No metric value moved. The working tree is free of .snap.new
    and the big-code-analysis-output submodule is clean at its recorded
    SHA c6840dce, so no integration snapshot shifted and no submodule
    bump is owed.
  • make fuzz-check passes separately, since fuzz/Cargo.lock sits
    outside the make pre-commit DAG. The fuzz targets build against
    0.26.12 under ASan on nightly.

Also updated

The three in-tree references naming the old pin, each a one-token
in-place edit: the rationale prose in AGENTS.md and in
utils/check-excluded-manifests.py, and the sendability note in
big-code-analysis-py/src/node.rs. The historical CHANGELOG.md entry
recording the 0.26.9 → 0.26.11 bump is left as written.

tree_sitter is re-exported from the library root, so the resolved
version is visible to consumers and the bump is recorded under
## [Unreleased]### Changed. Per STABILITY.md a runtime bump
rides a minor release; no public API shape changes.

Grammar pins are untouched — all twenty remain at their =X.Y.Z
versions.

Supersedes the eight Dependabot PRs that each proposed this bump for
one manifest (#1334, #1333, #1331, #1329, #1328, #1327, #1322, #1321).
The runtime is `=`-pinned in seven manifests and locked in eight
lockfiles; taking them one at a time would leave every intermediate
commit with a split pin, which `check-excluded-manifests.py` rejects
and which cannot resolve. They belong in one commit.

Nothing in the release reaches this workspace's behaviour.
`include/tree_sitter/api.h` and the Rust bindings are byte-identical
to 0.26.11, so `TREE_SITTER_LANGUAGE_VERSION` stays at 15, the
vendored `parser.c` sources remain valid against it, and the
`Send + Sync` argument in `big-code-analysis-py/src/node.rs` is
unaffected. Only three C files moved:

- `parser.c`: restart error recovery when already in `ERROR_STATE`.
- `tree_cursor.c`: a later *anonymous* sibling no longer settles
  `has_later_named_siblings`.
- `query.c`: anchor semantics for skipped quantifiers — inert here,
  since this workspace uses no tree-sitter query API.

Each lockfile moved exactly this one package; no edge was re-pointed.

Verification: `make pre-commit` -> `BCA_GATE: pass`, with 5,364 Rust
tests (10 skipped) and 363 Python tests (1 xfailed) — the same totals
main carries. No integration snapshot moved: the working tree is free
of `.snap.new` and the `big-code-analysis-output` submodule is clean
at its recorded SHA, so no metric value changed. `make fuzz-check`
passes separately, since `fuzz/Cargo.lock` sits outside the
`make pre-commit` DAG.

The three in-tree references naming the old pin are updated in the
same commit: the rationale prose in `AGENTS.md` and in
`utils/check-excluded-manifests.py`, and the sendability note in
`big-code-analysis-py/src/node.rs`. The historical `CHANGELOG.md`
entry recording the 0.26.9 -> 0.26.11 bump is left as written.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant