Metadata-Version: 2.1
Name: bst-plugins-experimental
Version: 1.100.1
Summary: A collection of experimental BuildStream plugins.
License: LGPL-2.1-or-later
Project-URL: Homepage, https://buildstream.gitlab.io/bst-plugins-experimental/
Project-URL: Documentation, https://buildstream.gitlab.io/bst-plugins-experimental/
Project-URL: Repository, https://gitlab.com/BuildStream/bst-plugins-experimental
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: packaging
Provides-Extra: bazel
Requires-Dist: requests ; extra == 'bazel'
Provides-Extra: deb
Requires-Dist: arpy ; extra == 'deb'

BuildStream Experimental Plugins
********************************

IMPORTANT: This project will be renamed soon to buildstream-plugins-community

A collection of "experimental" plugins for BuildStream 2.0.

This repo collects plugins which don't provide the strong API guarantees
required by the
`buildstream-plugins <https://github.com/apache/buildstream-plugins/>`_
project.

How to use this repo
====================

The plugins in this repo do not provide strong API guarantees or backwards
compatibility. You should use a specific commit in your project and update it
manually as needed.

You are recommended to import these plugins into your project using the
`junction plugins <https://docs.buildstream.build/master/format_project.html#junction-plugins>`_
feature of BuildStream 2.0 so you can control exactly what Git commit is used.
This is done in several stages documented below:

Using via a junction
~~~~~~~~~~~~~~~~~~~~

First, make sure you have the ``git`` source from
`buildstream-plugins`_
available and declared in your ``project.conf`` file. If you installed
the `PyPI package <https://pypi.org/project/buildstream-plugins/>`_
then you can import it as a
`pip plugin <https://docs.buildstream.build/master/format_project.html#pip-plugins>`_::

    plugins:
    - origin: pip
      package-name: buildstream-plugins
      sources:
      - git

Now, add a
`junction element <https://docs.buildstream.build/master/elements/junction.html#module-elements.junction>`_
referencing this repo. Here's an example you could save as ``bst-plugins-experimental.bst``
in your elements directory::

    kind: junction

    sources:
    - kind: git
      url: https://gitlab.com/BuildStream/bst-plugins-experimental
      track: master

You can then run ``bst source track bst-plugins-experimental.bst`` to set the ``ref`` field
appropriately.

Finally you can define specific plugins you want to use in ``project.conf``::

    plugins:
    - origin: junction
      junction: bst-plugins-experimental.bst
      sources:
      - pypi
      elements:
      - pep517


Alternative methods
~~~~~~~~~~~~~~~~~~~

You can use Git's 'submodules' feature to import this repo into your project's
repo, then declare the plugins as
`local plugins <https://docs.buildstream.build/master/format_project.html#local-plugins>`_.

BuildStream also supports
`pip plugins <https://docs.buildstream.build/master/format_project.html#pip-plugins>`_
which are imported from the host Python environment. While
`bst-plugins-experimental <https://pypi.org/project/bst-plugins-experimental/>`_
is available on PyPI, the project does not provide any backwards compatibility
or "semantic versioning" guarantees. Make sure you can control exactly what of
the package version is used if you consume it via Pip.
