aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Christie2015-02-17 12:46:55 +0000
committerTom Christie2015-02-17 12:46:55 +0000
commit9f4f9c9c9f09f46776e75435f4fe727789721e81 (patch)
treeca91ccc836a75ca1577881c33809f2139ac63bfb
parentdbd23521656b366cbaa1382a0d222f8fe4e3a326 (diff)
downloaddjango-rest-framework-9f4f9c9c9f09f46776e75435f4fe727789721e81.tar.bz2
Single source of truth for requirements
-rw-r--r--requirements.txt34
-rw-r--r--requirements/requirements-codestyle.txt3
-rw-r--r--requirements/requirements-documentation.txt2
-rw-r--r--requirements/requirements-optionals.txt4
-rw-r--r--requirements/requirements-packaging.txt11
-rw-r--r--requirements/requirements-testing.txt3
-rw-r--r--tox.ini13
7 files changed, 42 insertions, 28 deletions
diff --git a/requirements.txt b/requirements.txt
index bf461179..4ec84f68 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 00000000..4e2be24c
--- /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 00000000..5009436e
--- /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 00000000..af9937cf
--- /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 00000000..e4ac7740
--- /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 00000000..a8d5d322
--- /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 76f4f09b..b96b4939 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