Skip to content

Tree-sitter 0.25 upgrade readiness #2194

@github-actions

Description

@github-actions

Tree-sitter 0.25 upgrade readiness

tree-sitter@0.21.x (ABI 13–14) → target tree-sitter@0.25.0 (ABI 13–15).

TL;DR

Blocked — 7 grammars are not yet 0.25-compatible. Upstream movement: yes — 2 grammars have unreleased fixes on main.

  • 4/10 npm-installed grammars already accept tree-sitter@0.25.0
  • 4/5 vendored grammars at an ABI within the target runtime range
  • 1 intentionally pinned (see below)
  • 2 waiting on an upstream npm release
  • 3 blocked on upstream (no fix even on main)

Disposition

Ready for 0.25 (4)

These grammars' npm-latest peer dep already accepts the target runtime. No action needed for the upgrade.

  • tree-sitter-c-sharp — pinned 0.23.1, npm latest 0.23.5
  • tree-sitter-go — pinned ^0.23.0, npm latest 0.25.0
  • tree-sitter-javascript — pinned ^0.23.0, npm latest 0.25.0
  • tree-sitter-python — pinned 0.23.4, npm latest 0.25.0

Intentionally pinned (1)

Deliberately held below npm latest. These are not drift — each entry lists the issue motivating the pin and the condition for unpinning.

Waiting on upstream npm release (2)

Fixes are merged on the upstream main branch but not yet published to npm. We can move forward as soon as upstream cuts a release.

  • tree-sitter-php@0.24.2 — peer ^0.22.4. ABI 15 on tree-sitter/tree-sitter-php@master not yet published
  • tree-sitter-rust@0.24.0 — peer ^0.22.1. peer relaxed to ^0.25.0 on tree-sitter/tree-sitter-rust@master not yet published

Blocked on upstream (3)

Peer dep is too tight on both the latest npm release and on upstream main. These need an upstream issue/PR before we can proceed.

  • tree-sitter-java@0.23.5 — peer ^0.21.1
  • tree-sitter-ruby@0.23.1 — peer ^0.21.1
  • tree-sitter-typescript@0.23.2 — peer ^0.21.0

Vendored parsers (5)

These grammars ship from gitnexus/vendor/ rather than the npm registry. Their compatibility is governed by the vendored ABI (must lie in the target runtime's range), not by a peer-dep negotiation. The rationale for each vendored copy lives in its own package.json _vendoredBy field.

  • tree-sitter-c 0.21.4 — ABI 14 (in target range), upstream tree-sitter/tree-sitter-c@b780e47fc780 ABI 15 · diverged from upstream
  • tree-sitter-dart 1.0.0 — ABI 14 (in target range), upstream UserNobody14/tree-sitter-dart@a9bdfa3db2fb ABI 15 · diverged from upstream
    • Why vendored: gitnexus - pinned to UserNobody14/tree-sitter-dart commit 80e23c07b64494f7e21090bb3450223ef0b192f4.
    • Action: after upgrading to tree-sitter@0.25.0, regenerate parser.c from upstream a9bdfa3db2fb.
  • tree-sitter-kotlin 0.3.8 — ABI 14 (in target range), upstream fwcd/tree-sitter-kotlin@c8ac3d262724 ABI 14 · diverged from upstream
    • Why vendored: gitnexus - runtime package derived from tree-sitter-kotlin@0.3.8 (fwcd).
    • Action: review upstream changes; vendored copy may need a refresh (no ABI bump required).
  • tree-sitter-proto 0.4.1 — ABI 14 (in target range), upstream coder3101/tree-sitter-proto@d65a18ce7c22 ABI 15 · diverged from upstream
    • Why vendored: gitnexus — loaded from vendor/ by absolute path at runtime (vendored-grammars.ts) — NEVER copied to node_modules (npm error code EPERM when add mcp to antigravity, v1.6.6 #2111); native build via build-tree-sitter-grammars.cjs.
    • Action: after upgrading to tree-sitter@0.25.0, regenerate parser.c from upstream d65a18ce7c22.
  • tree-sitter-swift 0.7.1 — ABI 14 (in target range), upstream alex-pinkus/tree-sitter-swift@fc5bf2e693cf ABI n/a · diverged from upstream
    • Why vendored: gitnexus - runtime package derived from official tree-sitter-swift@0.7.1 (gitHead 88bfd19a89be9d0481b14566fb6160cccea2fe0a).
    • Action: review upstream changes; vendored copy may need a refresh (no ABI bump required).

Full grammar matrix

Click to expand the raw per-grammar table (used by the workflow's change-detection bot).
Grammar Pinned npm latest Peer dep Satisfies 0.25? ABI Upstream ABI Status
tree-sitter-c (vendored) (vendored) No 14 15 Vendored — held
tree-sitter-c-sharp 0.23.1 0.23.5 ^0.25.0 Yes 14 15 Ready
tree-sitter-cpp 0.23.2 0.23.4 ^0.21.1 No 14 15 Intentionally pinned
tree-sitter-dart (vendored) (vendored) Yes 14 15 Vendored (ABI in target range)
tree-sitter-go ^0.23.0 0.25.0 ^0.25.0 Yes 14 15 Ready
tree-sitter-java ^0.23.5 0.23.5 ^0.21.1 No 14 14 Blocking
tree-sitter-javascript ^0.23.0 0.25.0 ^0.25.0 Yes 14 15 Ready
tree-sitter-kotlin (vendored) (vendored) Yes 14 14 Vendored (ABI in target range)
tree-sitter-php ^0.23.0 0.24.2 ^0.22.4 No 14 15 Unreleased (ABI 15 on main)
tree-sitter-proto (vendored) (vendored) Yes 14 15 Vendored (ABI in target range)
tree-sitter-python 0.23.4 0.25.0 ^0.25.0 Yes 14 15 Ready
tree-sitter-ruby ^0.23.1 0.23.1 ^0.21.1 No 14 14 Blocking
tree-sitter-rust 0.23.1 0.24.0 ^0.22.1 No 14 15 Unreleased (peer relaxed on main)
tree-sitter-swift (vendored) (vendored) Yes 14 n/a Vendored (ABI in target range)
tree-sitter-typescript ^0.23.2 0.23.2 ^0.21.0 No 14 14 Blocking

Generated daily by .github/workflows/tree-sitter-upgrade-readiness.yml. Closes automatically when all blockers are resolved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions