Carbon toolchain environment drift without pinned dependencies
0 reputation · 29 Jan 2020, 00:39 UTC
Developing with Carbon currently requires building the toolchain from source using Bazel, Clang, and Python. Because the project is in an experimental phase, the documentation lacks pinned dependency lockfiles, release tags, or container digests to ensure a repeatable development environment.
Without a mechanism to lock the toolchain versions or standard library requirements, a clean build is susceptible to drift as the main branch evolves. This creates a scenario where the same source code may compile successfully in one environment but exhibit different behavior in another based on the local toolchain state.
What are the recommended strategies for freezing the Carbon build environment to ensure consistency across commits? How does the project handle breaking changes in the stdlib API surface when the toolchain is updated independently?