﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
21581	collecstatic --clear is too lax about warning users	loic84	loic84	"`STATIC_ROOT` is not set in the `settings.py` that ships with the default project template, so `STATIC_ROOT = ''` from `global_settings.py` is used instead.

`''` is a valid relative path, which means ""from the current directory"", so common case, you would wipe your whole project, worse case you can wipe your system (assuming you have sufficient privileges).

This is made worse by another bug: we don't display the affected directory.

The `isinstance(self.storage, FileSystemStorage)` (1) check fails because `self.storage` is not yet evaluated and still resolves to `ConfiguredStorage` (2) which is not a `FileSystemStorage` subclass.

(1) https://github.com/django/django/blob/master/django/contrib/staticfiles/management/commands/collectstatic.py#L141
(2) https://github.com/django/django/blob/master/django/contrib/staticfiles/storage.py#L304

Finally I think `--dry-run` should print a message that confirms that the command is really run in dry-run mode. Currently, when you do `--dry-run --clear`, you get a scary warning that you will delete files and you even have to confirm by typing ""yes"" just like the real command, that's enough to make you doubt that the `--dry-run` is effective.

I suggest the following:
- Set `global_settings.STATIC_ROOT` to `None`.
- Add `STATIC_ROOT = os.path.join(BASE_DIR, 'static')` to the default template.
- Have management commands refuse to run when `settings.STATIC_ROOT == None`.
- Evaluate `Command.storage` one way or another.
- Add a warning when the command is run with `--dry-run` mode.
"	Bug	closed	contrib.staticfiles	dev	Release blocker	fixed		eromijn@…	Accepted	0	0	0	0	0	0
