0.12.0 版本更新说明:
重大变更(Breaking Changes)
- sdk: 对Go SDK进行了多项重大变更,请查阅SDK特定的发行说明以获取更多信息。
- api: 由@helderco贡献,对
Container.withNewFile
的签名进行调整,使其与Directory.withNewFile
保持一致。调用者需将contents
参数从可选改为必填。 - api: 由@helderco贡献,默认情况下在
withExec
中跳过入口点。依赖容器入口点的调用者需要更新代码以选择使用入口点。 - api: 由@helderco贡献,
Container.stdout
和Container.stderr
不再默认回退到默认命令。没有先调用withExec
的调用者需插入一个明确的空withExec
调用。 - api: 由@aluzzardi贡献,
Container.terminal
现在返回一个Container
对象。调用者需更新以处理更新后的类型。 - api: 由@helderco贡献,从导出操作中返回绝对路径而非布尔值。原本期待布尔返回值的调用者需改为处理字符串路径。
- api: 由@jedevc贡献,移除了
GitRef.tree
中已废弃的sshAuthSocket
和sshKnownHosts
参数。调用者应将这些参数附加到顶级的git调用上。 - api: 同样由@jedevc贡献,移除了容器、目录和套接字的id参数。应改用独立的
loadContainerFromID
、loadDirectoryFromID
和loadSocketFromID
函数。 - api: 由@jedevc贡献,移除了
checkVersionCompatibility
字段(版本兼容性检查现在会在所有连接上自动执行)。所有连接上的版本检查都会自动完成,无需再通过API手动执行。
升级指南
得益于新的兼容模式功能,这些重大变更不会立即影响现有的模块。升级到Engine v0.12.0后,无需修改模块代码即可继续使用dagger call
(如果模块遇到兼容问题,可能是bug,请报告!)
升级到Engine v0.12.0后,通过运行dagger develop
来升级你的模块以使用最新的v0.12.0 API。这会更新模块的dagger.json
配置文件中的engineVersion
字段至v0.12.0,并启用新API。
如果代码受重大变更影响,在运行dagger call
时会看到错误。修复错误后,dagger call
将恢复正常,根据需要可以在Daggerverse中更新你的模块。
针对每个API不兼容变更的详细处理说明,可在上面链接的PR描述中找到。
新增功能
- api: 由@aluzzardi贡献,可以在容器和目录管道中插入
terminal
以弹出交互式shell。 - api: 由@jedevc贡献,引入了模块版本兼容性功能。
- tui: 由@vito贡献,改进了进度导航和详略设置。
- cli: 由@vito贡献,添加了
-q
标志和环境变量DAGGER_QUIET=1
以恢复之前的默认详略级别。 - cli: 由@wingyplus贡献,支持在文件、目录和秘密文件参数中展开波浪线(~)。
- api: 由@grouville贡献,添加了git标签API。
- api: 由@sipsma贡献,添加了本地缓存状态的核心API。
变更
- cli: 由@helderco贡献,在使用
dagger call
时打印模块对象字段。
修复
- cli: 由@michael Albers贡献,允许使用绝对路径指定本地模块路径。
- cli: 由@TomChv贡献,仅当使用
--sdk
标志运行dagger develop
时才生成LICENSE文件。 - core: 由@jedevc贡献,正确设置了引擎GC策略的默认值。
- tui: 由@jedevc贡献,简化版进度输出不再使用超链接。
- core: 由@sipsma贡献,防止服务健康检查使用过长的重试间隔。