apache / apache/buildstream

Allow aliasing of plugin names

Open
#1,556 0 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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.