构建系统新解:Civboot 与 Bazel 的对比
Build Systems Discussion
我在 permacomputing 邮件列表上分享了关于构建系统的思考,引发了热烈讨论。构建系统的核心在于明确输入与输出,而 Make 等工具往往因缺乏抽象层而显得笨拙。Civboot 项目采用 Lua 作为配置语言,通过 sys hub 机制解耦了构建逻辑与目标平台,既保持了灵活性又支持分布式构建。此外,我还探讨了基于 hubrepo 的包管理设计,其灵感部分源自 Rust 的 crates.io,旨在实现更简洁的依赖锁定与版本控制。
构建系统的首要原则是:构建每个阶段的输入和输出必须在某处明确体现。