Skip to content

Support multiple elements in checkout and source-checkout

Background

As pointed out in !820 (comment 111756025), it might make sense to support multiple elements in the newly added source-chechout command. Similarly, it would also make sense to support multiple elements in the checkout command as well.

Possible solutions

The current format for both these commands is bst COMMAND ELEMENT DIRECTORY. Depending on how we choose to do it, it may or may not be an API break. I am sure there are other options, but I can see the following two options at present:

  1. bst COMMAND ELEMENT [ELEMENT..] --dir DIRECTORY
  2. bst COMMAND ELEMENT DIRECTORY [-e ELEMENT DIRECTORY...]

The first option will be similar to how workspace open will soon handle multiple elements, see !897 (merged). But, for it to work properly, we may first need to add an option for configuring default location for checking out elements. Alternatively, we can support --directory for multiple elements by creating directories named after each element and checking it out under that subdirectory. (This is similar to how source-checkout currently handles dependencies.

EDIT: The consensus seems to be in favor of this option.

The second option option avoids breaking the API but is more clunky IMO. That said, it is similar to how multiple elements are planned to be handled in bst shell, see !909 (closed).

Task description

  • Support multiple elements in bst checkout/bst artifact checkout
  • Support multiple elements in bst source checkout

Acceptance Criteria

It is possible to checkout multiple elements (or sources in case of source-checkout) using a single bst invocation.


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