Provide a way to show what ends up in a compose
- 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/406)
In GitLab by [[Gitlab user @bochecha]](https://gitlab.com/bochecha) on May 24, 2018, 17:54
## Background
I'm trying to remove Perl from org.freedesktop.Platform//1.8
To do that, I need to figure out why it even gets included into it.
Since `platform.bst` is a compose element, `perl.bst` could end up in it for a few different reason:
* `perl.bst` is a build dependency of `platform.bst`;
* `perl.bst` is a run dependency of a build dependency of `platform.bst`;
* `perl.bst` is a build dependency of a compose element which itself is a build dependency of `platform.bst`;
* …
A `bst` command showing a tree of "what gets included in platform.bst" would be a great help.
The way I think it could work is:
1. a new command, something like: `bst show --deps=compose platform.bst`
2. recursively, for each build dependency of `platform.bst` :
a. if it is a "compose" element, then continue with its its build dependencies;
b. if it is not a "compose" element, then continue with its run dependencies;
## Task description
[//]: # (Short summary of the action to be executed)
* [ ] Action 1
* [ ] Action 2
* [ ] Action 3
## Acceptance Criteria
[//]: # (Acceptance criteria should follow the S.M.A.R.T. principle https://en.wikipedia.org/wiki/SMART_criteria )
Contributor guide
Research direction
Start with the proposed `bst show --deps=compose platform.bst` command and the compose-element dependency rules described in the issue. Trace the existing `bst show` entry point and dependency handling; done means the command displays the elements included by `platform.bst` through the requested build and run dependency traversal. No specific files or tests are named.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100