Compose elements should allow changing the staging layout
- Dominant language
- Python
- Stars
- 140
- Forks
- 45
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 6
Description
[See original issue on GitLab](https://gitlab.com/BuildStream/buildstream/-/issues/1053)
In GitLab by [[Gitlab user @tlater]](https://gitlab.com/tlater) on Jun 24, 2019, 17:48
## Background
[//]: # (Provide a background or the root/source that justifies this task or action.)
While playing around with !1413 I realized that only script elements are allowed to specify the "layout" of their dependencies. Since this is a convenient way to re-jig the project layout, but we don't always want to execute a script when we do that, it would be nice if compose elements could also specify staging layouts.
## Task description
[//]: # (Short summary of the action to be executed)
We should consider allowing compose elements to change the staging layout.
To do this we would simply need to replicate the script element behavior, though I think some quick broader discussion is warranted.
## Acceptance Criteria
[//]: # (Acceptance criteria should follow the S.M.A.R.T. principle https://en.wikipedia.org/wiki/SMART_criteria )
BuildStream's `compose` element provides a `layout` option in its `config` section.
----
[//]: # (To review information about possible relevant labels for this issue please view the list of labels: https://gitlab.com/BuildStream/buildstream/labels)
UPDATE: This enhancement request refers to outdated API, at this point we should follow dependency configurations as we do with current `ScriptElement` and `BuildElement`, allowing dependency declarations to specify where they want to be staged.
Contributor guide
Research direction
Start by reviewing the current dependency configurations for ScriptElement and BuildElement, then inspect how the compose element handles staging. Confirm the current API and broader discussion before changing scope; done means compose dependencies can declare where they are staged, as described by the updated requirement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100