Skip to content

v0.8.18

Choose a tag to compare

@gilescope gilescope released this 07 Aug 12:12
b038598

earthbuild v0.8.18

Full Changelog: v0.8.17...v0.8.18

This release completes most of the earthly → earth rename, adds OpenTelemetry
tracing, and removes the Earthly Cloud API. It also folds in ~250 dependency
bumps.

Breaking changes

  • CLI binary renamed earthly → earth. CI configs, scripts, and PATH
    references that invoke earthly need to switch to earth.
    (#337,
    #346,
    #502,
    #691)
  • EARTHLY_* env vars and built-in ARGs are deprecated in favor of
    EARTH_* equivalents. Usage now logs a warning; removal is planned for
    v0.9.0. See the migration guide.
    (#631,
    #710)
  • Earthly Cloud API removed. Cloud-backed features (remote cache/satellites
    via the old Cloud API) are gone. (#324)
  • Exec-form RUN no longer shell-wrapped. RUN ["cmd", "arg"] now execs
    directly instead of being wrapped in a shell — matches Dockerfile semantics,
    but changes behavior for anyone relying on shell expansion in exec-form RUN.
    (#242)
  • Line continuations inside quoted strings are now stripped during parsing
    — a parser behavior change for Earthfiles with backslash-newlines inside
    quotes. (#694)
  • Internal build target names changed to earthbuild-*, and CI-internal
    workflow inputs renamed to *_EARTH_* — only affects forks/contributors
    building from source. (#647,
    #645)

New functionality

  • OpenTelemetry tracing, with a Grafana backend wired up for GitHub Actions.
    (#322,
    #455)
  • Content-hash based caching plus new EARTH_GIT_* built-in args.
    (#341)
  • Better error diagnostics on build failures. (#568)
  • Earthfile lookup now walks up parent directories, so earth can be run
    from a subdirectory of a project. (#638)
  • CLI now prints which buildkit it's using when it's non-standard, and
    correctly tags the buildkitd binary the CLI points at.
    (#390,
    #456)
  • Go build flags support. (#320)
  • New Ubuntu 26.04 dind image (Ubuntu 23.04 dropped).
    (#509)
  • Manual kick-off for staging releases. (#436)
  • New logo, dark/light-mode adaptive. (#450)
  • Soft warning on PROJECT and --auto-skip usage to gather deprecation
    feedback. (#709)

Misc (fixes, refactors, tests, CI, docs)

  • Fixed a data race (#567),
    merge-queue handling (#637),
    arch-compatibility check (#515),
    invalid flag prefix handling (#662),
    duplicate OTel schema (#391),
    a shared-resolver bug in the recursive Earthfile walk
    (#521), and a failing
    ziglang example (#468).
  • Dropped the alexcb/go-flags dependency in favor of the standard library
    (#426), along with
    mapstructure (#611),
    hashstructure (#610),
    godebug (#653),
    xcontext (#702),
    strcase (#652),
    binarystream (#651),
    copy (#654),
    semverutil (replaced by x/mod/semver,
    #743), and the
    ~nelsam packages (#745).
  • Earthfile parser rewritten (#581);
    color mode now reads NO_COLOR/FORCE_COLOR
    (#623); simplified
    Tracker.String() (#704);
    generic unbounded cache (#701);
    circular buffer, cmp.Or, filter-string-slice, std-errors, merged
    waitutil-into-states cleanups
    (#741,
    #742,
    #703,
    #609,
    #744); removed unused
    exported functions/types/files
    (#746); removed the
    unused debugger/server (#739);
    baked the published buildkitd image into the CLI docker image
    (#728).
  • Tests: replaced onpar with standard go test
    (#425); added a Go CLI
    test harness and removed superseded integration targets
    (#571); split unit vs.
    integration tests (#580);
    added CLI integration tests (#612);
    covered doc command output (#570);
    pushed more coverage down to the Go level
    (#569); renamed
    RUN_EARTHLY test UDCs to RUN_EARTH
    (#642).
  • CI: faster checks (#492),
    retry/back-off on toolchain downloads
    (#577), shellcheck +
    bash array quoting fixes (#576),
    golangci-lint's revive enabled then reverted then re-enabled
    (#499,
    #500), exhaustive
    linter enabled (#585),
    gomodguard disabled (#496),
    Renovate grouping/transitive-deps/pipelining tweaks
    (#525,
    #649,
    #534), +base target
    optimized (#539), build
    without emulation for perf (#560).
  • Docs: basics tutorial series updated
    (#447), install-via-brew
    instructions (#639),
    "earthly" → "earthbuild" reworded across shell scripts, Go comments, and
    Earthfile comments
    (#646,
    #644,
    #643), fixed release
    signing key / dead install URLs / stale Earthly Cloud references
    (#752), CI integration
    guides pointed at EarthBuild releases/images
    (#753), buildkit/fsutil
    fork URLs updated to the EarthBuild org
    (#575), stale antlr
    text removed (#699).

Dependency updates

~250 automated dependency bumps via Renovate/Dependabot across Go, npm, Maven,
sbt, Scala, Ruby, Docker base images, and GitHub Actions. Full list in the
compare view.

Notable security-flagged bumps:

  • axios → v1.13.5, then v1.15.0
    (#329,
    #444)
  • next → v16.1.7, v16.2.3, v16.2.5, v16.2.11
    (#409,
    #443,
    #593,
    #712)
  • go.opentelemetry.io/otel/sdk → v1.43.0
    (#441)

New contributors