Opened 7 years ago

Closed 7 years ago

#7092 enhancement closed duplicate (duplicate)

use setuptools extras to declare optional dependencies

Reported by: Glyph Owned by:
Priority: normal Milestone:
Component: core Keywords:
Cc: Branch:


Right now we put all our optional dependencies in unstructured text files. We're rapidly acquiring a bunch of new dependencies (service_identity, pem, cffi, idna) and there are some oldies (pyOpenSSL, PyCrypto, pyWin32) that provide optional features.

If you use setuptools extras, then users can just do pip install twisted[tls] for TLS support, or pip install twisted[all] instead of reading the README to discover what all the optional features are. ("all" isn't special, but it's easy to implement, as IPython does.

Change History (3)

comment:1 Changed 7 years ago by Jean-Paul Calderone

What bearing does this have on #6767?

comment:2 in reply to:  1 Changed 7 years ago by Glyph

Replying to exarkun:

What bearing does this have on #6767?

I don't think they're related. dev-requirements.txt is an idiom to install things like Sphinx, Pydoctor, and twisted-dev-tools, which aren't extra features of Twisted. Possibly also things like Coverage that are just handy to have during development. We could specify those things as a 'dev' extra and then tell people to "pip install -e .[dev]" for development, but it would be slightly weird because you'd never want to install that from PyPI; you need a source checkout to make use of half of them.

comment:3 Changed 7 years ago by Glyph

Resolution: duplicate
Status: newclosed

Apparently we've actually known about this for a while. This is a duplicate of #3696.

Note: See TracTickets for help on using tickets.