Skip to content

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

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.15.8#362
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/tree-sitter-language-pack-1.x

Conversation

@renovate

@renovate renovate Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
tree-sitter-language-pack ==1.14.3==1.15.8 age confidence

Release Notes

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

v1.15.8

Compare Source

Fixed
  • The plain-Java artifact reaches Maven Central again. It was the only registry still stuck at
    1.14.3: every 1.15.x publish skipped Publish Maven package, because the E2E gate — Java it
    sits behind failed first on 8 assertions of the shape expected: <null> but was: <[]>.

    The cause was a disagreement inside each generated Java record. A component backed by a Rust
    Vec carrying #[serde(default, skip_serializing_if = "Vec::is_empty")] was emitted as
    @Nullable, and the canonical constructor stored whatever it was handed — null included —
    while the Jackson builder defaulted the same component to List.of(). A record built through
    the builder, or round-tripped through JSON, therefore never compared equal to the same record
    built through the constructor. Regenerating against alef 0.67.2 drops @Nullable on those
    components and adds a compact constructor normalizing null to an empty collection, so both
    construction paths agree. Affected records: DataNode, DocstringInfo, ImportInfo,
    ProcessResult, StructureItem.

  • The hand-written Java unit tests asserted the old, wrong contract. They required such a
    component to arrive as null; the Rust fields behind them are plain Vec, never
    Option<Vec>, so empty is the truthful representation. They now assert
    assertEquals(List.of(), ...), which fails on null as well as on a non-empty list — the
    assertions were tightened, not relaxed to accept either shape. mvn test in packages/java
    reports 150 tests, 0 failures, 0 errors.

Added
  • Prerelease mode for the registry-mode test apps. task test-apps:prerelease:run (and
    :verify, :status, :clean) stages a throwaway copy of each test_apps/ app under
    .prerelease/ and redirects its dependency resolution at the in-repo package source, so the
    suite is runnable between a version bump and the publish — the window in which the pinned
    version exists on no registry and alef test-apps run cannot resolve anything. Covers rust,
    go, python, ruby, dart, elixir and swift; status names the remaining targets and why each
    needs a built artifact rather than a source path.

  • scripts/check_test_app_pins.py — a gate that fails when a test app is pinned to a release
    other than the one being built.
    It re-derives all 18 pins across every test_apps/ app plus
    the alef.toml registry pins from Cargo.toml, deliberately independent of alef, so a change
    in what alef sync-versions is willing to write surfaces as a failure instead of as silent
    drift. A pattern that matches nothing is an error, not a pass — that was the Dart failure mode.
    --fix repins everything; --release X checks against the version being published and also
    catches a Cargo.toml that disagrees with the tag.

    Wired in three places: task version:sync repins after alef sync-versions, the Check version sync CI step gates every push, and the publish workflow's validate-versions job gates the
    release itself against the tag. Also exposed as task test-apps:check-pins / :fix-pins.

  • scripts/sync_zig_zon_hashes.py — regenerates and verifies the test_apps/zig/build.zig.zon
    package hashes from the tarballs their URLs name.
    A Zig package hash is a content digest, so
    it cannot be derived from a version string the way every other test-app pin can; the only
    reproducible source is zig fetch <url>, which prints the exact hash Zig will demand. --fix
    rewrites them, the default verifies. Assets that 404 are reported as not-yet-published rather
    than as failures, which is the normal state between a version bump and its publish, so the
    check is safe to run at any point in the release cycle. Exposed as
    task test-apps:check-zig-hashes / :fix-zig-hashes and wired into the ci-zig job — the only
    job with a Zig toolchain. Because the digest only exists once the release has published its Zig
    assets, --fix runs after a publish, never during release prep.

  • The publish workflow now refreshes the Zig package hashes itself. A new
    refresh-zig-package-hashes job runs after publish-zig — the earliest point at which the
    tarballs the digests are taken over exist — recomputes every hash and commits
    test_apps/zig/build.zig.zon back to main, modelled on the Swift
    update-swift-package-manifest job. Catching the drift only made the manual --fix step
    forgettable again; this removes the step. The job cannot break a release that would otherwise succeed: nothing depends
    on it, it is continue-on-error, and it commits one file or none. It skips when main has
    already moved to a version this release did not publish, and reports every outcome — refreshed,
    already current, skipped, failed — in the run summary, since continue-on-error would
    otherwise let a failure pass unnoticed. --require-published is new on the script for this
    caller: after a successful publish a 404 is a missing upload, not the pre-publish window, and
    is a failure rather than a skip.

Fixed
  • test_apps/zig could not build at all — its five package hashes had been stale since 1.14.3.
    alef sync-versions repoints each .url at the release being cut, but a Zig package hash is a
    content digest over the fetched tarball, so nothing recomputed it and all five sat at the 1.14.3
    values while the URLs advanced to 1.15.7. zig build failed outright:

    error: hash mismatch: manifest declares tree_sitter_language_pack-1.14.3-jCz0Y85sQQ...
    but the fetched package has tree_sitter_language_pack-1.15.7-jCz0Y86TSQ...
    

    This is not the cosmetic staleness it looks like — the declared hashes are byte-identical to the
    real 1.14.3 tarball hashes, so every release from 1.15.0 to 1.15.7 shipped an app that resolves
    nothing. Nothing reported it because no workflow builds test_apps/zig: ci-zig builds
    packages/zig from the working tree and ci-e2e runs e2e/zig, so the one app that resolves
    these URLs was never exercised. All five are regenerated via zig fetch, and ci-zig now
    verifies them.

  • Five registry-mode test apps were validating an already-published release, not the one being
    built.
    test_apps/{elixir,swift_e2e,php} were pinned at 1.15.1 and
    test_apps/{dart,kotlin_android} at 1.15.2, against a 1.15.7 tree. Each gate passed — it
    proved the old release still installs, which is not what a registry-mode gate is for.
    All five are now repinned to the release being built.

    The cause is not the matched-nothing regex fixed for Dart below. Every one of these five sync
    rules does match its file. alef sync-versions reaches these paths through its catch-all
    branch, which refuses to rewrite a file that carries no alef provenance marker on the grounds
    that it reads as hand-written; it emits a WARN naming each skipped path and exits 0. So the
    rules looked applied and never were. alef.toml's own
    [crates.e2e.registry.packages.*] pins are skipped for the same reason.

    Compounding it, the Check version sync CI step diffs only packages/ and crates/, so
    test_apps/ drift was outside the gate's scope even when sync did rewrite it.

  • The test_apps/dart/pubspec.yaml version-sync rule required a caret the generated pubspec does
    not contain, so it matched nothing. Fixing the rule was necessary but not sufficient: the file
    is one of the five skipped by the catch-all branch above, so it stayed at 1.15.2 afterwards.

v1.15.7

Compare Source

Fixed
  • Regenerated against alef 0.66.0 (from 0.64.0, via 0.65.0). This clears the Swift E2E gate
    failure that blocked the v1.15.6 release: is_empty on a non-optional array reached through an
    optional parent emitted a Bool? into XCTAssertTrue, which does not typecheck, so the gate
    could never pass and every publish job downstream of it was skipped. The generated assertion now
    coalesces (?? true). alef verify --exit-code returns 0 against the regenerated tree.
  • Generated documentation snippets omit the level: front-matter key instead of emitting
    level: null, and every backend now orders IR items before emission — both are deliberate
    changes in alef 0.65.0/0.66.0 and account for the bulk of the regeneration diff.
Fixed
  • A failed publish can no longer announce itself as a successful release.
    announce-discord gated on !contains(needs.*.result, 'failure'), which is satisfied when
    every dependency is skipped -- the exact shape of the v1.15.5 run, where all 13 publish jobs
    skipped and the release reached zero registries. It now additionally requires
    release-finalize (the job that asserts every enabled target actually published) to have
    succeeded.

  • publish-wasm now genuinely waits on publish-node. publish-node was listed in its
    needs: but never restated in its if:; because the job opens with always(), the needs:
    entry alone gated nothing and WASM could publish to npm after the node publish had failed. The
    gate is deliberately negative-form (!= 'failure') so a legitimately skipped publish-node
    -- npm already at this version, or node not among the release targets -- does not cascade into
    skipping WASM.

  • 68 of the 85 files alef verify reported frozen are now recorded as alef-owned. Every one
    of them is a create-once seed, so plain alef adopt refuses them and the report's own remedy is
    unreachable without --clobber-create-once-seeds. Only the files that already match generated
    output byte-for-byte were adopted, so no content changed: 66 are recorded in
    .alef-ownership.toml (formats that cannot carry a marker), and packages/go/go.mod plus
    packages/zig/build.zig.zon gained the marker header. The 17 left frozen all differ from
    generated output and need a content decision -- notably packages/java/checkstyle.xml, whose
    generated form reverts the ${config_loc} + optional="false" SuppressionFilter fix, and
    checkstyle-suppressions.xml, whose generated form drops the NativeLib LineLength
    suppression. alef verify stays red on those 17.

  • task docs:snippets:validate:lang runs again. It invoked alef snippets validate, a
    subcommand that does not exist (alef snippets has list, check, parse, audit, gaps),
    so the target could only ever fail with unrecognized subcommand. It now calls
    alef snippets check --strict --cache off --lang {{.LANGUAGES}}, matching
    docs:snippets:validate with the per-language filter added. The --snippets path is dropped
    because check reads [workspace.docs.snippets], and LEVEL is dropped because check has no
    level flag -- each validator picks the deepest level its toolchain supports.

  • alef verify no longer reports 8,415 stale files. alef all ran at ada0fac and the
    1.15.6 version bump landed after it at e9816af; alef.toml is a hashed generation input, so
    every generated file was stamped against pre-bump inputs and nothing re-stamped them. The tree
    is regenerated after the bump, which rewrites the alef:hash: line in ~8,380 files. The
    remaining diffs are real drift the earlier regen never covered: all of test_apps/* (alef all
    does not run the test-apps stage -- alef test-apps generate is a separate command), plus the
    packages/*/README.md version strings. Regeneration order is now bump-then-generate; running
    alef all before alef sync-versions re-opens this.

  • Validate (Lint & Format) no longer fails on every release commit. The job passed
    python-extra-projects: packages/python to the shared validate workflow, which runs
    uv pip install -e packages/python -- a maturin build of crates/ts-pack-core-py, and so a run
    of crates/ts-pack-core/build.rs. That job never downloads the language-parsers artifact, so
    parsers/ is empty and build.rs falls through to the parser-sources-<version>.tar.zst release
    asset for the version in Cargo.toml -- which does not exist yet on a release commit, because
    the version is always bumped before its release is published. Run 3256236 (v1.15.6) died on
    that 404 at step 9 of 32, so Format check and Lint never ran at all. The input is dropped:
    its stated purpose (letting pyrefly resolve tree_sitter) was already satisfied by the root dev
    group in pyproject.toml, and ._native resolves from the checked-in _native.pyi stub, so
    pyrefly check packages/python reports 0 errors without the wheel being built.

  • Rust snippet validation no longer downloads parser sources. The rust snippet session now
    sets TSLP_OFFLINE=1. Its cargo check builds ts-pack-core through a path dependency and so
    runs the same build.rs against the same empty parsers/ tree -- the identical 404 on a release
    commit, one step later in the same job. TSLP_LANGUAGES is unset there, so no grammar is
    compiled into that check either way; skipping the sources changes nothing it validates.

  • Quick Start's kotlin-android process and quickstart tabs now import the generated corpus
    (generated/kotlin-android/process/config_all_python.md and
    generated/kotlin-android/parsing/parsing_python_function.md) instead of two hand-written
    stand-ins. Those stand-ins were kept back in 064e3c3 because the generated twins failed with
    unresolved reference 'io'; that classpath defect was fixed today (651ddba), so the
    stand-ins were deleted. Not re-verified with a session-based alef snippets check run -- watch
    the next CI run for kotlin_android snippet failures.

Changed
  • alef.toml now documents next to [workspace.docs.snippets] dirs why docs-site/src/snippets/ cli/*.md stay outside the validated snippet tree: the CLI is not an alef binding target, so no
    generated/cli directory can exist for them to migrate into. This was previously only implied by
    their absence from dirs -- nothing recorded that the gap was deliberate.

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 Aug 23, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 17 untouched benchmarks


Comparing renovate/tree-sitter-language-pack-1.x (9050108) with main (ac04486)

Open in CodSpeed

@codecov

codecov Bot commented Aug 23, 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

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 a70963c to 68fc733 Compare August 24, 2026 01:23
@renovate renovate Bot changed the title chore(deps): update dependency tree-sitter-language-pack to v1.15.7 chore(deps): update dependency tree-sitter-language-pack to v1.15.8 Aug 24, 2026
@renovate
renovate Bot force-pushed the renovate/tree-sitter-language-pack-1.x branch from 68fc733 to 9050108 Compare August 26, 2026 16:10
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