chore(deps): update dependency tree-sitter-language-pack to v1.15.8 - #362
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency tree-sitter-language-pack to v1.15.8#362renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
📊 Source Code Metrics (this PR vs
|
renovate
Bot
force-pushed
the
renovate/tree-sitter-language-pack-1.x
branch
from
August 24, 2026 01:23
a70963c to
68fc733
Compare
renovate
Bot
force-pushed
the
renovate/tree-sitter-language-pack-1.x
branch
from
August 26, 2026 16:10
68fc733 to
9050108
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==1.14.3→==1.15.8Release Notes
xberg-io/tree-sitter-language-pack (tree-sitter-language-pack)
v1.15.8Compare 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 theE2E gate — Javaitsits 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
Veccarrying#[serde(default, skip_serializing_if = "Vec::is_empty")]was emitted as@Nullable, and the canonical constructor stored whatever it was handed —nullincluded —while the Jackson builder defaulted the same component to
List.of(). A record built throughthe 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
@Nullableon thosecomponents and adds a compact constructor normalizing
nullto an empty collection, so bothconstruction 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 plainVec, neverOption<Vec>, so empty is the truthful representation. They now assertassertEquals(List.of(), ...), which fails onnullas well as on a non-empty list — theassertions were tightened, not relaxed to accept either shape.
mvn testinpackages/javareports 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 eachtest_apps/app under.prerelease/and redirects its dependency resolution at the in-repo package source, so thesuite is runnable between a version bump and the publish — the window in which the pinned
version exists on no registry and
alef test-apps runcannot resolve anything. Covers rust,go, python, ruby, dart, elixir and swift;
statusnames the remaining targets and why eachneeds 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 releaseother than the one being built. It re-derives all 18 pins across every
test_apps/app plusthe
alef.tomlregistry pins fromCargo.toml, deliberately independent of alef, so a changein what
alef sync-versionsis willing to write surfaces as a failure instead of as silentdrift. A pattern that matches nothing is an error, not a pass — that was the Dart failure mode.
--fixrepins everything;--release Xchecks against the version being published and alsocatches a
Cargo.tomlthat disagrees with the tag.Wired in three places:
task version:syncrepins afteralef sync-versions, theCheck version syncCI step gates every push, and the publish workflow'svalidate-versionsjob gates therelease itself against the tag. Also exposed as
task test-apps:check-pins/:fix-pins.scripts/sync_zig_zon_hashes.py— regenerates and verifies thetest_apps/zig/build.zig.zonpackage 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.--fixrewrites 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-hashesand wired into theci-zigjob — the onlyjob with a Zig toolchain. Because the digest only exists once the release has published its Zig
assets,
--fixruns after a publish, never during release prep.The publish workflow now refreshes the Zig package hashes itself. A new
refresh-zig-package-hashesjob runs afterpublish-zig— the earliest point at which thetarballs the digests are taken over exist — recomputes every hash and commits
test_apps/zig/build.zig.zonback tomain, modelled on the Swiftupdate-swift-package-manifestjob. Catching the drift only made the manual--fixstepforgettable 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 whenmainhasalready 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-errorwouldotherwise let a failure pass unnoticed.
--require-publishedis new on the script for thiscaller: 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/zigcould not build at all — its five package hashes had been stale since 1.14.3.alef sync-versionsrepoints each.urlat the release being cut, but a Zig package hash is acontent 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 buildfailed outright: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-zigbuildspackages/zigfrom the working tree andci-e2erunse2e/zig, so the one app that resolvesthese URLs was never exercised. All five are regenerated via
zig fetch, andci-zignowverifies 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 andtest_apps/{dart,kotlin_android}at 1.15.2, against a 1.15.7 tree. Each gate passed — itproved 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-versionsreaches these paths through its catch-allbranch, which refuses to rewrite a file that carries no alef provenance marker on the grounds
that it reads as hand-written; it emits a
WARNnaming each skipped path and exits 0. So therules 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 syncCI step diffs onlypackages/andcrates/, sotest_apps/drift was outside the gate's scope even when sync did rewrite it.The
test_apps/dart/pubspec.yamlversion-sync rule required a caret the generated pubspec doesnot 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.7Compare Source
Fixed
failure that blocked the v1.15.6 release:
is_emptyon a non-optional array reached through anoptional parent emitted a
Bool?intoXCTAssertTrue, which does not typecheck, so the gatecould never pass and every publish job downstream of it was skipped. The generated assertion now
coalesces (
?? true).alef verify --exit-codereturns 0 against the regenerated tree.level:front-matter key instead of emittinglevel: null, and every backend now orders IR items before emission — both are deliberatechanges 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-discordgated on!contains(needs.*.result, 'failure'), which is satisfied whenevery 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 havesucceeded.
publish-wasmnow genuinely waits onpublish-node.publish-nodewas listed in itsneeds:but never restated in itsif:; because the job opens withalways(), theneeds: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 skippedpublish-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 verifyreported frozen are now recorded as alef-owned. Every oneof them is a create-once seed, so plain
alef adoptrefuses them and the report's own remedy isunreachable without
--clobber-create-once-seeds. Only the files that already match generatedoutput byte-for-byte were adopted, so no content changed: 66 are recorded in
.alef-ownership.toml(formats that cannot carry a marker), andpackages/go/go.modpluspackages/zig/build.zig.zongained the marker header. The 17 left frozen all differ fromgenerated output and need a content decision -- notably
packages/java/checkstyle.xml, whosegenerated form reverts the
${config_loc}+optional="false"SuppressionFilter fix, andcheckstyle-suppressions.xml, whose generated form drops the NativeLibLineLengthsuppression.
alef verifystays red on those 17.task docs:snippets:validate:langruns again. It invokedalef snippets validate, asubcommand that does not exist (
alef snippetshaslist,check,parse,audit,gaps),so the target could only ever fail with
unrecognized subcommand. It now callsalef snippets check --strict --cache off --lang {{.LANGUAGES}}, matchingdocs:snippets:validatewith the per-language filter added. The--snippetspath is droppedbecause
checkreads[workspace.docs.snippets], andLEVELis dropped becausecheckhas nolevel flag -- each validator picks the deepest level its toolchain supports.
alef verifyno longer reports 8,415 stale files.alef allran atada0facand the1.15.6 version bump landed after it at
e9816af;alef.tomlis a hashed generation input, soevery 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. Theremaining diffs are real drift the earlier regen never covered: all of
test_apps/*(alef alldoes not run the test-apps stage --
alef test-apps generateis a separate command), plus thepackages/*/README.mdversion strings. Regeneration order is now bump-then-generate; runningalef allbeforealef sync-versionsre-opens this.Validate (Lint & Format)no longer fails on every release commit. The job passedpython-extra-projects: packages/pythonto the shared validate workflow, which runsuv pip install -e packages/python-- a maturin build ofcrates/ts-pack-core-py, and so a runof
crates/ts-pack-core/build.rs. That job never downloads thelanguage-parsersartifact, soparsers/is empty and build.rs falls through to theparser-sources-<version>.tar.zstreleaseasset for the version in
Cargo.toml-- which does not exist yet on a release commit, becausethe version is always bumped before its release is published. Run
3256236(v1.15.6) died onthat 404 at step 9 of 32, so
Format checkandLintnever ran at all. The input is dropped:its stated purpose (letting pyrefly resolve
tree_sitter) was already satisfied by the root devgroup in
pyproject.toml, and._nativeresolves from the checked-in_native.pyistub, sopyrefly check packages/pythonreports 0 errors without the wheel being built.Rust snippet validation no longer downloads parser sources. The
rustsnippet session nowsets
TSLP_OFFLINE=1. Itscargo checkbuilds ts-pack-core through a path dependency and soruns the same build.rs against the same empty
parsers/tree -- the identical 404 on a releasecommit, one step later in the same job.
TSLP_LANGUAGESis unset there, so no grammar iscompiled into that check either way; skipping the sources changes nothing it validates.
Quick Start's kotlin-android
processandquickstarttabs now import the generated corpus(
generated/kotlin-android/process/config_all_python.mdandgenerated/kotlin-android/parsing/parsing_python_function.md) instead of two hand-writtenstand-ins. Those stand-ins were kept back in
064e3c3because the generated twins failed withunresolved reference 'io'; that classpath defect was fixed today (651ddba), so thestand-ins were deleted. Not re-verified with a session-based
alef snippets checkrun -- watchthe next CI run for kotlin_android snippet failures.
Changed
alef.tomlnow documents next to[workspace.docs.snippets] dirswhydocs-site/src/snippets/ cli/*.mdstay outside the validated snippet tree: the CLI is not an alef binding target, so nogenerated/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)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.