Plugin type to allow multiple elements to be declared in a single .bst file
- 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/1327)
In GitLab by [[Gitlab user @tristanvb]](https://gitlab.com/tristanvb) on May 28, 2020, 11:40
In order to support reusability of more advanced constructs, we need a way to support express multiple elements in a single `.bst` file, so far the best idea for this is to introduce a new `Plugin` subclass allowing third parties to implement a `Composite` plugin type (or a differently named thing), which has it's own YAML configuration surface and allows expressing multiple elements which might have implied dependency relationships with one another.
This was discussed [a long time ago](https://mail.gnome.org/archives/buildstream-list/2018-October/msg00077.html) in the context of *"testing elements"*, and elaborated in a Manchester BeaverCon, and has recently been [brought up again](https://mail.gnome.org/archives/buildstream-list/2020-May/msg00016.html).
Note that this is on the `2.0` milestone list for now but can be removed from the milestone:
* If a well thought out proposal is brought to the mailing list and linked to this issue
* If it is agreed that an implementation of the proposal is both suitable, and can be done without breaking API.
Contributor guide
Research direction
Start with the linked GitLab issue and the referenced mailing-list discussions from October 2018 and May 2020. Develop a concrete proposal for a Plugin subclass that can express multiple elements and their implied dependencies, then seek agreement that the design is suitable and does not break the API; an accepted proposal or implementation would define done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100