我一定是漏掉了什么。看起来go workspaces的重点是启用本地开发,而不会用“replace”来破坏go.mod文件,这看起来很棒。但是如果存在go.work
文件,任何go命令都将静默地使用该文件中定义的本地dev相关依赖项。默认的GOWORKenv var不能被编辑,因此该文件的存在足以让任何命令运行时悄悄地使用不同于go.mod文件的依赖项。这看起来像是一个巨大的脚炮,如果有人忘记在GOWORK=off的情况下运行所有命令或删除www.example.com文件,可以将本地开发更改作为软件包的一部分发布go.work。为什么在开发模式下运行是默认的?有没有办法在不删除文件的情况下关闭它?
1条答案
按热度按时间qnzebej01#
例如,在运行
go test
的同时存在新的源文件(在它们被添加到git之前)。这两种情况都可以通过以下方式解决:在新的计算机(或新的容器)上运行持续集成(CI)作业。这使您的释放过程免于整个类别的中毒/污染风险。