Skip to content

Releases: hops-ops/hops-cli

v0.20.0

28 Apr 21:18

Choose a tag to compare

What's changed in v0.20.0

  • feat(config-install): handle multi-function package builds (#42) (by @patrickleet)

    up project build for a Configuration repo with multiple functions/<name>/
    subdirectories produces multiple Function package images, named
    <repo>_<funcname> per function (not <repo>_render). The local-install
    path filtered on _render suffix and only created an ImageConfig rewrite

    • digest patch for the single render function, which broke multi-function
      repos:
    • Function images for cluster, branch, etc. were tagged and pushed
      to the local registry but no rewrite was created, so Crossplane tried
      to pull them from ghcr.io by their (unpublished) digest and failed.
    • The Configuration's package metadata wasn't patched with local digests
      for those functions, so dependency resolution failed even when the
      images were technically reachable.

    The configuration-vs-function distinction is already established by the
    is_configuration_image filter above the loop. All remaining images are
    Function packages; treat them uniformly.

    Tested against psql-stack (apis/{psqlstacks,psqlclusters,psqlbranches})
    on colima — all three Functions install Ready and all three XRDs become
    available.

See full diff: v0.19.2...v0.20.0

v0.19.2

25 Apr 02:59

Choose a tag to compare

What's changed in v0.19.2

  • docs(skills): rename BaseStack/aws-base-stack to LBCStack/aws-lbc-stack (by @patrickleet)

    The configuration package was renamed since it only installs the AWS
    Load Balancer Controller. Update the embedded skill reference so the
    hops binary regenerates correct content via 'hops ai claude/codex'.

See full diff: v0.19.1...v0.19.2

v0.19.1

23 Apr 01:47

Choose a tag to compare

What's changed in v0.19.1

  • refactor(install): drop --reload flag; rely on unique dev tags (by @patrickleet)

    Each source build is already tagged with a unique dev- derived from
    the .uppkg content, so the Configuration's spec.package changes on every
    rebuild and Crossplane creates a fresh ConfigurationRevision on its own.
    Force-deleting revisions before re-apply (what --reload did) is now dead
    weight.

    Removes:

    • ConfigArgs.reload and reload: bool parameters threaded through
      run_local_path, run_repo_install, run_repo_clone,
      resolve_repo_install_target, run_watch, apply_configuration
    • force_reload_configuration_revisions + list_configuration_revisions_for +
      revision_belongs_to_configuration helpers and their unused struct siblings
    • validate_reload_args and 4 obsolete unit tests

    Skill doc (skills/claude/references/config-install.md) updated to document
    the re-run-to-upgrade loop, add --watch/--debounce/--context to the flags
    table, and drop the --reload row.

    Implements [[tasks/hops-remove-install-reload-flag]]

    Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

See full diff: v0.19.0...v0.19.1

v0.19.0

23 Apr 01:03

Choose a tag to compare

What's changed in v0.19.0

  • feat: context | install --watch (by @patrickleet)

  • fix(watch): unbreak tests, lower debounce default, stop losing edits (by @patrickleet)

    • Update ConfigArgs fixtures in validate_reload_args tests to include
      the watch/context/debounce fields added in b916b6d (unbreaks CI quality).
    • Lower --debounce default from 30s to 15s; agent-driven edits felt
      sluggish at 30s.
    • Remove post-rebuild drain_pending + wait_for_quiet + drain_pending
      block in run_watch. The drain silently discarded edits made during
      a rebuild, and recv_timeout inside the second wait_for_quiet
      consumed events in the 15s post-rebuild window without requeueing
      them. The main loop's rx.recv() + wait_for_quiet(debounce) already
      debounces correctly on its own; should_ignore_path filters the
      build's own writes to _output/.
    • Log each notify event at debug level so LOG_LEVEL=debug reveals
      which paths the rebuild itself actually touches.

    Implements [[tasks/cli-config-install-watch-context]]

See full diff: v0.18.1...v0.19.0

v0.18.1

08 Apr 18:21

Choose a tag to compare

What's changed in v0.18.1

  • fix: install removes stale functions at the end instead of beginning (by @patrickleet)

See full diff: v0.18.0...v0.18.1

v0.18.0

06 Apr 19:24

Choose a tag to compare

What's changed in v0.18.0

See full diff: v0.17.0...v0.18.0

v0.17.0

04 Apr 22:16

Choose a tag to compare

What's changed in v0.17.0

See full diff: v0.16.0...v0.17.0

v0.16.0

04 Apr 21:45

Choose a tag to compare

What's changed in v0.16.0

  • feat: robust local/published config switching in config install (by @patrickleet)

    • Always delete stale render Function packages before pushing new images,
      not just with --reload. Fixes ImagePullBackOff when local registry has
      a different digest than the previously installed Function.

    • Fix config install --path naming: use org-repo (e.g. hops-ops-aws-secret-stack)
      instead of just repo name, matching published Configuration names.

    • Fix Docker build cache corruption: replace multi-stage Dockerfile patching
      (FROM source AS src / COPY --from=src) with docker create + export approach.
      The old method broke when Docker's snapshot cache was stale for images loaded
      via docker load.

    • When installing a published --version, clean up local install artifacts:
      delete stale render Functions, local ImageConfig rewrites, and inactive
      ConfigurationRevisions pointing at the local registry.

    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

See full diff: v0.15.0...v0.16.0

v0.15.0

04 Apr 19:55

Choose a tag to compare

What's changed in v0.15.0

See full diff: v0.14.1...v0.15.0

v0.14.1

04 Apr 19:46

Choose a tag to compare

What's changed in v0.14.1

  • fix(deps): update rust crate tokio to v1.51.0 (#36) (by @renovate[bot])

    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

See full diff: v0.14.0...v0.14.1