Opened 8 years ago
Closed 7 years ago
#27682 closed Cleanup/optimization (duplicate)
Add more dependencies to extras_require (eg sqlparse, PyYAML)
Reported by: | Ed Morley | Owned by: | Ed Morley |
---|---|---|---|
Component: | Packaging | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | cdosborn@… | Triage Stage: | Someday/Maybe |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
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.
Change History (5)
comment:1 by , 8 years ago
Owner: | changed from | to
---|
comment:2 by , 8 years ago
comment:3 by , 8 years ago
Triage Stage: | Unreviewed → Someday/Maybe |
---|
comment:4 by , 8 years ago
Cc: | added |
---|
comment:5 by , 7 years ago
Resolution: | → duplicate |
---|---|
Status: | assigned → closed |
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