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

# 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 *

# Tests
recursive-include tests *
include conftest.py
include .coveragerc
include .pylintrc

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

# Requirements files
include dev-requirements.txt

# Versioneer
include versioneer.py
