主要观点:作者一直喜欢构建系统,其在加州大学圣克鲁兹分校攻读博士期间研究了如何在软件稳定性提升的情况下改进软件构建;对 Bazel 一直感兴趣,在谷歌工作后有了更多关于 Bazel 内部版本“blaze”的经验;经历了向 Bazel 的大型迁移,发现了一些挑战。
关键信息:
- 提到在不同环境下构建软件的经历,如在谷歌有完全控制,而在 Bazel 中存在一些问题。
- 指出 Bazel 的一些“罪过”:根“/”默认以只读方式挂载到沙盒中易导致依赖问题;对 Windows 支持存在问题,因 Windows 无符号链接等与 Unix 差异导致代码复杂;重新发明了依赖管理,虽有包管理器但仍存在依赖管理问题。
重要细节: - 举例说明因根“/”挂载问题导致的追踪 bug 困难,如区分 GNU 和 BSD 的“diff”。
- 提到谷歌工程师数量及“blaze”不支持 Windows,开发多在 Linux 上,开源项目使 Bazel 增加对 MacOS 和 Windows 的支持及带来的问题。
- 对比 Google 内部的单 curated 第三方代码源与 Bazel 中依赖管理的现状,认为应借鉴类似 nixpkgs 的成功模式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。