Skip to content

`bst shell` should be able to stage the specified element on top of a base element

Background

I find that I avoid using type: runtime on very low-level elements most of the time, even if they are technically runtime dependencies. This is because they tend to be large and contain dependencies mostly available on systems I'll want to deploy software to. It doesn't seem useful for bst checkout to checkout something like /bin/sh, for example.

This works for anything I want to run in CI, or actually use for deployable builds, but as soon as I start developing I want to run bst shell on whatever I am working on.

bst shell currently requires the runtime of any element I want to shell into to contain a /bin/sh, and therefore consistently breaks unless I add type: runtime to my base platform dependency. As a result I end up constantly adding and removing dependencies for debugging.

There is bst shell --sysroot, but it requires a checkout of the base platform, which makes it cumbersome to use for debugging. It also doesn't update with potential changes to the base platform, which makes it feel wrong for this use case.

Acceptance Criteria

We should have a way to avoid specifying type: runtime on base platforms with bst shell. Options include:

  • Adding a --platform option which specifies a dependency to stage the given element on top of
  • Allow specifying multiple elements

This is still very up for discussion, please do comment :)

Update from Laurence, February 2019: This was discussed at the Gathering in Jan 2019 and a summary mail sent to the list which was discussed a little.

Edited by Laurence Urhegyi
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information