Plug-ins Story: tasks
Plug-ins Story
This is an umbrella ticket to capture all actions with respect to improving the plug-in story on BuildStream. I have borrowed heavily from Tristan's summary and some associated mails. I expect the below to evolve over time.
There was general agreement at the January Gathering that we should migrate a number of plug-ins out of core. Listed below are the pre-requisites that should be addressed before this happens, some of which weren't discussed in detail at the event.
Since the strategy towards plug-ins is a hot topic with multiple stakeholders, with different needs and different challenges to address, I wanted to try to capture the aims before outlining the more granular, task-level details below them. Ideally I would like to link from each 'task' out to a separate ticket that has all of the details, and have done so where possible.
-
Goal: Make it easier for projects to obtain/use plug-ins
- Make it trivial for a project using BuildStream to import plug-ins
- Create a standard and reliable method to install plug-ins: can we use pip? Should BuildStream provide a git source ?
-
Goal: Make it easier to maintain plug-ins. Note that all of the below should be as painless an experience as possible for the plug-in author:
- Deprecation warnings available for plug-ins - #848 (closed) and !1057 (merged)
- Ability to write external plug-in tests in a consistent style with the tests the main Buildstream repo - #847 (closed) and !1075 (merged)
- Ability for external plug-in tests to pull in a template of 'source kind' tests from the main repo - #944 (closed) and !1215 (merged), !1168 (merged), !1224 (merged)
- Ability for ext. plug-ins to test against multiple stable versions of BuildStream
- Template for documentation generation which matches the style / structure of BuildStream's main docs, and is able to be updated in line with the main repo
-
Goal: Ensure the main BuildStream test suite continues to exercise important code paths for a variety of plug-in scenarios
- Framework for BuildStream's test suite to call out to plug-ins - #922 (closed) and !1158 (merged)
- Analyse and understand all of the plug-in scenarios that need to be tested in the core tests
- Untangle these tests for each plug-in as it's migrated out of core
-
Goal: Clear policy towards plug-ins
- Agree which plug-ins to migrate out of core, assign maintainers and carry out migration
- Statement from the project on plug-in policy: distributing a set of trusted plug-ins with the tool?