You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 11, 2025. It is now read-only.
Software supply chain flows from upstream(s) through a builder and into a binary artifacts repository (i.e. Bindle). Both the upstream source and the builder can provide versioning information. Bindle's requirement that bindle names must be semver forces an assumption that each upstream source version has exactly one corresponding build. This assumption doesn't play out in practice.
In any sufficiently large software supply chain, one upstream source may produce many builds. For example, a compiler bug may produce a vulnerability during build (this happens with unfortunate frequency). Thus, one can resolve a security vulnerability by producing a new build but without modifying the source code. Compiler bugs, toolchain bugs build system bugs and even metadata bugs are all unfortunate realities that are produced by the build process.
In some limited cases, it might be possible to force the upstream source to change its source code version for every build. But this is not a common case. In fact, in open source, it is almost never the case since the upstream and builder are two distinct entities.
Put simply, for any given binary artifact there are two versions: the upstream source version and the build version. I don't see any way for Bindle to represent that today.