build(deps): update project tools 2026-07 - #85
Merged
Conversation
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
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.
Monthly tool refresh. Every version was verified against the actual project before being committed (
mise x tool@versionon the real config/sources), one commit per tool.Applied
actionlint— 0 findings; new crontimezonecheck does not apply (no scheduled workflows)git-cliff --unreleasedrenders;cliff.tomlschema unchangedusage generate completion zshOK. The 4.0.0 major only marks Rust structs#[non_exhaustive]forusage-libdependents — we consume the prebuilt CLI, so no impact. KDL spec format unchangeddprint checkclean. The two 0.55.0 breaking changes (additive plugin associations, case-sensitive globs) don't affect ourdprint.jsonswiftlint lint --strict Sources Testsclean — the 4 new default-on rules (redundant_final,invisible_character,variable_shadowing,legacy_uigraphics_function) produce no violations. Deliberately not 0.65.0 — see Skippedswift build:status: successon success,status: failed+ error count on a broken build — identical to 1.2.0. Picks up theos_log/CoreData noise filter that addresses the false positive documented introubleshooting.mdswiftformat Sources Tests --lint→ 0/458 files require formatting (see config note below)hk check --allexit 0 (requires thehk.pklpackage bump below)mise run codegen:pkloutput is byte-identical to what's committed, modulo the known stripped trailing newline. Also patches two package-cache path-traversal advisories (GHSA-87qh-25w9-mh34, GHSA-fgvf-hh2w-cxff) that affect 0.31.1Config changes required by the bumps
Three bumps could not land as a version-only edit:
.swiftformat— 0.62.0 split the opt-inwrapConditionalBodiesrule intowrapIfStatementBodies/wrapIfExpressionBodies/wrapGuardStatementBodiesand turned the twowrapIf*halves on by default. Left alone this reformats 36 files / 253 sites. Both are explicitly disabled to keep existing single-lineifbodies, so this PR contains zero source reformatting. Enabling them is a separate style decision.hk.pkl— hk 1.47+ evaluateshk.pklwith the built-inpklrinstead of the externalpklCLI, andpklrrejects the old package schema:Eval error: undefined variable: extra_files. Thehk@1.28.0package URI is bumped tohk@1.53.0in the same commit.Schemas/generator-settings.pkl— pkl 0.32 treatspackage://andprojectpackage://as distinct module identities, so codegen died withModule version conflict: ... pkl.swift.GeneratorSettings. It now amends the project dependency@pkl.swift/GeneratorSettings.pkl. Note this makes codegen require pkl 0.32+ (it no longer runs on 0.31.1), which the pinned version guarantees.mise.lockis refreshed per tool.mise lockappends rather than replaces, so stale version blocks were pruned (one leftoveractionlint 1.7.11block is dropped in its own commit).Skipped
excluded:when handed explicit file paths. hk runsswiftlint lint --strict {{files}}in batch mode, soSources/ExFigConfig/Generated/*.pkl.swiftgets linted andhk check --allfails withfile_length/type_name/redundant_string_enum_valueerrors. Reproducible in one line:swiftlint lint --strict --quiet Sources/ExFigConfig/Generated/Lint.pkl.swift→ clean on 0.63.3, 1 error on 0.64.0+. Revisit once upstream restores exclusion for explicit pathsNothing else is held back — the GitHub Actions majors below were reviewed and taken.
GitHub Actions
All five pending bumps are majors, each reviewed against how this repo actually invokes the action.
actionlintpasses after every commit.pull_request_target/workflow_runpush,pull_request, tags,workflow_dispatch). The same restriction was backported to v6.1.0, which the floating@v6tag already resolved tomacos-15,ubuntu-latest,windows-latest)upload-artifactv4 -> v7; addsinclude-hidden-filesinputpath: docsis passed; dotfile exclusion already landed in v4ubuntu-latest. v3.0.2 also fixes publishing a prerelease over an existing draft and unreliable small-asset uploads, both of which this release job exercisesbranch->swift-versionandtag->swift-build[DEPRECATED]), so the bump is compatible. Migrated to the new names in a separate commit anywayAlready on their latest major:
actions/deploy-pages@v5,actions/download-artifact@v8,actions/upload-artifact@v7,jdx/mise-action@v4,orhun/git-cliff-action@v4.Coverage gap: this PR's CI exercises
checkout,cacheandgha-setup-swift(Windows job inci.yml).action-gh-release@v3andupload-pages-artifact@v5live inrelease.yml/deploy-docc.yml, which only run on a tag push — they are unverified until the next release/docs deploy.Not verified locally
mise run buildandmise run testcould not be run. The package requires Swift tools 6.3 (.swift-version= 6.3.0) but this machine has 6.2.4 from Xcode and swiftly has no release toolchain installed, soswift buildfails withpackage is using Swift tools version 6.3.0 but the installed version is 6.2.4. This is pre-existing environment drift, unrelated to this PR — no Swift source is touched here. CI is the gate for the build/test paths.One cosmetic side effect worth knowing:
mise run lintpipes SwiftLint output through xcsift, and since that isn't a build log, xcsift 1.3.1 now printsstatus: incompletewhere 1.2.0 printedstatus: success. Exit code is unchanged (0) and CI gates on exit codes only, so nothing breaks — but the status line in that one task is misleading.Follow-ups (not in this PR)
hk.pklpinsTOOLCHAIN_DIRto~/.local/share/mise/installs/swift/6.2.3, which no longer matches.swift-version(6.3.0).mise.tomlcomment onpklstill says "for hk.pkl", but hk now uses its own embeddedpklr— pkl is kept forcodegen:pkl.mise run format-checkpipeshk check --allthroughgrep -E '^(✔|✗|hk )'underset -o pipefail. Only one hk line matches that pattern, so if hk ever stops printing it the task fails with no diagnostic.