diff --git a/MANIFEST.in b/MANIFEST.in
index a9b543af82..d1b6b69633 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -12,4 +12,9 @@ recursive-include demo *.py
recursive-include demo *.sh
recursive-include docs *
recursive-include scripts *
+recursive-include scripts-dev *
recursive-include tests *.py
+
+recursive-include static *.css
+recursive-include static *.html
+recursive-include static *.js
diff --git a/setup.py b/setup.py
index 16ccc0f1b8..8ad20df7cb 100755
--- a/setup.py
+++ b/setup.py
@@ -47,11 +47,6 @@ setup(
packages=find_packages(exclude=["tests", "tests.*"]),
description="Reference Synapse Home Server",
install_requires=dependencies['requirements'](include_conditional=True).keys(),
- setup_requires=[
- "Twisted>=15.1.0", # Here to override setuptools_trial's dependency on Twisted>=2.4.0
- "setuptools_trial",
- "mock"
- ],
dependency_links=dependencies["DEPENDENCY_LINKS"],
include_package_data=True,
zip_safe=False,
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000000..a1e0ac70d3
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,25 @@
+[tox]
+envlist = packaging, py27, pep8
+
+[testenv]
+deps =
+ coverage
+ Twisted>=15.1
+ mock
+commands =
+ coverage run --source=./synapse {envbindir}/trial tests
+ coverage report -m
+install_command =
+ pip install --process-dependency-links --pre {opts} {packages}
+
+[testenv:packaging]
+deps =
+ check-manifest
+commands =
+ check-manifest
+
+[testenv:pep8]
+basepython = python2.7
+deps =
+ flake8
+commands = flake8 synapse
|