Skip to content

chore(deps): update dependency tree-sitter-language-pack to v1.19.1 - #365

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/tree-sitter-language-pack-1.x
Open

chore(deps): update dependency tree-sitter-language-pack to v1.19.1#365
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/tree-sitter-language-pack-1.x

Conversation

@renovate

@renovate renovate Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
tree-sitter-language-pack ==1.16.1==1.19.1 age confidence

Release Notes

xberg-io/tree-sitter-language-pack (tree-sitter-language-pack)

v1.19.1

Compare Source

Changed
  • Alef stays pinned at 0.85.15. 0.86.1 rewrites the Swift binding to real value types --
    DataNode, ProcessResult and StructureItem become Codable structs with typed properties
    instead of typealiases to opaque Rust handles -- but does not update the Swift e2e suite it
    generates alongside them, which still calls result.language() and result.structure() on
    what are now properties. The two halves of its own output do not compile together, and e2e/
    is generated with a CI freshness gate, so the mismatch cannot be patched downstream. Reported
    upstream; the upgrade lands once the e2e emitter follows the binding emitter.
  • Removed the eight superseded release/swift/<version> branches. publish.yaml moves the
    release tag onto the same checksummed commit it pushes the branch to, so each branch named a
    commit already reachable through v<version>; a consumer pinned to one can switch to
    exact: "<version>" with no other change. release/swift/1.19.0 is retained.
Fixed
  • Patched an indent-stack underflow in the vendored agda external scanner. VEC_POP is a bare
    len-- and VEC_BACK reads data[len - 1], so the dedent loop could drain the stack, wrap
    len to UINT32_MAX and dereference the buffer plus 16 GiB. 1023 or more repeated '
    characters -- or NUL bytes -- crash the parser with SIGBUS. The same scanner also seeded its
    column-0 sentinel only when deserialize was called with a NULL buffer, while tree-sitter
    resets a scanner with a non-NULL inline buffer of length 0, leaving the following scan to read
    data[-1]. A survey of all 186 vendored scanners found both defects only in agda.
  • Dynamically loaded grammars are ABI-checked at load time. load_from_dir called
    Language::from_raw on a downloaded parser with only a null check, so an incompatible grammar
    was accepted and failed later at ts_parser_set_language -- or, just outside the compatible
    range, parsed wrongly. The ABI version is now compared against the linked runtime's
    MIN_COMPATIBLE_LANGUAGE_VERSION..=LANGUAGE_VERSION and rejected with both versions named. The
    bounds are read from the runtime, so a runtime upgrade moves them rather than leaving a stale
    literal behind.
  • scripts/sync_zig_zon_hashes.py now maintains alef.toml's
    [crates.e2e.registry.packages.zig.platform_hashes] alongside test_apps/zig/build.zig.zon.
    Nothing had ever populated that table, so it carried five STALE_HASH_REGENERATE placeholders;
    Alef responds to a placeholder by omitting the .hash line entirely, which is the only reason
    the manifest had to be declared user_owned in the first place. The five real digests are in
    place and the gate now fails on drift in either file.
  • The nightly sanitizer sweep finishes inside its job. Six consecutive nightlies were killed at
    the 120-minute limit, every one inside the parse sweep after all twelve preceding steps had
    passed, so the job reported neither its findings nor how far it got. The sweep now runs against
    a 90-minute budget checked between languages, states how many languages it swept, names any it
    did not reach, and bounds each parse with a timeout -- one pathological input had been running
    over ten minutes. The day's language order rotates by day-of-year so a truncated sweep stops
    dropping the same alphabetical tail every night.
  • That sweep also reports a finding it cannot attribute to a sanitizer exit code. UBSan raises
    SIGABRT where abort_on_error defaults to 1 and prints ERROR: UndefinedBehaviorSanitizer,
    neither of which the previous detector matched, so the agda crash above was exactly the shape
    it let through; any parse killed by a signal now counts. Its sanitizer environment is scoped to
    the ts-pack invocation as well -- as a step-level env: it also reached the shell, python3,
    find, grep and tee, each running uninstrumented with the runtime LD_PRELOADed into it
    and exitcode=42 in force, so a diagnosis raised in a helper would have been reported as a
    scanner finding.

v1.19.0

Compare Source

Changed
  • Upgraded the tree-sitter runtime to 0.27, moving tree-sitter-language to 0.1.8 in the same
    step. The two pins are not independent: 0.27 requires tree-sitter-language ^0.1.8, and 0.1.8
    relocates the 0.26 WASM shims under wasm/unsupported/ so they no longer compile against the
    older runtime. The grammar ABI is unchanged -- both 0.26 and 0.27 are
    TREE_SITTER_LANGUAGE_VERSION 15 with a minimum compatible version of 13 -- so every bundled
    grammar loads exactly as before and no regeneration is implied.
  • Consumers that also depend on tree-sitter directly must move to 0.27 in the same step. The
    tree-sitter crate declares links = "tree-sitter", and Cargo permits only one package per
    links value in a dependency graph, so pairing this release with a 0.26 pin fails to resolve
    rather than failing to compile. Nothing this crate exports changed: the requirement is a
    dependency floor, not a break in its own API.
  • Grammar scanners now compile with NDEBUG on wasm32. 0.27's WASM libc is a documented subset
    that excludes assert, so a scanner keeping its assertions emitted an unresolved __assert_fail.
    That became an env module import rather than a link error, and the package then failed to load
    at runtime with Cannot find module 'env'. Native builds keep their assertions.
  • Dropped this crate's own WASM libc shims (memchr, strcmp, iswalnum and friends) now that
    0.27 defines them. Keeping both made the two definitions collide at link time, which broke the
    WASM package under the split-codegen-unit settings the release build uses.
  • Replaced the 0.26 WASM integration, which used a separate non-thread-safe allocator and an
    incomplete libc. 0.27 supplies its own WASM libc and forwards C allocation to the Rust
    application's global allocator.
Fixed
  • Swift binaries again link a single tree-sitter C runtime. SwiftPM builds tree-sitter 0.25.10 for
    SwiftTreeSitter as loose object files, while this package's Rust staticlib carries the 0.27
    runtime in one archive member. Archive members load only to resolve an undefined symbol, and
    0.27's new ts_language_is_parseable was the first symbol SwiftPM's copy could not supply --
    pulling the member in and colliding on 253 other runtime symbols at link time. The C bridge now
    provides a weak definition, so the member stays unreferenced and yields to any future SwiftPM
    runtime that exports the symbol itself (#​189).
  • wasm32 builds now find their headers under either wasi-sysroot include layout. wasi-libc
    renamed include/wasm32-wasi to include/wasm32-wasip1, and probing only the former meant a
    sysroot that existed but used the newer name contributed no include flag at all, failing every
    grammar with 'stdlib.h' file not found. Toolchains whose clang supplies its own sysroot were
    unaffected, which is why this surfaced only in local builds.
  • Node::child_count now returns tree-sitter's u32 widened to the usize this crate has always
    declared, rather than failing to compile against the new runtime.

v1.18.0

Compare Source

Changed
  • Refreshed 22 grammar pins to their upstream latest: al, blade, cfml, dotenv,
    gitcommit, javadoc, kcl, kdl, lean, magik, mlir, nix, ocaml,
    ocaml_interface, perl, proto, sas, sql, swift, sysml and t32. abl is no
    longer held back: upstream now defines the outer_join node its highlights.scm
    references, so it compiles for the first time since the hold was taken. cuda is now the
    one deliberate hold -- upstream's committed parser.c grew past the regeneration
    threshold, so a bump would ship it as-is at ABI 15 and drop the injections and tags
    queries the grammar only receives while being regenerated.
  • Re-derived the ocaml_interface highlights overlay from upstream's reworked query.
    tree-sitter-ocaml declares one shared queries/highlights.scm for all three of its
    grammars, but that query matches (shebang), which only the implementation grammar
    defines; the overlay is upstream's file with that alternative removed, and it had drifted
    behind their block-access rework.
  • Regenerated bindings, fixtures, documentation and release workflows with Alef 0.85.15.
    C# contains assertions now compare a JSON-serialized value instead of
    Convert.ToString, which reported a type name rather than content for tagged unions such
    as StructureKind. The PHP e2e runner exports the verified extension path so processes it
    spawns under -n load the same build.
  • Upgraded rmcp to 3.3.
  • Retained tree-sitter 0.26 and the tree-sitter-language 0.1.7 pin. tree-sitter 0.27
    requires tree-sitter-language 0.1.8 and removed its Package.swift, so SwiftTreeSitter
    cannot follow it; the upgrade also changes this crate's public API, since Language is
    re-exported. (#​189)
Fixed
  • Publish every native NuGet runtime package required by the managed package's runtime graph.
  • Upload Dart native archives and checksums required by the generated package downloader.
  • Publish Go installer archive aliases and their required SHA256 sidecars.
  • Recorded the node e2e harness's tree-sitter floor in alef.toml and realigned
    test_apps/node's lockfile with its regenerated manifest, which disagreed and broke
    pnpm install --frozen-lockfile. Realigned the generated Go e2e module pin, which the
    version sync leaves behind.

v1.17.0

Compare Source

Changed
  • Retain tree-sitter 0.26 and the current grammar revisions. The attempted 0.27 upgrade
    is deferred because SwiftTreeSitter 0.25 requires the 0.25 C runtime, which conflicts
    with the newer runtime in our published static Swift library. Pin the WASM shim
    dependency tree-sitter-language to 0.1.7 because 0.1.8 rejects the retained runtime. (#​189)
  • Regenerate bindings, fixtures, documentation, and release workflows with Alef 0.85.11;
    upgrade Rust dependencies, including dirs 7 and zstd 0.14.
Added
  • Restore the Rust extension_ambiguity() API and its serde-gated JSON companion to expose the
    default language and alternatives for ambiguous file extensions. (#​185)
Fixed
  • Propagate C# fallible-void native failures as typed exceptions while preserving their
    native error codes and messages; narrow Java boolean returns to the C ABI width.
  • Preserve Swift declaration kinds, protocol requirements, aliases and constants; retain
    TypeScript namespace ownership and named arrow functions without duplicate constants. (#​186)
  • Preserve YAML flow collections and scalar keys, TOML dotted keys and commented containers,
    JSON property spans, and Terraform/HCL paths. Reject concatenated JSON documents and handle
    deeply nested TOML keys without overflowing the stack. (#​186)
  • Stage the matching ktreesitter host native library for Kotlin Android JVM tests and
    synchronize dependency lockfiles used by documentation and generated test suites.

v1.16.2

Compare Source

Fixed
  • process() returns a ProcessResult object again in Python, so attribute access works.
    In 1.16.1 the generator emitted options.ProcessResult as class ProcessResult(TypedDict, total=False), which is a type annotation and not a runtime class -- process() therefore handed
    back a plain dict, and every documented access (result.language, result.chunks,
    result.metrics.total_lines) raised AttributeError. Only Python was affected; the TypedDict
    path existed in no other binding, so the same call in Node, Go, Ruby or Java kept returning a
    real object throughout. ProcessResult is a @dataclass(frozen=True, slots=True) again, as it
    was before 1.16.1 and as every sibling binding already models it. (#​183)
  • The generated e2e suites assert against the shape their binding actually returns. Two
    backends were broken by one generator-level disagreement, in which the e2e emitter and the
    binding emitter held different ideas about the shape of a value they share. In Python, 72 of the
    523 tests failed because the emitter wrote attribute assertions (result.language == "python")
    against a value the binding emitter was generating as a dict. In TypeScript, 18 of the 37
    process tests failed because the emitter wrote String(e.kind).includes("Function") against
    kind, which is an object -- String({ type: "Function" }) is "[object Object]", so every
    structure-kind assertion evaluated false and reported it as the uninformative expected false to be true. Both emitters now read the value the way the binding presents it -- the dataclass
    attribute in Python, e.kind?.["type"] === "Function" in TypeScript -- and both suites are 523
    passed / 0 failed. (#​182)
Changed
  • Regenerated all bindings, stubs, scaffolding, READMEs, test apps and e2e suites on alef 0.84.1
    (from 0.82.2). 0.82.1 deleted the TypedDict path from the Python binding emitter and 0.75.0
    fixed the e2e emitter, so this is the first release carrying both. 0.84.1 also makes generation
    reproducible across runs, which clears the 459 spurious TypeScript snippet-compile failures the
    0.84.0 line reported.
Note on the npm package

@xberg-io/tree-sitter-language-pack skipped both 1.16.0 and 1.16.1 -- npm's latest is still
1.15.8 -- for two different reasons. 1.16.0 never got past Validate version consistency, the
unrun task version:sync recorded in the 1.16.1 notes below. 1.16.1 cleared that gate and then
failed E2E gate — Node on the 18 TypeScript failures above; that job blocks the npm publish, so
the package never reached the registry. The wasm package is gated separately and did ship 1.16.1.
1.16.2 is the first release in which both gates pass.

Note
  • 1.16.2 is a fix-only release. The two defects above landed together in 1.16.1 and are the whole
    content of this one; no grammar pins moved.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@codspeed-hq

codspeed-hq Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 17 untouched benchmarks


Comparing renovate/tree-sitter-language-pack-1.x (7011f32) with main (826518d)

Open in CodSpeed

@codecov

codecov Bot commented Sep 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown

📊 Source Code Metrics (this PR vs main)

No metric changes detected.

Generated by mehen v1.10.0 — the code quality watcher.

@renovate
renovate Bot force-pushed the renovate/tree-sitter-language-pack-1.x branch from 3c5aadd to 8bdd105 Compare September 10, 2026 11:15
@renovate renovate Bot changed the title chore(deps): update dependency tree-sitter-language-pack to v1.16.2 chore(deps): update dependency tree-sitter-language-pack to v1.17.0 Sep 10, 2026
@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 9f42ad7a-91cd-4321-b9f6-01ddaa99b940

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@renovate
renovate Bot force-pushed the renovate/tree-sitter-language-pack-1.x branch from 8bdd105 to 5e84fd5 Compare September 11, 2026 19:59
@renovate renovate Bot changed the title chore(deps): update dependency tree-sitter-language-pack to v1.17.0 chore(deps): update dependency tree-sitter-language-pack to v1.18.0 Sep 11, 2026
@renovate
renovate Bot force-pushed the renovate/tree-sitter-language-pack-1.x branch from 5e84fd5 to 04bc5ee Compare September 12, 2026 17:58
@renovate renovate Bot changed the title chore(deps): update dependency tree-sitter-language-pack to v1.18.0 chore(deps): update dependency tree-sitter-language-pack to v1.19.0 Sep 12, 2026
@renovate
renovate Bot force-pushed the renovate/tree-sitter-language-pack-1.x branch from 04bc5ee to 7011f32 Compare September 13, 2026 17:34
@renovate renovate Bot changed the title chore(deps): update dependency tree-sitter-language-pack to v1.19.0 chore(deps): update dependency tree-sitter-language-pack to v1.19.1 Sep 13, 2026
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.

0 participants