#27682: Add more dependencies to extras_require (eg sqlparse, PyYAML)
------------------------------------------------+--------------------------
Reporter: Ed Morley | Owner: nobody
Type: Cleanup/optimization | Status: assigned
Component: Packaging | Version: master
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
------------------------------------------------+--------------------------
There are several optional Django features that require third-party Python
packages that (intentionally) aren't specified as `install_requires`
dependencies in setup.py, since not everyone would want them installed.
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.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/051.53e3b043a8652227baedce6c579abd2d%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.