#28905: Overhaul extra_requires to include more optional dependencies
-------------------------------------+-------------------------------------
     Reporter:  Jaap Roes            |                    Owner:  Nick Pope
         Type:                       |                   Status:  assigned
  Cleanup/optimization               |
    Component:  Packaging            |                  Version:  master
     Severity:  Normal               |               Resolution:
     Keywords:  setup optional       |             Triage Stage:  Accepted
  dependencies packages              |
  requirements                       |
    Has patch:  1                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  1                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Jaap Roes):

 Thanks Nick for taking this ticket and trying to move it forwards.

 The additional documentation about optional dependencies makes so much
 sense, it alone would satisfy some of the discoverability issues with
 optional dependencies. It would be nice if the overview of optional
 dependencies could link to the relevant sections in the docs. E.g.
 caching, databases, GIS, password hashers, template engines, serializers
 etc.

 The grouping/inclusion of dependencies seems to be the main stumbling
 block. Adding `extra_requires` groups adds a maintenance burden on these
 groups, as in, they'll need to work for future versions of Django. For
 this reason I think it's probably not the right choice to name groups
 directly after the package they are installing (`pylibmc`, `pyinotify`,
 `selenium` etc.).

 Maybe it would be easier to just start out with just adding the database
 extra's? Those seem non-controversial and the package names and version
 specs are non-obvious, so having those in Django's `setup.py` has a clear
 advantage.

 It might also be interesting to figure out how to "deprecate" extra
 requirement groups, so at some point it would be possible to phase out the
 `bcrypt` or `argon2` extra requirements.

 I was also thinking, extra requirements would also be a nice place to
 include other "official" Django projects. E.g. `pip install
 django[mysql,localflavor,comments]` or `pip install
 django[postgresql,channels]`.

 Anyway, I don't think this ticket will go anywhere until someone with a
 more authoritative voice makes a decision what's wanted and unwanted.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/28905#comment:15>
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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/063.79be01f75a024d3565d45afcdf7e686c%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to