Skip to content

Latest commit

 

History

History
127 lines (95 loc) · 9.34 KB

CHANGELOG.md

File metadata and controls

127 lines (95 loc) · 9.34 KB

Changelog

[Unreleased]

[0.0.9] - 2026-06-13

Added

  • DSL: Rust toolchain auto-installs the required rustup target when target= is set, so cross-compilation works without a manual rustup target add step (#146)

Changed

  • CLI: hm init Rust template updated to use the current rust.project().ci() API (#146)

[0.0.8] - 2026-06-11

Changed

  • Breaking: DSL: Rust build/test now emit --locked by default, clippy uses --all-targets instead of --tests, and fmt defaults to --all --check (pass locked=False or adjust flags to restore old behavior) (#143)
  • Breaking: DSL: Imageless root steps now default to ubuntu:24.04 instead of alpine:latest, fixing apt-get: not found errors when using built-in toolchains without an explicit image (#144)

Added

  • DSL: Rust toolchain gains ci() (zero-config test+clippy+fmt DAG), test(nextest=True), doctest(), build(), doc(), and feature_powerset() (cargo-hack) across both Python and TypeScript DSLs (#143)
  • DSL: All Rust cargo actions accept ergonomic keyword options: packages, exclude, features, all_features, no_default_features, target, release/profile, locked, workspace, and a flags escape hatch (#143)

Removed

  • Breaking: DSL: Remove default_image (Python) / defaultImage (TypeScript) parameter from pipeline(); set a per-step image= instead (#144)

Fixed

  • DSL: Shell-quote all user-supplied cargo values (packages, features, target, etc.) to prevent shell injection (#143)

[0.0.7] - 2026-06-11

Changed

  • CLI: Cleaned up error messages: removed the dead harmont.dev/docs/errors/<code> documentation links (all 404) and dropped the misleading "check that the Docker daemon is running" hint from cloud backend errors. (#140)
  • CLI: A cloud run from a worktree with no origin remote now fails with a clear error explaining that a git remote is required, instead of a confusing 404. (#139)
  • DSL: Building the DSL engine now fails with a clear error when esbuild is missing instead of silently warning, so the build no longer succeeds without the JS bundle. (#136) (Power)

Added

  • CLI: hm run --cloud now registers or creates the pipeline automatically on its first run, so a project works straight after hm init with no manual dashboard setup. It auto-creates the pipeline on a pipeline_not_found, works without a git remote by prompting for the repo name (defaulting to the directory, auto-registering in CI/non-TTY), and persists [cloud] pipeline = "<slug>" to .hm/config.toml so later runs submit by slug with no prompt. (#140)

Fixed

  • CLI: hm run --backend cloud now resolves the target pipeline by repository identity (owner/repo from the git remote) instead of the bare DSL slug, fixing spurious pipeline_not_found 404s when the org's pipeline is stored under a namespaced global slug. (#139)
  • SDK: Fix @harmont/hm npm publishing by upgrading to npm ≥ 11.5.1 in the release workflow, so OIDC trusted publishing authenticates instead of failing with a masked 404. (#138)

[0.0.6] - 2026-06-10

Changed

  • Breaking: CLI: Rename all HARMONT_* environment variables to HM_* (e.g. HM_API_TOKEN, HM_API_URL, HM_ORG), and drop legacy ~/.harmont config/credential migration and the .harmont/ project-directory fallback (#133)
  • Breaking: CLI: Rename pipeline directory from .harmont/ to .hm/ and adopt hierarchical TOML config (user -> project -> env layering) (#73)
  • Breaking: DSL: Replace separate hm.npm() and hm.bun() toolchain factories with unified hm.js.project() in both TypeScript and Python DSLs, accepting runtime (node/bun/deno) and pm (npm/pnpm/yarn-classic/yarn-berry/bun) axes (#58, #67) (versecafe)
  • Breaking: DSL: Change pipeline() to accept an array of steps instead of variadic arguments in both Python and TypeScript DSLs (#64)
  • Breaking: DSL: Remove convenience methods (test/build/lint/fmt/typecheck) from TypeScript JsProject class in favor of the uniform run("script") method (#67) (versecafe)
  • Breaking: DSL: Simplify cmake toolchain API with generic defines dict, compiler/ccache/preset support, drop overspecific parameters (#56)
  • Breaking: SDK: Rename TypeScript package from harmont to @harmont/hm (update imports to @harmont/hm and @harmont/hm/toolchains) (#77)
  • DSL: Use corepack for pnpm and yarn bootstrap instead of npm install -g pnpm (#67) (versecafe)
  • CLI: Switch Linux release artifacts to musl (static) binaries and drop glibc builds (#78) (Tadhg Dowdall)

Added

  • CLI: Run a local worktree in the cloud with live build logs via hm run --cloud (#49)
  • CLI: Add -k/--keep-going to hm run to keep independent branches running after a step fails (#102)
  • CLI: Support TypeScript-only repositories in hm pipelines discovery (#128)
  • CLI: Offer to link an organization during the hm init wizard (#110)
  • Breaking: DSL: Add step-level and pipeline-level timeout support via hm.timeout(duration, step) wrapper and pipeline timeout_seconds field, replacing the old timeoutSeconds step option (#76)
  • DSL: Add Deno runtime and Yarn (classic + berry) package manager support to the JS/TS toolchain in both DSLs (#58, #67) (versecafe)
  • DSL: Add Elixir/OTP toolchain (hm.ex) with Mix project support, dependency caching, and example projects for both DSLs (#55)
  • DSL: Add Bun toolchain with BunProject, shared install helpers, and example project for both Python and TypeScript DSLs (089cee0)
  • DSL: Add auto-detection of JS runtime and package manager from package.json engines/packageManager fields and lockfiles (#74)
  • DSL: Accept named pipelines export as alternative to default export in TypeScript DSL (#61)
  • CLI: Add hm init onboarding wizard with 7 project templates (CMake, Elixir, Next.js, JS/TS, Rust, Zig, Python) (#71)
  • CLI: Add hm pipelines and hm render commands for machine-readable pipeline discovery and IR output (#33)
  • CLI: Add install.sh one-line installer with SHA-256 verification, versioned alongside the CLI (#59)
  • SDK: Publish harmont SDK packages to npm and PyPI with full type support (#75)

Removed

  • Breaking: DSL: Remove Elm, Haskell, OCaml, .NET, Composer, Perl, and Gradle toolchains from both DSLs (#51)
  • Breaking: DSL: Remove schedule trigger and croniter dependency from Python and TypeScript DSLs (#63)

Fixed

  • DSL: Fix example Python pipelines to use current API (hm.js.project() instead of removed hm.npm()/hm.bun()) (#77)
  • DSL: Use correct Zig download URL for >= 0.14.1 and bump default to 0.14.1 (1bf727e)
  • CLI: Fix hm pipelines returning errors on repos without pipeline files (#34)
  • CLI: hm init --force no longer wipes the entire .hm/ directory; it now overwrites only the target template file, preserving config.toml and any co-resident pipelines.
  • CLI: hm init no longer silently overwrites customized .claude/skills/*/SKILL.md files; edited skills are skipped with a warning unless --force is passed.