github jdx/hk v1.48.0
v1.48.0: Group inheritance and builtin polish

7 hours ago

Groups can now define defaults that child steps inherit, plus a new aqua checksum builtin, expanded RuboCop file matching, and a pklr fix for inline group configs.

Added

  • Inherit step settings from groups (@RobertDeRose) #982. A Group can now set dir, prefix, workspace_indicator, shell, stage, and exclude, and child steps inherit any field they don't define themselves. Override semantics are simple: a child value fully replaces the group value, never merges.

    local frontend = new Group {
        dir = "packages/frontend"
        prefix = "mise x --"
        steps {
            ["prettier"] = (Builtins.prettier) { batch = true }
            ["eslint"] = (Builtins.eslint) {
                dir = "different/path"   // overrides the group dir
                batch = true             // still inherits prefix
            }
        }
    }
  • aqua_update_checksum builtin (@hituzi-no-sippo) #977. A fix-only step that runs aqua update-checksum --prune whenever your aqua config or checksum files change, keeping aqua-checksums.json up to date and pruning unused entries.

Changed

  • ryl and ryl_markdown switch to check_diff (@hituzi-no-sippo) #978. Both builtins now run ryl --diff for check, surfacing exactly which YAML edits the linter wants to make. They also pick up project indicators (ryl.toml, .ryl.toml, .yamllint*) so the builtins are auto-suggested, and the bundled ryl tool stub moves to 0.15.0.

  • RuboCop builtin file filter mirrors RuboCop's defaults (@hituzi-no-sippo) #969. Replaces the types = List("ruby") matcher with the explicit glob list from RuboCop 1.87.0's default config, covering .rb, .gemspec, .rake, Gemfile, Rakefile, Vagrantfile, and friends, and applies RuboCop's default excludes (node_modules/**, tmp/**, vendor/**, .git/**). The bundled rubocop stub bumps to 1.87.0.

Fixed

  • pklr validation of inline new Group entries (@jdx) #983. Bumps pklr to 1.0.6, which fixes validation of Mapping<String, Step | Group> properties initialized with new Mapping<String, Step> {} — the shape used by hk's default hook config. Configs with inline new Group { ... } step entries no longer fail under the default pklr backend. Refs #981.

New Contributors

Full Changelog: v1.47.0...v1.48.0

💚 Sponsor hk

hk is developed by @jdx at en.dev — a small independent studio behind developer tools like mise, aube, hk, and more. Work on hk is funded by sponsorships.

If hk has sped up your pre-commit loop or made linting feel less painful, please consider sponsoring at en.dev. Sponsorships are what keep hk moving and the project independent.

Don't miss a new hk release

NewReleases is sending notifications on new releases.