Important
The original v1.58.0 publishing workflow failed after the tag was created. This backfilled release contains no binary assets and was not published to crates.io. The changes below first became available to installers in v1.58.1; use that version or newer.
This release adds the droast Dockerfile linter and fixes several places where hk's effective behavior diverged from its configuration: project and global Pkl scalar settings now reach the runtime, standalone subdirectory configs stay scoped to their own project, and HK_CHECK plus the corresponding git settings correctly select check or fix commands. Release binaries also regain their embedded Pkl package instead of silently falling back to the network.
Added
- droast Dockerfile linter (@illesnagy1) #1302. The new
droastbuiltin checksDockerfile,Dockerfile.*, andContainerfile*files and can apply droast's safe, deterministic fixes withhk fix.
Fixed
- Pkl scalar settings now take effect (@jdx) #1307.
terminal_progress,walk_ignore, andstash_backup_countare now loaded from project Pkl and user-global configuration, merged with the existing project-first precedence, and shown correctly byhk config dump. - Standalone subprojects stay in scope (@thespags) #1290. Running hk from a subdirectory with its own
hk.pklno longer causes that config to match unrelated files from the repository root. Literaldir = "."steps are scoped correctly as well. - Check/fix settings select the right command (@jdx) #1318.
HK_CHECK,git config hk.check, andgit config hk.fixnow affect run-type selection as documented. Explicit flags retain highest precedence, and check mode wins when configuration is contradictory so hk leaves files unchanged. - pinact sees root action metadata (@risu729) #1321. The
pinactandpinact_updatebuiltins now include a repository-rootaction.ymloraction.yaml, not only workflow and nested action files. - Release binaries embed the Pkl package again (@sahidvelji) #1299. Release builds now generate the gitignored builtin package before compilation and fail if it is absent, preventing a supposedly self-contained binary from silently requiring a network fetch.
- Release publication targets the source repository (@jdx) #1292, avoiding accidental reliance on the caller's current repository context.
Documentation
- Corrected configuration precedence, check/fix environment-variable behavior, supported skip reasons, stash descriptions, and several CLI examples; added missing help for hook subcommands and options #1316.
- Clarified that Lefthook provides partial pre-commit stash handling while leaving untracked files visible #1297.
- Added Open Graph and search metadata, including the initial social preview image #1324 #1327.
Release and CI
Release and performance infrastructure was updated throughout this cycle: hk adopted the mr-boxington cargo shim and dedicated performance runners, restored and refined remote build caching, updated runner images and action dependencies, added conventional-commit enforcement, and introduced signed packslip generation for release artifacts.
New Contributors
- @thespags made their first contribution in #1290.
- @illesnagy1 made their first contribution in #1302.
Full Changelog: v1.57.0...v1.58.0
💚 Sponsor hk
hk is maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If hk speeds up your pre-commit loop or makes linting less painful, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep hk fast, free, and independent.