diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index 8fbe47712..a5ea2d937 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -141,6 +141,7 @@ Listed in alphabetical order. Roman Afanaskin `@siauPatrick`_ Roman Osipenko `@romanosipenko`_ Russell Davies + Sascha `@saschalalala` @saschalalala Sam Collins `@MightySCollins`_ Shupeyko Nikita `@webyneter`_ Sławek Ehlert `@slafs`_ diff --git a/README.rst b/README.rst index 25f421947..9c1640712 100644 --- a/README.rst +++ b/README.rst @@ -158,13 +158,13 @@ Answer the prompts with your own desired options_. For example:: domain_name [example.com]: myreddit.com version [0.1.0]: 0.0.1 timezone [UTC]: America/Los_Angeles - use_whitenoise [y]: n + use_whitenoise [n]: n use_celery [n]: y use_mailhog [n]: n - use_sentry [y]: y + use_sentry [n]: y use_pycharm [n]: y windows [n]: n - use_docker [y]: n + use_docker [n]: n use_heroku [n]: y use_compressor [n]: y Select postgresql_version: diff --git a/cookiecutter.json b/cookiecutter.json index e6687822a..bd7ee7222 100644 --- a/cookiecutter.json +++ b/cookiecutter.json @@ -3,8 +3,8 @@ "project_slug": "{{ cookiecutter.project_name.lower()|replace(' ', '_')|replace('-', '_') }}", "description": "Behold My Awesome Project!", "author_name": "Daniel Roy Greenfeld", - "email": "{{ cookiecutter.author_name.lower()|replace(' ', '-') }}@example.com", "domain_name": "example.com", + "email": "{{ cookiecutter.author_name.lower()|replace(' ', '-') }}@example.com", "version": "0.1.0", "open_source_license": [ "MIT", @@ -28,15 +28,14 @@ ], "js_task_runner": [ "None", - "Gulp", - "Grunt" + "Gulp" ], "custom_bootstrap_compilation": "n", "use_compressor": "n", "use_celery": "n", "use_mailhog": "n", - "use_sentry": "y", - "use_whitenoise": "y", + "use_sentry": "n", + "use_whitenoise": "n", "use_heroku": "n", "use_travisci": "n", "keep_local_envs_in_vcs": "y", diff --git a/docs/deployment-on-heroku.rst b/docs/deployment-on-heroku.rst index 1f249c44c..982168fc7 100644 --- a/docs/deployment-on-heroku.rst +++ b/docs/deployment-on-heroku.rst @@ -18,7 +18,7 @@ Run these commands to deploy the project to Heroku: heroku config:set WEB_CONCURRENCY=4 # Generating a 32 character-long random string without any of the visually similiar characters "IOl01": - heroku config:set DJANGO_ADMIN_URL="^$(openssl rand -base64 4096 | tr -dc 'A-HJ-NP-Za-km-z2-9' | head -c 32)/" + heroku config:set DJANGO_ADMIN_URL="$(openssl rand -base64 4096 | tr -dc 'A-HJ-NP-Za-km-z2-9' | head -c 32)/" heroku config:set DJANGO_SECRET_KEY="$(openssl rand -base64 64)" heroku config:set DJANGO_SETTINGS_MODULE=config.settings.production heroku config:set DJANGO_ALLOWED_HOSTS='.herokuapp.com' @@ -33,6 +33,7 @@ Run these commands to deploy the project to Heroku: heroku config:set PYTHONHASHSEED=random git push heroku master + heroku run python manage.py migrate heroku run python manage.py check --deploy heroku run python manage.py createsuperuser heroku open diff --git a/docs/deployment-with-docker.rst b/docs/deployment-with-docker.rst index 90f2fa5c0..de0026a60 100644 --- a/docs/deployment-with-docker.rst +++ b/docs/deployment-with-docker.rst @@ -84,6 +84,10 @@ Once this is ready, you can run it with:: docker-compose -f production.yml up +To run the stack and detach the containers, run:: + + docker-compose -f production.yml up -d + To run a migration, open up a second terminal and run:: docker-compose -f production.yml run --rm django python manage.py migrate diff --git a/docs/project-generation-options.rst b/docs/project-generation-options.rst index 4c46cbdcc..60453b870 100644 --- a/docs/project-generation-options.rst +++ b/docs/project-generation-options.rst @@ -1,31 +1,31 @@ Project Generation Options ========================== -project_name [My Awesome Project]: +project_name: Your project's human-readable name, capitals and spaces allowed. -project_slug [my_awesome_project]: +project_slug: Your project's slug without dashes or spaces. Used to name your repo and in other places where a Python-importable version of your project name is needed. -description [Behold My Awesome Project!] +description: Describes your project and gets used in places like ``README.rst`` and such. -author_name [Daniel Roy Greenfeld]: +author_name: This is you! The value goes into places like ``LICENSE`` and such. -email [daniel-roy-greenfeld@example.com]: +email: The email address you want to identify yourself in the project. -domain_name [example.com] +domain_name: The domain name you plan to use for your project once it goes live. Note that it can be safely changed later on whenever you need to. -version [0.1.0] +version: The version of the project at its inception. -open_source_license [1] +open_source_license: A software license for the project. The choices are: 1. MIT_ @@ -34,19 +34,19 @@ open_source_license [1] 4. `Apache Software License 2.0`_ 5. Not open source -timezone [UTC] +timezone: The value to be used for the ``TIME_ZONE`` setting of the project. -windows [n] +windows: Indicates whether the project should be configured for development on Windows. -use_pycharm [n] +use_pycharm: Indicates whether the project should be configured for development with PyCharm_. -use_docker [y] +use_docker: Indicates whether the project should be configured to use Docker_ and `Docker Compose`_. -postgresql_version [1] +postgresql_version: Select a PostgreSQL_ version to use. The choices are: 1. 10.3 @@ -57,46 +57,45 @@ postgresql_version [1] 6. 9.4 7. 9.3 -js_task_runner [1] +js_task_runner: Select a JavaScript task runner. The choices are: - 1. Gulp_ - 2. Grunt_ - 3. None + 1. None + 2. Gulp_ -custom_bootstrap_compilation [n] +custom_bootstrap_compilation: Indicates whether the project should support Bootstrap recompilation via the selected JavaScript task runner's task. This can be useful for real-time Bootstrap variable alteration. -use_compressor [n] +use_compressor: Indicates whether the project should be configured to use `Django Compressor`_. -use_celery [n] +use_celery: Indicates whether the project should be configured to use Celery_. -use_mailhog [n] +use_mailhog: Indicates whether the project should be configured to use MailHog_. -use_sentry [n] +use_sentry: Indicates whether the project should be configured to use Sentry_. -use_whitenoise [y] +use_whitenoise: Indicates whether the project should be configured to use WhiteNoise_. -use_heroku [n] +use_heroku: Indicates whether the project should be configured so as to be deployable to Heroku_. -use_travisci [n] +use_travisci: Indicates whether the project should be configured to use `Travis CI`_. -keep_local_envs_in_vcs [y] +keep_local_envs_in_vcs: Indicates whether the project's ``.envs/.local/`` should be kept in VCS (comes in handy when working in teams where local environment reproducibility is strongly encouraged). -debug [n] +debug: Indicates whether the project should be configured for debugging. This option is relevant for Cookiecutter Django developers only. @@ -114,7 +113,6 @@ debug [n] .. _PostgreSQL: https://www.postgresql.org/docs/ .. _Gulp: https://github.com/gulpjs/gulp -.. _Grunt: https://github.com/gruntjs/grunt .. _Django Compressor: https://github.com/django-compressor/django-compressor diff --git a/docs/settings.rst b/docs/settings.rst index 7962f7154..60593a5d1 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -18,7 +18,7 @@ DJANGO_READ_DOT_ENV_FILE READ_DOT_ENV_FILE False ======================================= =========================== ============================================== ====================================================================== Environment Variable Django Setting Development Default Production Default ======================================= =========================== ============================================== ====================================================================== -DJANGO_ADMIN_URL n/a r'^admin/' raises error +DJANGO_ADMIN_URL n/a 'admin/' raises error DJANGO_CACHES CACHES (default) locmem redis DJANGO_DATABASES DATABASES (default) See code See code DJANGO_DEBUG DEBUG True False diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py index 5e60b23a8..6b48471e5 100644 --- a/hooks/post_gen_project.py +++ b/hooks/post_gen_project.py @@ -67,12 +67,6 @@ def remove_heroku_files(): os.remove(file_name) -def remove_grunt_files(): - file_names = ["Gruntfile.js"] - for file_name in file_names: - os.remove(file_name) - - def remove_gulp_files(): file_names = ["gulpfile.js"] for file_name in file_names: @@ -160,7 +154,7 @@ def set_django_admin_url(file_path): django_admin_url = set_flag( file_path, "!!!SET DJANGO_ADMIN_URL!!!", - formatted="^{}/", + formatted="{}/", length=32, using_digits=True, using_ascii_letters=True, @@ -264,16 +258,11 @@ def main(): if "{{ cookiecutter.keep_local_envs_in_vcs }}".lower() == "y": append_to_gitignore_file("!.envs/.local/") - if "{{ cookiecutter.js_task_runner}}".lower() == "gulp": - remove_grunt_files() - elif "{{ cookiecutter.js_task_runner}}".lower() == "grunt": + if "{{ cookiecutter.js_task_runner}}".lower() == "none": remove_gulp_files() - else: - remove_gulp_files() - remove_grunt_files() remove_packagejson_file() if ( - "{{ cookiecutter.js_task_runner }}".lower() in ["grunt", "gulp"] + "{{ cookiecutter.js_task_runner }}".lower() != "none" and "{{ cookiecutter.use_docker }}".lower() == "y" ): print( diff --git a/tests/test_docker.sh b/tests/test_docker.sh index 384fdff2d..bebac1488 100755 --- a/tests/test_docker.sh +++ b/tests/test_docker.sh @@ -11,7 +11,7 @@ mkdir -p .cache/docker cd .cache/docker # create the project using the default settings in cookiecutter.json -cookiecutter ../../ --no-input --overwrite-if-exists use_docker=y js_task_runner=None +cookiecutter ../../ --no-input --overwrite-if-exists use_docker=y cd my_awesome_project # run the project's tests diff --git a/{{cookiecutter.project_slug}}/.gitignore b/{{cookiecutter.project_slug}}/.gitignore index 84b7e6d62..3cabaac22 100644 --- a/{{cookiecutter.project_slug}}/.gitignore +++ b/{{cookiecutter.project_slug}}/.gitignore @@ -105,9 +105,6 @@ coverage # nyc test coverage .nyc_output -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - # Bower dependency directory (https://bower.io/) bower_components diff --git a/{{cookiecutter.project_slug}}/.idea/misc.xml b/{{cookiecutter.project_slug}}/.idea/misc.xml new file mode 100644 index 000000000..10af178fd --- /dev/null +++ b/{{cookiecutter.project_slug}}/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/{{cookiecutter.project_slug}}/.idea/modules.xml b/{{cookiecutter.project_slug}}/.idea/modules.xml new file mode 100644 index 000000000..1418fcddf --- /dev/null +++ b/{{cookiecutter.project_slug}}/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__runserver.xml b/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__runserver.xml deleted file mode 100644 index 77b9a5875..000000000 --- a/{{cookiecutter.project_slug}}/.idea/runConfigurations/Docker__runserver.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - diff --git a/{{cookiecutter.project_slug}}/.idea/runConfigurations/merge_production_dotenvs_in_dotenv.xml b/{{cookiecutter.project_slug}}/.idea/runConfigurations/merge_production_dotenvs_in_dotenv.xml index 18f8365aa..cf2c5dd89 100644 --- a/{{cookiecutter.project_slug}}/.idea/runConfigurations/merge_production_dotenvs_in_dotenv.xml +++ b/{{cookiecutter.project_slug}}/.idea/runConfigurations/merge_production_dotenvs_in_dotenv.xml @@ -1,5 +1,6 @@ +