Assuming a dependency tree like
A => B => C, if we build a new (unstable) version of
C, a reverse dependency build will ensure that A and B are rebuilt to depend on this new, unstable
However, if we trigger a build of
A, that build will only pull versions of
C that are stable, and these may have been built with much older code revisions. So we’ve now taken 1 step forward and 2 steps back.
We can get a list of packages for a service from the Supervisor API, but promoting them to
stable will only help us until there is a newer version of these packages, at which point
A will again be building against a version of
C that is now out of date.
If we set
HAB_BLDR_CHANNEL to, say,
unstable, then we end up pulling all kinds of broken stuff from
core and other origins and are unlikely to get a working build.
What’s the right way to handle this?