github jdx/hk v1.58.0

3 hours ago

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 droast builtin checks Dockerfile, Dockerfile.*, and Containerfile* files and can apply droast's safe, deterministic fixes with hk fix.

Fixed

  • Pkl scalar settings now take effect (@jdx) #1307. terminal_progress, walk_ignore, and stash_backup_count are now loaded from project Pkl and user-global configuration, merged with the existing project-first precedence, and shown correctly by hk config dump.
  • Standalone subprojects stay in scope (@thespags) #1290. Running hk from a subdirectory with its own hk.pkl no longer causes that config to match unrelated files from the repository root. Literal dir = "." steps are scoped correctly as well.
  • Check/fix settings select the right command (@jdx) #1318. HK_CHECK, git config hk.check, and git config hk.fix now 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 pinact and pinact_update builtins now include a repository-root action.yml or action.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

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.

Don't miss a new hk release

NewReleases is sending notifications on new releases.