All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, adheres to Semantic Versioning, and is generated by Changie.
This release is significant. All details (including videos & code examples) are captured in this blog post.
- sdk: Various breaking changes to the Go SDK
See the SDK-specific release notes for more information. - api: Align
Container.withNewFilesignature withDirectory.withNewFileby @helderco in dagger#7293
Callers ofContainer.withNewFilewill need to changecontentsfrom optional to required argument. - api: Skip entrypoint by default in
withExecby @helderco in dagger#7136
Callers relying on aContainer's entrypoint will need to be updated to opt-in withuseEntrypoint. - api: Don't fallback to the default command on
Container.stdoutandContainer.stderrby @helderco in dagger#7857
Callers ofstdoutandstderrwithout a previouswithExecwill need to insert an explicit emptywithExec. - api:
Container.terminalnow returns aContainerby @aluzzardi in dagger#7586
Callers ofterminalwill need be updated to handle the updated type. - api: Return absolute path on export instead of boolean by @helderco in dagger#7500
Callers expecting a boolean return will need to be updated to instead handle a string path. - api: Removed deprecated
sshAuthSocketandsshKnownHostsargs fromGitRef.treeby @jedevc in dagger#6934
Callers should instead attach these arguments onto the top-levelgitcall. - api: Removed
idparameters forcontainer,directoryandsocketby @jedevc in dagger#6934
Users of these parameters should instead use the standaloneloadContainerFromID,loadDirectoryFromIDandloadSocketFromIDrespectively. - api: Removed
checkVersionCompatibilityfield (versioning checks are now automatically performed on all connections) by @jedevc in dagger#7751
Versioning checks are now all automatically performed on all connections, and never need to be manually performed through the API.
Thanks to the new compatibility mode feature, these breaking changes should not
impact any existing Modules immediately. dagger call should still work on
v0.12.0 without any changes to your Module code (any compat issues for modules
are likely a bug, please report!)
After upgrading to Engine v0.12.0, you can upgrade your Module to use the
latest v0.12.0 APIs by running dagger develop. That will update the
engineVersion field of your module's dagger.json configuration file to
v0.12.0 and enable the new APIs.
After that, if your code is impacted by any of the breaking changes, you will
see errors when running dagger call. Once the errors are fixed, dagger call
will work again and your module can be updated in Daggerverse if desired.
More detailed instructions on addressing the individual API incompatible changes can be found in the PR descriptions linked above.
- api:
terminalcan be inserted into the middle ofContainerandDirectorypipelines to pop an interactive shell by @aluzzardi in dagger#7586 - api: Introduced module versioning compatibility by @jedevc in dagger#7759
- tui: Improved progress navigation and verbosity settings by @vito in dagger#7671
- cli: Add
-qflag andDAGGER_QUIET=1to restore previous verbosity default by @vito in dagger#7822 - cli: Expand tilde (
~) in file, directory and secret file argument by @wingyplus in dagger#7818 - api: Add git tags API by @grouville in dagger#7742
- api: Add core APIs for local cache state by @sipsma in dagger#7767
- cli: Print module object fields with
dagger callby @helderco in dagger#7479
- cli: Allow absolute paths for local module paths by @Michael Albers in dagger#7476
- cli: Generate
LICENSEonly if--sdkis set ondagger developby @TomChv in dagger#7719 - core: Correctly set new engine gc policy defaults by @jedevc in dagger#7749
- tui: plain progress output updated to not use hyperlinks by @jedevc in dagger#7754
- core: Prevent service healthchecks from using too long a retry interval by @sipsma in dagger#7848
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Fix engine local disk cache growing indefinitely by @sipsma in dagger#7738
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- core: when manually connecting cli and engine, versions must be at least v0.11.8 by @sipsma in dagger#7643
- core: allow hosting modules outside of GitHub by @grouville in dagger#7511
- core: generate license only if code has been generated by @TomChv in dagger#7658
- windows: enhanced windows install script by @pjmagee and @angrybat in dagger#7445 dagger#7569 dagger#7659
- core: fixed telemetry draining when clients exit uncleanly by @vito in dagger#7660
- cli: fixed infinite loop when simplifying on high verbosity levels by @jedevc in dagger#7679
- cli: improve chunking of plain progress logs by @jedevc in dagger#7653
- core: revert iptables to legacy to avoid use of nftables by @marcosnils in dagger#7670
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- core: when manually connecting cli and engine, versions must be at least v0.11.7 by @jedevc in dagger#7031
- sdk: runtime module interface accepts schema as
Fileinstead of string for improved performance by @sipsma in dagger#7549
- core: engine gc policy is less aggressive by @marcosnils in dagger#7563
- cli: minor improvements to progress viewer by @jedevc in dagger#7474
- cli: decrease connect timeout in gRPC dial by @marcosnils in dagger#7612
- core: fix
File.exportto local Windows client by @wingyplus in dagger#7564 - core: handle secrets in dockerfile builds with syntax directives by @jedevc in dagger#7595
- core: improved telemetry draining and prevents hangs by @vito in dagger#7452
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Add
withNamemethod to File by @TomChv in dagger#7491
- cli: don't validate flags when requesting
--helpby @helderco in dagger#7417 - fix container init being wrong platform in arm image by @sipsma in dagger#7497
- fix container DNS resolution when host has no search domains by @sipsma in dagger#7501
- honor system proxy config during git operations by @sipsma in dagger#7504
- fix windows-style paths used as file+directory arg values in dagger call by @sipsma in dagger#7506
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- cli:
dagger logincloud traces support by @aluzzardi in dagger#7125 - cli: improved
--progress=plainimplementation for better visibility by @jedevc in dagger#7272
- cli: cleaner tty progress view by @jedevc in dagger#7347 dagger#7371 dagger#7386
- cli: don't show functions that can't be called by @helderco in dagger#7418
- cli: don't show inherited flags in function commands by @helderco in dagger#7419
- core: remove shim and switch to dumb-init by @sipsma in dagger#7367
- core: fixed custom CA certs in modules by @sipsma in dagger#7356
- cli: don't validate flags when requesting
--helpby @helderco in dagger#7417
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- cli: Fix panic when calling function with list of scalars by @jedevc in dagger#7322
- Avoid hang caused by client id conflicts by @sipsma in dagger#7335
- Avoid unneccessary module cache invalidation from internal plumbing values by @sipsma in dagger#7336
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- cli: remove space stripping from secret arguments by @marcosnils in dagger#7271
- Added support for custom scalars and enums in function arguments by @jedevc in dagger#7158
- Added support for propagating system proxy settings by @sipsma in dagger#7255
- api: Added
Container.withoutSecretVariableby @helderco in dagger#7291 - api: Added
Container.withoutDirectoryandContainer.withoutFileby @helderco in dagger#7292
- cli: Added a visual cue for required flags in
--helpby @grouville in dagger#7262 - cli: Conventionalized usage syntax in
--helpby @grouville in dagger#7143 - cli: Use "functions" and "arguments" in
dagger call --helpby @helderco in dagger#7286
- api: Set
Container.platformcorrectly when usingContainer.fromby @marcosnils in dagger#7298 - Avoid intermittent
failed to get state for indexerrors by @sipsma in dagger#7295 dagger#7309 - Avoid panic when masked parent is missing by @vito in dagger#7227
- Fix terminal broken on Windows by @wingyplus in dagger#7305
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- New version field to get engine version details by @jedevc in dagger#7029
- cli: style headings in BOLD UPPERCASE to help break sections visually by @grouville in dagger#7126
- cli: remove discrepancy in usage between dagger query and the rest of the commands by @grouville in dagger#7124
- cli: move arguments section below functions/commands in usage, for better readability by @grouville in dagger#7134
- cli: adopt options terminology instead of flags by @grouville in dagger#7170
- Fixed more windows path issues by @jedevc in dagger#7118
- cli: Fixed using
--helpafter arguments indagger functionsby @helderco in dagger#7187
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Add
withAuthTokenandwithAuthHeaderfields toGitRepositoryby @jedevc in dagger#6992
- Restored
plainprogress output after removal in v0.11.0 by @morlay in dagger#7069 - Fixed various windows regressions by @jedevc in dagger#7003 dagger#7050 dagger#7095
- Git can now be used with dumb HTTP clones by @jedevc in dagger#6992
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Old clients <=0.10.3 cannot connect to a new >=v0.11.0 engine
- Old progress interfaces removed by @vito in dagger#6835
--focusCLI flag removed by @vito in dagger#6835
- Add OTEL trace exports by @vito in dagger#6835
- Add
Headfield toGitRepositoryto get the default branch by @jedevc in dagger#6994
- Fix
DOCKER_HOSTnot working whenDAGGER_CLOUD_TOKENset by @sipsma in dagger#7006
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Add support for
wipearg toDirectory.exportby @sipsma in dagger#6909 - Add new
Secret.Namefield by @jedevc in dagger#6924 - Support directory arg filtering via views by @sipsma in dagger#6857
- Make automatic .gitignore creation for modules configurable by @sipsma in dagger#6888
- Allow
idas argument name to functions by @sipsma in dagger#6912
- Fix
Container.withFilesnot respecting absolute paths by @helderco in dagger#6879 - Fix
Directory.globon directories with a sub path by @helderco in dagger#6904 - Allow unicode parent path components by @jedevc in dagger#6925
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Fix panic on unset default terminal arg by @TomChv in dagger#6838
- Trim spaces on file and command secret source inputs by @kpenfound in dagger#6845
- Fix name conflicts with
Queryby @jedevc in dagger#6849 - Propagate GraphQL client to child clients by @jedevc in dagger#6851
- Prevent glob from returning duplicate directories by @jedevc in dagger#6852
- Do find-up of
dagger.jsonfor all relevant commands (works from subdirs) by @sipsma in dagger#6860
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Allow passing git URLs to
dagger callfile type args by @jedevc in dagger#6769 - Support privileges and nesting in default terminal command by @TomChv in dagger#6805
- Fix panic in Contents for massive files by @jedevc in dagger#6772
- Dagger go modules default to the module name instead of "main" by @jedevc in dagger#6774
- Fix a regression where secrets used with dockerBuild could error out by @jedevc in dagger#6809
- Fix goroutine and memory leaks in engine by @sipsma in dagger#6760
- Fix potential name clash with "Client" in Go functions by @jedevc in dagger#6716
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- New Dagger functions and modules
- Modules allow bundling up and sharing reuable pipeline functions in a cross-language way.
- New CLI commands (such as
dagger call) provide a consistent interface to easily invoke functions inside modules. - A new TUI interface allows easily following along with what's going on.
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Improve docker error logging by @jedevc in dagger#6676
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Add new
Directory.WithFilesandContainer.WithFilesby @tomasmota in dagger#6556
- Avoid panic in secret scrubber caused by similar secret names @jedevc in dagger#6641
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Add new Git.ref function by @jedevc in dagger#6376
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Service.Stop now uses SIGTERM instead of SIGKILL by default by @jedevc in dagger#6354
- Add option to skip healthcheck on exposed ports by @KGB33 in dagger#6214
- New kill option for Service.Stop by @jedevc in dagger#6354
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- New File.name field by @jedevc in dagger#6431
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Argument to
withDefaultArgsis now required by @helderco in dagger#6281
- Fix shim panic when exec-ing an unknown command by @Juneezee in dagger#6356
- Fix potential panic when exporting cache by @jedevc in dagger#6378
- Fix concurrent map access in api server by @jedevc in dagger#6388
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- New
withoutEntryointandwithoutDefaultArgsfields by @helderco in dagger#6278
- Clear
defaultArgsonwithEntrypointby default by @helderco in dagger#6280
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- New secret scrubbing implementation for more responsive logs by @jedevc in dagger#6034
- Improved logging during engine startup by @jedevc in dagger#6075
- Fix
WithMountedDirectoryinvalidating cache by @jedevc in dagger#6211
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Fixes + performance improvements to experimental features
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- experimental Nvidia GPU support by @matiasinsaurralde in dagger#5605
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Implement new commit resolver for GitRef by @jedevc in dagger#5910
- Directory supports Glob method by @TomChv in dagger#5824
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- engine: new services API with container <=> host networking, explicit start/stop by @vito in dagger#5557
- implement new conventions for IDable objects by @vito in dagger#5881
- engine: support multiple cache configs for upstream remote cache by @sipsma in dagger#5730
- engine: reduce connection retry noise by @sipsma in dagger#5918
- engine: fix missing descriptor handlers for lazy blobs error w/ cloud cache by @sipsma in dagger#5885
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- core: use BuildKit's own readiness implementation instead of our custom logic by @jedevc in dagger#5808
- core: add Engine logs for failed queries in debug mode by @jedevc in dagger#5827
- cli: restart manually stopped engine containers by @jedevc in dagger#5811
- cli: fix process hang when running certain command with
dagger runby @wingyplus in dagger#5712
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- core: remove syncedCacheMount check for cache manager by @marcosnils in dagger#5797
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- core: record seen cache volumes at resolver level by @marcosnils in dagger#5786
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- cli: add
DAGGER_SESSION_TOKENenv var support inlistencommand by @marcosnils in dagger#5704 - core: Extends mounted secret API to support mode and optional arguments by @TomChv in dagger#5707
- engine: add
DAGGER_CLOUD_TOKENenv var support by @marcosnils in dagger#5773
- engine: fix panic if
_EXPERIMENTAL_DAGGER_SERVICES_DNSis disabled by @vbehar in dagger#5760 - services: refactor to per-client instances that stop on client close by @vito in dagger#5764
- cli: fix interactive TUI nil panic by @vito in dagger#5681
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Default container tar export permissions to 0600 by @sipsma in dagger#5649
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- Include details during Dagger Engine loading by @TomChv in dagger#5436
- Show host target on directory or file export by @TomChv in dagger#5632
- Hide merge vertexes from output by @sipsma in dagger#5630
- Fix Engine connection hang when UTF8 characters present in labels by @vito in dagger#5628
- Export files with same permissions as source by @sipsma in dagger#5629
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- remote cache: improve http error checking by @aluzzardi in dagger#5506
- engine: fix combined cache manager to query local cache too by @sipsma in dagger#5585
- telemetry: fix labels not being included by @vito in dagger#5602
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- cli: fix
dagger runnot showing command progress by @vito in dagger#5564 - core: fix setting image config during multiplatform export+publish by @sipsma in dagger#5574
- core: fix exports of files larger than default grpc max message size by @sipsma in dagger#5570
- engine: report correct engine version by stamping engine image too by @sipsma in dagger#5578
- core: handle v prefix in version compatibility check by @sipsma in dagger#5578
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- engine: remove API deprecations by @helderco in dagger#5512
- engine: Rename
idargument inContainer.withRootfsby @helderco in dagger#5513
- engine: implement
Host.setSecretFileto securely set binary files as secrets by @grouville in dagger#5500
- engine: Bump Alpine version to fix service DNS resolution by @marcosnils in dagger#5470
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- cli: show total duration at the end of a run by @vito in dagger#5476
- engine: add
Directory.Syncby @helderco in dagger#5414 - engine: add
File.Syncby @helderco in dagger#5416 - engine: add
Container.WithFocus&Container.WithoutFocusby @vito in dagger#5364 - engine: add
include&excludeto host dir copy name by @sipsma in dagger#5469
- engine: deprecate
exitCodeby @helderco in dagger#5481
- engine: prevent session id from busting caches everywhere by @vito in dagger#5474
- engine: optimize
WithDirectory&WithFilevia MergeOp by @sipsma in dagger#5400 - engine: remove unimplemented git fields by @helderco in dagger#5410
- engine: support optionally setting explicit OCI mediatypes by @sipsma in dagger#5467
- Read the documentation
- Join our Discord server
- Follow us on Twitter
- cache: Set default Cloud Cache URL by @marcosnils in dagger#5343
- engine: Add Cloud Cache token env var by @marcosnils in dagger#5356
- core: Improve image publish/export format compatibility by @sipsma in dagger#5365
- core: Send Progrock updates to Cloud by @vito in dagger#5297
- core: Use include filter in host.file by @sipsma in dagger#5345
- cli: Fix incorrect subcommand being called by @sipsma in dagger#5344
- engine: Remove old Cache config env from autoprovision by @sipsma in dagger#5355
- Read the documentation
- Join our Discord server
- Follow us on Twitter