Allow aliasing of plugin names
- Dominant language
- Python
- Stars
- 140
- Forks
- 45
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 6
Description
Currently the [plugin loading semantics](https://docs.buildstream.build/master/format_project.html#loading-plugins) allow for a lot of flexibility, but we have some minor limitations when it comes to loading plugins from multiple sources which might have namespace collisions.
In order to allow loading different plugins which have the same name, we should allow aliasing of plugin names.
A syntax to allow this might look like the following:
```yaml
# Normal plugin loading
plugins:
- origin: junction
junction: plugin-junction.bst
elements:
- frobnicate
- slurpshiggy
- gizmoflooper
# Load a second frobnicate element from another project,
# locally we will address the element as "frobnicate2"
- origin: junction
junction: another-plugin-junction.bst
elements:
- name: frobnicate
alias: frobnicate2
```
Contributor guide
Research direction
Start with the linked plugin loading semantics documentation and compare the proposed YAML syntax with the existing rules for loading elements from junctions. Trace the plugin-loading entry points and related tests, if present. Done means two same-named plugins from different sources can be loaded and the aliased one is addressed by its local alias without breaking normal loading.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100