diff --git a/.travis.yml b/.travis.yml
index 8ca40c77..f6e18b52 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,11 +7,10 @@ services:
language: python
-python: 3.5
+python: 3.6
env:
- - TOX_ENV=py34
- - TOX_ENV=py35
+ - TOX_ENV=py36
before_install:
- sudo sh -c 'echo "deb https://apt.dockerproject.org/repo ubuntu-precise main" > /etc/apt/sources.list.d/docker.list'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 70a142fc..c40bb26b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,11 +2,15 @@
All enhancements and patches to Cookiecutter Django will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
-## [2015-10-08]
+## [2017-12-28]
+### Changed
+- Upgraded to Django 1.11 (@pydanny)
+
+## [2017-10-08]
### Changed
- Elastic Beanstalk: Added --noinput to migrate command (@MightySCollins )
-## [2015-10-07]
+## [2017-10-07]
### Added
- Finished first pass at Elastic Beanstalk docs (@pydanny & @audreyr)
### Deleted
diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst
index 08bca907..4cf632db 100644
--- a/CONTRIBUTORS.rst
+++ b/CONTRIBUTORS.rst
@@ -127,6 +127,7 @@ Listed in alphabetical order.
Pablo `@oubiga`_
Parbhat Puri `@parbhat`_
Peter Bittner `@bittner`_
+ Pierre Chiquet `@pchiquet`_
Raphael Pierzina `@hackebrot`_
Raony GuimarĂ£es CorrĂªa `@raonyguimaraes`_
Reggie Riser `@reggieriser`_
diff --git a/README.rst b/README.rst
index 589f1c92..838253f4 100644
--- a/README.rst
+++ b/README.rst
@@ -34,8 +34,8 @@ production-ready Django projects quickly.
Features
---------
-* For Django 1.10
-* Works with Python 3.4.x or 3.5.x. Python 3.6 is experimental
+* For Django 1.11
+* Works with Python 3.6
* Renders Django projects with 100% starting test coverage
* Twitter Bootstrap_ v4.0.0 - beta 1 (`maintained Foundation fork`_ also available)
* 12-Factor_ based settings via django-environ_
diff --git a/cookiecutter.json b/cookiecutter.json
index 8addeead..184e8796 100644
--- a/cookiecutter.json
+++ b/cookiecutter.json
@@ -18,7 +18,7 @@
"use_heroku": "n",
"use_elasticbeanstalk_experimental": "n",
"use_compressor": "n",
- "postgresql_version": ["9.6", "9.5", "9.4", "9.3", "9.2"],
+ "postgresql_version": ["10", "9.6", "9.5", "9.4", "9.3", "9.2"],
"js_task_runner": ["Gulp", "Grunt", "None"],
"custom_bootstrap_compilation": "n",
"open_source_license": ["MIT", "BSD", "GPLv3", "Apache Software License 2.0", "Not open source"]
diff --git a/docs/deployment-with-elastic-beanstalk.rst b/docs/deployment-with-elastic-beanstalk.rst
index e8aae885..d481c93b 100644
--- a/docs/deployment-with-elastic-beanstalk.rst
+++ b/docs/deployment-with-elastic-beanstalk.rst
@@ -21,6 +21,9 @@ Instructions
If you haven't done so, create a directory of environments::
eb init -p python3.4 MY_PROJECT_SLUG
+ # Warning: If you use python3.6, you will run into problems later due to some incompatibility with
+ # mod_wgsi 3.5 (packaged in 64bit Amazon Linux 2017.09 v2.6.1 running Python 3.6). See:
+ # https://serverfault.com/questions/884469/mod-wsgi-call-to-site-addsitedir-failed-on-aws-elastic-beanstalk-python-3/885445
Replace `MY_PROJECT_SLUG` with the value you entered for `project_slug`.
diff --git a/requirements.txt b/requirements.txt
index 6d3fa8cd..1790a021 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,7 +4,7 @@ sh==1.12.14
binaryornot==0.4.4
# Testing
-pytest==3.2.5
+pytest==3.3.2
pycodestyle==2.3.1
pyflakes==1.6.0
tox==2.9.1
diff --git a/setup.py b/setup.py
index 6dc6635e..a300dc7f 100644
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@ except ImportError:
# Our version ALWAYS matches the version of Django we support
# If Django has a new release, we branch, tag, then update this setting after the tag.
-version = '1.10.7'
+version = '1.11.8'
if sys.argv[-1] == 'tag':
os.system('git tag -a %s -m "version %s"' % (version, version))
diff --git a/tox.ini b/tox.ini
index 311d80f4..a16b80ed 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
[tox]
skipsdist = true
-envlist = py34,py35
+envlist = py36
[testenv]
passenv = LC_ALL, LANG, HOME
diff --git a/{{cookiecutter.project_slug}}/.ebextensions/10_packages.config b/{{cookiecutter.project_slug}}/.ebextensions/10_packages.config
index c0774efa..136be533 100644
--- a/{{cookiecutter.project_slug}}/.ebextensions/10_packages.config
+++ b/{{cookiecutter.project_slug}}/.ebextensions/10_packages.config
@@ -3,3 +3,5 @@ packages:
git: []
postgresql94-devel: []
libjpeg-turbo-devel: []
+ libffi: []
+ libffi-devel: []
diff --git a/{{cookiecutter.project_slug}}/.ebextensions/40_python.config b/{{cookiecutter.project_slug}}/.ebextensions/40_python.config
index 111bf1ca..03b91eb4 100644
--- a/{{cookiecutter.project_slug}}/.ebextensions/40_python.config
+++ b/{{cookiecutter.project_slug}}/.ebextensions/40_python.config
@@ -10,7 +10,7 @@ option_settings:
REDIS_ENDPOINT_ADDRESS: '`{ "Fn::GetAtt" : [ "MyElastiCache", "RedisEndpoint.Address"]}`'
REDIS_PORT: '`{ "Fn::GetAtt" : [ "MyElastiCache", "RedisEndpoint.Port"]}`'
"aws:elasticbeanstalk:container:python":
- WSGIPath: "config/wsgi.py"
+ WSGIPath: config/wsgi.py
NumProcesses: 3
NumThreads: 20
"aws:elasticbeanstalk:container:python:staticfiles":
diff --git a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__migrate.xml b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__migrate.xml
index 95f45bfb..cc2fe0bb 100644
--- a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__migrate.xml
+++ b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__migrate.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___all.xml b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___all.xml
index 5c797c61..c4fd62aa 100644
--- a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___all.xml
+++ b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___all.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___class__TestUser.xml b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___class__TestUser.xml
index f2b046b9..78da4a67 100644
--- a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___class__TestUser.xml
+++ b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___class__TestUser.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___file__test_models.xml b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___file__test_models.xml
index 2dba2624..0391bf25 100644
--- a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___file__test_models.xml
+++ b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___file__test_models.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___module__users.xml b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___module__users.xml
index 6ab0709f..651ea5cb 100644
--- a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___module__users.xml
+++ b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___module__users.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___specific__test_get_absolute_url.xml b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___specific__test_get_absolute_url.xml
index 5dba01f0..8c789390 100644
--- a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___specific__test_get_absolute_url.xml
+++ b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__tests___specific__test_get_absolute_url.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/{{cookiecutter.project_slug}}/README.rst b/{{cookiecutter.project_slug}}/README.rst
index 924e238d..c4bf9fe3 100644
--- a/{{cookiecutter.project_slug}}/README.rst
+++ b/{{cookiecutter.project_slug}}/README.rst
@@ -79,8 +79,6 @@ Email Server
{% if cookiecutter.use_docker == 'y' %}
In development, it is often nice to be able to see emails that are being sent from your application. For that reason local SMTP server `MailHog`_ with a web interface is available as docker container.
-.. _mailhog: https://github.com/mailhog/MailHog
-
Container mailhog will start automatically when you will run all docker containers.
Please check `cookiecutter-django Docker documentation`_ for more details how to start all containers.
@@ -88,8 +86,6 @@ With MailHog running, to view messages that are sent by your application, open y
{% else %}
In development, it is often nice to be able to see emails that are being sent from your application. If you choose to use `MailHog`_ when generating the project a local SMTP server with a web interface will be available.
-.. _mailhog: https://github.com/mailhog/MailHog
-
To start the service, make sure you have nodejs installed, and then type the following::
$ npm install
@@ -101,6 +97,7 @@ To view messages that are sent by your application, open your browser and go to
The email server will exit when you exit the Grunt task on the CLI with Ctrl+C.
{% endif %}
+.. _mailhog: https://github.com/mailhog/MailHog
{% endif %}
{% if cookiecutter.use_sentry_for_error_reporting == "y" %}
@@ -142,7 +139,7 @@ Elastic Beanstalk
See detailed `cookiecutter-django Elastic Beanstalk documentation`_.
-.. _`cookiecutter-django Docker documentation`: http://cookiecutter-django.readthedocs.io/en/latest/deployment-with-elastic-beanstalk.html
+.. _`cookiecutter-django Elastic Beanstalk documentation`: http://cookiecutter-django.readthedocs.io/en/latest/deployment-with-elastic-beanstalk.html
{% endif %}
{% if cookiecutter.custom_bootstrap_compilation == "y" %}
diff --git a/{{cookiecutter.project_slug}}/config/settings/production.py b/{{cookiecutter.project_slug}}/config/settings/production.py
index 9eeb46bc..db581306 100644
--- a/{{cookiecutter.project_slug}}/config/settings/production.py
+++ b/{{cookiecutter.project_slug}}/config/settings/production.py
@@ -120,7 +120,7 @@ DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
# See:http://stackoverflow.com/questions/10390244/
from storages.backends.s3boto3 import S3Boto3Storage
StaticRootS3BotoStorage = lambda: S3Boto3Storage(location='static') # noqa
-MediaRootS3BotoStorage = lambda: S3Boto3Storage(location='media') # noqa
+MediaRootS3BotoStorage = lambda: S3Boto3Storage(location='media', file_overwrite=False) # noqa
DEFAULT_FILE_STORAGE = 'config.settings.production.MediaRootS3BotoStorage'
MEDIA_URL = 'https://s3.amazonaws.com/%s/media/' % AWS_STORAGE_BUCKET_NAME
diff --git a/{{cookiecutter.project_slug}}/pytest.ini b/{{cookiecutter.project_slug}}/pytest.ini
index 5b4369b8..89c5e63f 100644
--- a/{{cookiecutter.project_slug}}/pytest.ini
+++ b/{{cookiecutter.project_slug}}/pytest.ini
@@ -1,2 +1,5 @@
[pytest]
DJANGO_SETTINGS_MODULE=config.settings.test
+{% if cookiecutter.js_task_runner != 'None' %}
+norecursedirs = node_modules
+{% endif %}
diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt
index 00e86bf4..81a375b1 100644
--- a/{{cookiecutter.project_slug}}/requirements/base.txt
+++ b/{{cookiecutter.project_slug}}/requirements/base.txt
@@ -5,8 +5,8 @@
wheel==0.30.0
-# Bleeding edge Django
-django==1.10.8 # pyup: >=1.10,<1.11
+# Conservative Django
+django==1.11.9 # pyup: <2.0
# Configuration
django-environ==0.4.4
@@ -19,13 +19,13 @@ whitenoise==3.3.1
django-crispy-forms==1.7.0
# Models
-django-model-utils==3.0.0
+django-model-utils==3.1.1
# Images
-Pillow==4.3.0
+Pillow==5.0.0
# Password storage
-argon2-cffi==16.3.0
+argon2-cffi==18.1.0
# For user registration, either via email or social
# Well-built with regular release cycles!
diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt
index 33372244..0d42646d 100644
--- a/{{cookiecutter.project_slug}}/requirements/local.txt
+++ b/{{cookiecutter.project_slug}}/requirements/local.txt
@@ -4,10 +4,10 @@
coverage==4.4.2
django-coverage-plugin==1.5.0
-Sphinx==1.6.5
-django-extensions==1.9.7
-Werkzeug==0.12.2
-django-test-plus==1.0.20
+Sphinx==1.6.6
+django-extensions==1.9.8
+Werkzeug==0.14.1
+django-test-plus==1.0.22
factory-boy==2.9.2
django-debug-toolbar==1.9.1
diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt
index 4ba9d6e0..5042686b 100644
--- a/{{cookiecutter.project_slug}}/requirements/production.txt
+++ b/{{cookiecutter.project_slug}}/requirements/production.txt
@@ -16,10 +16,10 @@ gunicorn==19.7.1
# Static and Media Storage
# ------------------------------------------------
-boto3==1.4.7
+boto3==1.5.12
django-storages==1.6.5
{% if cookiecutter.use_whitenoise != 'y' -%}
-Collectfast==0.5.2
+Collectfast==0.6.0
{%- endif %}
# Email backends for Mailgun, Postmark, SendGrid and more
@@ -29,11 +29,11 @@ django-anymail==1.2
{% if cookiecutter.use_sentry_for_error_reporting == "y" -%}
# Raven is the Sentry client
# --------------------------
-raven==6.3.0
+raven==6.4.0
{%- endif %}
{% if cookiecutter.use_opbeat == "y" -%}
# Opbeat agent for performance monitoring
# -----------------------------------------
-opbeat==3.5.3
+opbeat==3.6.0
{%- endif %}
diff --git a/{{cookiecutter.project_slug}}/requirements/test.txt b/{{cookiecutter.project_slug}}/requirements/test.txt
index 5c60fe8b..01e02c21 100644
--- a/{{cookiecutter.project_slug}}/requirements/test.txt
+++ b/{{cookiecutter.project_slug}}/requirements/test.txt
@@ -9,7 +9,7 @@ psycopg2==2.7.3.2
coverage==4.4.2
flake8==3.5.0 # pyup: != 2.6.0
-django-test-plus==1.0.20
+django-test-plus==1.0.22
factory-boy==2.9.2
django-coverage-plugin==1.5.0