For example:
* PyYAML for the yaml serializer
* sqlparse for multi-line SQL statements for migrations `RunSQL`
* Database drivers
Adding these as `extras_require` [*] entries has the following advantages:
1) The reason for the packages is now self-documenting. eg:
{{{
Django[sqlparse,yaml]
}}}
...instead of:
{{{
Django
# Required by Django's migration system for RunSQL commands.
sqlparse
# Required by Django's YAML serializer.
PyYAML
}}}
2) Django could in the future manage the preferred package for a
particular feature in cases where there is a choice (eg mysqlclient vs
MySQL-python). Users can still override by not using the `extras_require`
alias (or there could even be multiple aliases).
3) If a new major version of Django stops requiring a particular
`extras_require` dependency, users will know to remove it from their
requirements files, since pip will warn there is no such extra listed.
[*] http://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-
extras-optional-features-with-their-own-dependencies
--
Ticket URL: <https://code.djangoproject.com/ticket/27682>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* owner: nobody => Ed Morley
--
Ticket URL: <https://code.djangoproject.com/ticket/27682#comment:1>
Comment (by Josh Smeaton):
I think I like this idea, but it's probably a change sufficient enough to
bring up on the mailing list https://groups.google.com/forum/#!forum
/django-developers
--
Ticket URL: <https://code.djangoproject.com/ticket/27682#comment:2>
* stage: Unreviewed => Someday/Maybe
--
Ticket URL: <https://code.djangoproject.com/ticket/27682#comment:3>
* cc: cdosborn@… (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/27682#comment:4>
* status: assigned => closed
* resolution: => duplicate
Comment:
I'm going to resolve this as a duplicate of #28905. Whilst this issue was
prior, #28905 is further along. (It has a PR)
--
Ticket URL: <https://code.djangoproject.com/ticket/27682#comment:5>