Tree-sitter 0.25 upgrade readiness
Tree-sitter 0.25 upgrade readiness
[email protected] (ABI 13–14) → target [email protected] (ABI 13–15).
TL;DR
Blocked — 9 grammars are not yet 0.25-compatible. Upstream movement: yes — 2 grammars have unreleased fixes on main.
- 4/10 npm-installed grammars already accept [email protected]
- 4/7 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— pinned0.23.1, npm latest0.23.5tree-sitter-go— pinned^0.23.0, npm latest0.25.0tree-sitter-javascript— pinned^0.23.0, npm latest0.25.0tree-sitter-python— pinned0.23.4, npm latest0.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.
tree-sitter-cpppinned at0.23.2(npm latest0.23.4) #1242 — last 0.23.x release before tree-sitter-cpp added a runtime dep on the broken-ABI tree-sitter-c@^0.23.1; pinning here removes the need for a transitive override
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.
[email protected]— peer^0.22.4. ABI 15 ontree-sitter/tree-sitter-php@masternot yet published[email protected]— peer^0.22.1. peer relaxed to^0.25.0ontree-sitter/tree-sitter-rust@masternot 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.
[email protected]— peer^0.21.1[email protected]— peer^0.21.1[email protected]— peer^0.21.0
Vendored parsers (7)
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-c0.21.4— ABI14(in target range), upstreamtree-sitter/tree-sitter-c@b780e47fc780ABI15· diverged from upstream- Held: ABI-pinned at 0.21.4 (#1242/#858) — needs a tree-sitter runtime upgrade before bumping
- Why vendored: gitnexus - runtime package derived from [email protected] (tree-sitter/tree-sitter-c).
- Action: after upgrading to [email protected], regenerate
parser.cfrom upstreamb780e47fc780.
tree-sitter-dart1.0.0— ABI14(in target range), upstreamUserNobody14/tree-sitter-dart@be07cf7118d3ABI15· diverged from upstream- Why vendored: gitnexus - pinned to UserNobody14/tree-sitter-dart commit 80e23c07b64494f7e21090bb3450223ef0b192f4.
- Action: after upgrading to [email protected], regenerate
parser.cfrom upstreambe07cf7118d3.
tree-sitter-kotlin0.4.0— ABI14(in target range), upstreamfwcd/tree-sitter-kotlin@1852ea17b7f6ABI14· diverged from upstream- Held: pinned to unreleased fwcd main commit c8ac3d26 for
fun interfacesupport (fwcd/tree-sitter-kotlin#169, closes #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).
- Held: pinned to unreleased fwcd main commit c8ac3d26 for
tree-sitter-objc3.0.2— ABI14(in target range), upstreamtree-sitter-grammars/tree-sitter-objc@181a81b8f23aABI14· diverged from upstream- Held: Pinned at 3.0.2 for the Objective-C provider MVP; carries darwin/linux arm64+x64 prebuilds compatible with the current tree-sitter runtime (linux-arm64 built from vendored source because the upstream npm artifact is mislabeled)
- Action: review upstream changes; vendored copy may need a refresh (no ABI bump required).
tree-sitter-proto0.4.1— ABI14(in target range), upstreamcoder3101/tree-sitter-proto@6c878d18628eABI15· diverged from upstream- Why vendored: gitnexus — loaded from vendor/ by absolute path at runtime (vendored-grammars.ts) — NEVER copied to node_modules (#2111); native build via build-tree-sitter-grammars.cjs.
- Action: after upgrading to [email protected], regenerate
parser.cfrom upstream6c878d18628e.
tree-sitter-swift0.7.1— ABI14(in target range), upstreamalex-pinkus/tree-sitter-swift@00bbb0a2550fABIn/a· diverged from upstream- Why vendored: gitnexus - runtime package derived from official [email protected] (gitHead 88bfd19a89be9d0481b14566fb6160cccea2fe0a).
- Action: review upstream changes; vendored copy may need a refresh (no ABI bump required).
tree-sitter-zig1.1.2— ABI14(in target range), upstreamtree-sitter-grammars/tree-sitter-zig@6479aa13f32fABI15· diverged from upstream- Why vendored: gitnexus - runtime package derived from @tree-sitter-grammars/[email protected] (ABI 14).
- Action: after upgrading to [email protected], regenerate
parser.cfrom upstream6479aa13f32f.
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-objc |
— | (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 |
tree-sitter-zig |
— | (vendored) | (vendored) | Yes | 14 | 15 | Vendored (ABI in target range) |
Generated daily by .github/workflows/tree-sitter-upgrade-readiness.yml. Closes automatically when all blockers are resolved.
Source: abhigyanpatwari/GitNexus