- Change celery app to not be a Django app, more like a WSGI app
- Define a Celery task in the Django users app
- Write a test to execute the task
- Update scripts to use the new app to start workers
- Update documentation
Fix#865
## Description
Fixes#591.
## Rationale
We are currently not testing many combinations, we run Flake8 on the generated project with default options, but that rarely catch any issues.
## Use case(s) / visualization(s)
Catch problems with invalid combinations, for instance, it fails due to Whitenoise breaking flake8 with `django-compressor` because `STATIC_URL` was undefined here:
b91c70d755/%7B%7Bcookiecutter.project_slug%7D%7D/config/settings/production.py (L185)
* Create a test matrix on Travis CI to help testing multiple options
* Change test_docker.sh to fail if any command in it fails
* Run black on the CI with --check option
* Fix formatting of project files using black
* Install black in the docker container
* Exclude migrations in black checks
* Fix Black formatting violations
* Run black on the whole generated project & fix issues
[//]: # (Thank you for helping us out: your efforts mean great deal to the project and the community as a whole!)
[//]: # (Before you proceed:)
[//]: # (1. Make sure to add yourself to `CONTRIBUTORS.rst` through this PR provided you're contributing here for the first time)
[//]: # (2. Don't forget to update the `docs/` presuming others would benefit from a concise description of whatever that you're proposing)
## Description
[//]: # (What's it you're proposing?)
Added a note around CELERY_TASK_ALWAYS_EAGER = True in docker config for local development. This causes tasks to be executed on the 'main' thread rather than by the workers. I understand why that might be desirable, but thought it worth calling out incase (like me) it makes people think something is broken.
## Rationale
[//]: # (Why does the project need that?)
Ease of use/troubleshooting
## Use case(s) / visualization(s)
[//]: # ("Better to see something once than to hear about it a thousand times.")
sorl-thumbnail serialized and deserializes the storage class and during this
process location parameter is lost if factory is used. Using a full-fledge
storage class fixes this issue.
See: https://stackoverflow.com/a/18046120/104731
* Add all internal IPs for multiple docker networks
When developing with modified docker-compose.yml that contains multiple
network definitions, all networks gateways of the created container
should be added to INTERNAL_IPS, otherwise Django-Debug-Toolbar will not
work.
* Add @flyudvik to contributors
* Convert old-styled string formatting to f-string
* Update flake8 explicit version to 3.5.0
* Make tox.ini in sync with requirements.txt
* Fix annoying flake8 F405
* Prettify and re-order settings entries
* Use old-style .format() for the time being
* Remove redundant linebreaks at the settings files' beginning
* Fix E303 too many blank lines
* Remove a redundant linebreak from requirements.txt
* Some linebreake juggling in config.settings.base
When creating a Mailgun add-on on Heroku, the app gets some environment
variables by default:
MAILGUN_API_KEY
MAILGUN_DOMAIN
However, the cookiecutter names do not match and requires a manual step
from the user deploying. It's used elsewhere but shouldn't harm the
other deployment methods to rename these variables.
While updating the docs I noticed a variable that appear unused
DJANGO_MAILGUN_SERVER_NAME so this removes it from the documentation.
Since config/production.py sets a new value for `DATABASES['default']`, the `DATABASES['default']['ATOMIC_REQUESTS'] = True` setting from base gets overridden. So it's probably a good idea to add it back.
* Fix ./hooks/pre_gen_project.py asking user to select an option once only
+ prettify output
* Fix pre_gen hook not really exiting when it should
* Refactor & prettify ./hooks/post_gen_project.py
* Ensure same POSTGRES_USER is set across environments
+ get rid of env.example in favor of pre-generated .env.
* Set CONN_MAX_AGE to 60 seconds -- fixes#710
Setting the value in the production config.
* Get CONN_MAX_AGE from the environment, default to 60 in .env
* Add test for CONN_MAX_AGE setting
* Remove duplication in default value & test cleanup
* Remove test for CONN_MAX_AGE value in settings
* More inline docs for DATABASES variable
Use of database url is not part of Django, but comes from django-environ. Was initially confusing where feature came from, as link points to offical django docs.
* Contributors update
As per the discussion in #869, WhiteNoise is for serving static files
not for media files (files uploaded from the app by users).
For such thing, we still need `DEFAULT_FILE_STORAGE` to be set and
we use django-storages for that.
- Boto3 is the replacement of boto, switch to the latest version
- Switch django-storages class to the one based on Boto3
- AWS_S3_CALLING_FORMAT isn't relevant anymore
* add mailhog container for local development
* update local settings to use mailhog container for docker
* remove whitespace
* remove whitespace
* fix whitespace formatting
* another try to fix whitespace
* fix block error due to whitespace
* only use mailhog in docker if docker and mailhog is chosen in setup wizard
* Remove warning at end if using docker and mailhog
* mailhog should work locally without docker
* remove unnecessary check for docker in dev docker-compose file
* Remove section within local development docs referencing docker
As this document is meant as a how to for developing locally, I removed the section which was added for using mailhog in docker. I will add that section to the developing-locally-docker.rst file. Also removed jinja template as it does not work in docs.
* Added a comment on mailhog for local docker development
* fix hyperlink to #smtp-backend
* Added a comment on mailhog for local docker development
* pull docs/developing-locally-docker.rst from upstream
* remove changes from dev.yml and add comment for local.py
* Sync with pydanny:master
* Introduce static asset build infrastructure
* Enhance gulpfile.js
* Introduce node service
* BrowserSync debug-only support
* Remove newline before BrowserSync debug-only support section
* FIx node Dockerfile package.json COPY
* Try fiixing node Dockerfile package.json COPY ones again
* Switch to `node:7-slim`
* Try switching to node:6
To account for possible node:7 docker-compose incompatibiltiy
* Revert "Try switching to node:6"
This reverts commit 62cc02df1a.
* Try switcging workdir to /app
* Try utilizing relative package.json path
* Resetting to the last version working locally with docker-compose 1.11.x
* Build upon the latest node:7.9-slim
* Stop dockerignoring package.json
* Fix typo
* Try a different package.json path
* Revert "Try a different package.json path"
This reverts commit f29f8500b8.
* Revert "Fix typo"
This reverts commit 02033729b5.
* Revert "Stop dockerignoring package.json"
This reverts commit 63c5491546.
* Upgrade docker-engine and docker-compose used by Travis CI
* Fix .travis.yml comments
* Inline docker-engine and docker-compose versions
* DEBUG: pwd
* Revert "DEBUG: pwd "
This reverts commit 6c2ed4321a.
* Try copying package.json to the same dir as node Dockerfile's
* Revert "Try copying package.json to the same dir as node Dockerfile's"
This reverts commit 24340a0783.
* Try out node:7.9
* Revert "Try out node:7.9"
This reverts commit 32286d33c2.
* Revert "Upgrade docker-engine and docker-compose used by Travis CI"
* Get rid of npm-check-updates
Reason: Reserved for the upcoming PR
* Get rid of npm-check
Reason: Reserved for the upcoming PR
* Get rid of 'standard' npm package
Reason: Reserved for the upcoming PR
* Clean up package.json
* Preserve package.json uncoditionally
Since we now have *unconditional* node.js integration, `package.json` must be out there whenever `node` service gets built
* Upgrade node service image to 7.10
* Document Node.js-Docker integration
* Fix gulpfile.js images region name
* Get rid of Gulp migrate task
* Document Gulp-Docker integration
* Introduce static asset build infrastructure
* Enhance gulpfile.js
* Introduce node service
* BrowserSync debug-only support
* Remove newline before BrowserSync debug-only support section
* FIx node Dockerfile package.json COPY
* Try fiixing node Dockerfile package.json COPY ones again
* Switch to `node:7-slim`
* Try switching to node:6
To account for possible node:7 docker-compose incompatibiltiy
* Revert "Try switching to node:6"
This reverts commit 62cc02df1a.
* Try switcging workdir to /app
* Try utilizing relative package.json path
* Resetting to the last version working locally with docker-compose 1.11.x
* Build upon the latest node:7.9-slim
* Stop dockerignoring package.json
* Revert "Stop dockerignoring package.json"
This reverts commit 63c5491546.
* Fix typo
* Revert "Fix typo"
This reverts commit 02033729b5.
* Try a different package.json path
* Revert "Try a different package.json path"
This reverts commit f29f8500b8.
* Upgrade docker-engine and docker-compose used by Travis CI
* Fix .travis.yml comments
* Inline docker-engine and docker-compose versions
* DEBUG: pwd
* Revert "DEBUG: pwd "
This reverts commit 6c2ed4321a.
* Try copying package.json to the same dir as node Dockerfile's
* Revert "Try copying package.json to the same dir as node Dockerfile's"
This reverts commit 24340a0783.
* Try out node:7.9
* Revert "Try out node:7.9"
This reverts commit 32286d33c2.
* Revert "Upgrade docker-engine and docker-compose used by Travis CI"
* Get rid of npm-check-updates
Reason: Reserved for the upcoming PR
* Get rid of npm-check
Reason: Reserved for the upcoming PR
* Get rid of 'standard' npm package
Reason: Reserved for the upcoming PR
* Clean up package.json
* Preserve package.json uncoditionally
Since we now have *unconditional* node.js integration, `package.json` must be out there whenever `node` service gets built
* Upgrade node service image to 7.10
* Document Node.js-Docker integration
* Fix gulpfile.js images region name
* Get rid of Gulp migrate task
* Document Gulp-Docker integration
* Remove Gulp-Docker integraton not supported initialization message
ADDED: HTTPS is on by default. This will give a new user an
understanding of why Cookie Django is set up securely for deployment in
a production environment.
* Updated settings to only include lists and '
Substituted " with ' in files
Migrated tuples to lists
* Added trailing slashes
- trailing slashes
- minor cleanups
Includes:
* First pass at Elastic Beanstalk integration
* Gets code and elasticache working
* Very rudimentary documentation
* Includes post hook cleanup