Skip to content

Tree-sitter 0.25 upgrade readiness #7

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 — 8 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
  • 3/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@be07cf7118d3 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 be07cf7118d3.
  • tree-sitter-kotlin 0.4.0 — ABI 14 (in target range), upstream fwcd/tree-sitter-kotlin@1852ea17b7f6 ABI 14 · diverged from upstream
    • Held: pinned to unreleased fwcd main commit c8ac3d26 for fun interface support (add fun interface support fwcd/tree-sitter-kotlin#169, closes fix(cli): fail cypher errors loudly #87) — npm latest (0.3.8) lacks the fix, so the monitor must NOT auto-revert (isNewer is strict-inequality: 0.3.8 != 0.4.0). Drop this hold and bump when upstream cuts a release that includes the fix
    • Why vendored: gitnexus - runtime package derived from tree-sitter-kotlin (fwcd) at unreleased main commit c8ac3d2627240160b999a2c100de3babbdb8f419 (package.json version 0.4.0; latest npm/tag is still 0.3.8).
    • 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@da7cbaa5c95e ABI 15 · diverged from upstream
  • tree-sitter-swift 0.7.1 — ABI 14 (in target range), upstream alex-pinkus/tree-sitter-swift@8e2730497f38 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) No 14 14 Vendored — held
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

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions