diff --git a/requirements.txt b/requirements.txt index bf46117921..4ec84f684c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,21 +1,13 @@ -# Minimum Django version -Django>=1.4.11 - -# Test requirements -pytest-django==2.8.0 -pytest==2.6.4 -pytest-cov==1.6 -flake8==2.2.2 - -# Optional packages -markdown>=2.1.0 -django-guardian==1.2.4 -django-filter>=0.9.2 - -# wheel for PyPI installs -wheel==0.24.0 -# twine for secured PyPI uploads -twine==1.4.0 - -# MkDocs for documentation previews/deploys -mkdocs==0.11.1 +# The base set of requirements for REST framework is actually +# just Django, but for the purposes of development and testing +# there are a number of packages that it is useful to install. + +# Laying these out as seperate requirements files, allows us to +# only included the relevent sets when running tox, and ensures +# we are only ever declaring out dependancies in one place. + +-r requirements/requirements-optionals.txt +-r requirements/requirements-testing.txt +-r requirements/requirements-documentation.txt +-r requirements/requirements-codestyle.txt +-r requirements/requirements-packaging.txt diff --git a/requirements/requirements-codestyle.txt b/requirements/requirements-codestyle.txt new file mode 100644 index 0000000000..4e2be24c39 --- /dev/null +++ b/requirements/requirements-codestyle.txt @@ -0,0 +1,3 @@ +# PEP8 code linting, which we run on all commits. +flake8==2.3.0 +pep8==1.6.2 diff --git a/requirements/requirements-documentation.txt b/requirements/requirements-documentation.txt new file mode 100644 index 0000000000..5009436e4a --- /dev/null +++ b/requirements/requirements-documentation.txt @@ -0,0 +1,2 @@ +# MkDocs to build our documentation. +mkdocs==0.11.1 diff --git a/requirements/requirements-optionals.txt b/requirements/requirements-optionals.txt new file mode 100644 index 0000000000..af9937cfa2 --- /dev/null +++ b/requirements/requirements-optionals.txt @@ -0,0 +1,4 @@ +# Optional packages which may be used with REST framework. +markdown==2.5.2 +django-guardian==1.2.5 +django-filter==0.9.2 diff --git a/requirements/requirements-packaging.txt b/requirements/requirements-packaging.txt new file mode 100644 index 0000000000..e4ac774030 --- /dev/null +++ b/requirements/requirements-packaging.txt @@ -0,0 +1,11 @@ +# Wheel for PyPI installs. +wheel==0.24.0 + +# Twine for secured PyPI uploads. +twine==1.4.0 + +# Transifex client for managing translation resources. +transifex-client==0.10 + +# The pip-review and pip-dump tools for package upgrades. +pip-tools==0.3.5 diff --git a/requirements/requirements-testing.txt b/requirements/requirements-testing.txt new file mode 100644 index 0000000000..a8d5d3229e --- /dev/null +++ b/requirements/requirements-testing.txt @@ -0,0 +1,3 @@ +# PyTest for running the tests. +pytest==2.6.4 +pytest-django==2.8.0 diff --git a/tox.ini b/tox.ini index 76f4f09b33..b96b4939b8 100644 --- a/tox.ini +++ b/tox.ini @@ -15,18 +15,17 @@ deps = django16: Django==1.6.3 # Should track minimum supported django17: Django==1.7.2 # Should track maximum supported django18alpha: https://www.djangoproject.com/download/1.8a1/tarball/ - django-guardian==1.2.4 - pytest-django==2.8.0 - django-filter==0.9.2 - markdown>=2.1.0 + -rrequirements/requirements-testing.txt + -rrequirements/requirements-optionals.txt [testenv:py27-flake8] deps = - pytest==2.6.4 - flake8==2.2.2 + -rrequirements/requirements-testing.txt + -rrequirements/requirements-codestyle.txt commands = ./runtests.py --lintonly [testenv:py27-docs] deps = - mkdocs>=0.11.1 + -rrequirements/requirements-testing.txt + -rrequirements/requirements-documentation.txt commands = mkdocs build