# Basic toplevel package includes
include BuildStream.doap
include COPYING
include CONTRIBUTING.rst
include MAINTAINERS
include NEWS
include README.rst

# Data files required by BuildStream's generic source tests
recursive-include buildstream/testing/_sourcetests/project *

# Documentation package includes
include doc/Makefile
include doc/badges.py
include doc/bst2html.py
include doc/source/conf.py
include doc/source/plugin.rsttemplate
recursive-include doc/source *.rst
recursive-include doc/source *.py
recursive-include doc/source *.in
recursive-include doc/source *.html
recursive-include doc/source *.odg
recursive-include doc/source *.svg
recursive-include doc/examples *
recursive-include doc/sessions *.run

# Tests
recursive-include tests *
include tox.ini
include .coveragerc
include .pylintrc

# Protocol Buffers
recursive-include buildstream/_protos *.proto

# Requirements files
include requirements/requirements.in
include requirements/requirements.txt
include requirements/dev-requirements.in
include requirements/dev-requirements.txt
include requirements/plugin-requirements.in
include requirements/plugin-requirements.txt

# Versioneer
include versioneer.py
