apache / apache/buildstream

Provide a way to show what ends up in a compose

Open
#406 4 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.