Opened 15 years ago

Closed 9 years ago

#967 enhancement closed fixed (fixed)

Document the Twisted dependancy list

Reported by: jknight Owned by: Jean-Paul Calderone
Priority: low Milestone:
Component: core Keywords: documentation
Cc: radix, jknight, Thijs Triemstra, Tom Davis, jesstess Branch: branches/dependancy-list-967-2
branch-diff, diff-cov, branch-cov, buildbot
Author: exarkun

Description


Change History (27)

comment:1 Changed 15 years ago by jknight

I can't find a list of what each twisted module depends on on our website. 
If it's there it must be well hidden.

comment:2 Changed 15 years ago by jknight

Tv mentions (in svn) /Twisted/debian/projects/*/control
and http://twistedmatrix.com/~tv/2.0-BEWARE/build-depends.dot.png
which show some of the info.

comment:3 Changed 13 years ago by hypatia

Cc: hypatia removed
Component: core
Owner: changed from hypatia to edsuom

comment:4 Changed 11 years ago by Thijs Triemstra

Cc: Thijs Triemstra added
Owner: changed from edsuom to Thijs Triemstra
Status: newassigned

The pylint tool generates a dependency tree that we could add on the wiki or in a textfile, updating it for every release wouldn't be too hard and it also could be automated. It's better than nothing.. Current one for web looks like the page below. I'd suggest removing the references on a module level (in parentheses).

External dependencies

zope 
  \-interface (web.http,web.iweb,web.monitor,web.resource,web._auth.basic,web._auth.digest,web._auth.wrapper,web.test.test_httpauth,twisted.web.test.test_web,twisted.web.woven.controller,twisted.web.woven.interfaces,web.woven.model,web.woven.simpleguard,web.woven.template,web.woven.utils,twisted.web.woven.view)
    \-verify (web.test.test_httpauth)
twisted 
  \-copyright (web.script,web.server)
  \-trial 
  | \-unittest (web.test.test_cgi,web.test.test_distrib,web.test.test_domhelpers,web.test.test_http,web.test.test_http_headers,web.test.test_httpauth,web.test.test_mvc,web.test.test_proxy,web.test.test_soap,web.test.test_static,web.test.test_tap,twisted.web.test.test_web,web.test.test_webclient,web.test.test_woven,web.test.test_xml,web.test.test_xmlrpc)
  \-python 
  | \-compat (web.test.test_http,web.test.test_http_headers)
  | \-reflect (web.server,web.sux,web.tap,web.widgets,web.xmlrpc,twisted.web.woven.input,web.woven.model,twisted.web.woven.page,web.woven.tapestry,twisted.web.woven.widgets)
  | \-runtime (web.static)
  | \-log (web.demo,web.distrib,web.html,web.http,web.server,web.twcgi,web.widgets,web.xmlrpc,web._auth.wrapper,web.test.test_distrib,twisted.web.test.test_web,twisted.web.woven.controller,web.woven.flashconduit,web.woven.guard,twisted.web.woven.input,web.woven.template,web.woven.utils,twisted.web.woven.view,twisted.web.woven.widgets)
  | \-filepath (web.static,web.twcgi,web.test.test_static,web.test.test_webclient,web.woven.dirlist)
  | \-urlpath (web.server,web.util)
  | \-rebuild (web.widgets)
  | \-versions (web._version)
  | \-util (web.client,web.microdom,web.static,web.widgets,web.test.test_cgi)
  | \-failure (web.client,web.server,web.util,web.widgets,web.xmlrpc,web.test.test_xmlrpc,twisted.web.woven.controller,web.woven.form,web.woven.template,web.woven.utils,twisted.web.woven.widgets)
  | \-formmethod (web.woven.form,web.woven.guard)
  | \-components (web.server,web.static,web.widgets,web._auth.wrapper,web.test.test_mvc,twisted.web.woven.controller,web.woven.form,web.woven.guard,web.woven.model,web.woven.template,web.woven.utils,twisted.web.woven.view,twisted.web.woven.widgets)
  | \-randbytes (web._auth.digest)
  | \-usage (web.tap)
  | \-logfile (web.server)
  | \-roots (web.vhost)
  \-application 
  | \-strports (web.tap)
  | \-service (web.tap)
  | \-internet (web.tap)
  \-persisted 
  | \-styles (web.distrib,web.static)
  \-spread 
  | \-pb (web.distrib,web.server,web.static,web.tap,web.twcgi,web.test.test_distrib,web.test.test_tap)
  \-internet 
  | \-defer (web.client,web.google,web.server,web.soap,web.widgets,web.xmlrpc,web.test.test_distrib,web.test.test_soap,twisted.web.test.test_web,web.test.test_webclient,web.test.test_woven,web.test.test_xmlrpc,web.woven.form,twisted.web.woven.input,web.woven.model,web.woven.tapestry,web.woven.template,twisted.web.woven.view,twisted.web.woven.widgets)
  | \-task (web.server,twisted.web.test.test_web)
  | \-protocol (web.client,web.google,web.http,web.proxy,web.sux,web.twcgi,web.xmlrpc,web.test.test_http,web.woven.flashconduit)
  | \-reactor (web.client,web.distrib,web.google,web.http,web.monitor,web.proxy,web.twcgi,web.xmlrpc,web.test.test_cgi,web.test.test_distrib,web.test.test_soap,web.test.test_webclient,web.test.test_woven,web.test.test_xmlrpc,web.woven.guard,web.woven.template)
  | \-interfaces (web.http,web.tap,web.test.test_cgi,twisted.web.test.test_web,web.test.test_webclient)
  | \-address (web.distrib,web.http,web.server,web.test.test_httpauth,twisted.web.test.test_web,web.test.test_woven)
  | \-ssl (web.client,web.tap,web.xmlrpc,web.test.test_webclient)
  | \-error (web.test.test_proxy,twisted.web.test.test_web,web.test.test_xmlrpc)
  | \-abstract (web.static)
  \-test (web.test.test_webclient)
  | \-proto_helpers (web.test.test_http,web.test.test_proxy)
  | \-test_protocols (web.test.test_http)
  \-cred 
  | \-credentials (web._auth.basic,web._auth.digest,web.test.test_httpauth,web.woven.guard)
  | \-checkers (web.test.test_httpauth,web.woven.simpleguard)
  | \-portal (web.test.test_httpauth,web.woven.simpleguard)
  | \-error (web._auth.basic,web._auth.digest,web._auth.wrapper,web.test.test_httpauth,web.woven.guard)
  \-protocols (web.http,web.server,web.test.test_http)
    \-basic (web.http,web.woven.flashconduit)
    \-policies (web.http,web.test.test_webclient)
    \-loopback (web.test.test_http)
SOAPpy (web.soap,web.test.test_soap)

comment:5 Changed 11 years ago by Thijs Triemstra

Keywords: review added
Owner: Thijs Triemstra deleted
Status: assignednew

Actually setuptools provides a feature for this: extras_require. It's a place to list dependencies (that are available to pypi). Thoughts? (I'll need the list of dependencies before I can work on this)

comment:6 Changed 11 years ago by Jean-Paul Calderone

Keywords: review removed
Owner: set to Thijs Triemstra

I don't know who would benefit from the information above generated by pylint. The only parts of it that are interesting are the zope.interface part and the SOAPpy part. I would suggest adding this information to the README files.

comment:7 Changed 11 years ago by Thijs Triemstra

Author: thijs
Branch: branches/dependancy-list-967

(In [26438]) Branching to 'dependancy-list-967'

comment:8 Changed 11 years ago by Thijs Triemstra

Keywords: review added
Owner: Thijs Triemstra deleted

Added extras_require to setup.py for listing Twisted optional dependancies in r26442. For now only pycrypto is in there, but it should list all of Twisted's optional depedancies. If somebody can give me the full list I'll add all of them there.

comment:10 Changed 11 years ago by Glyph

Keywords: review removed
Owner: set to Thijs Triemstra

It seems like this functionality should really be in twisted.python.dist or twisted.python.release or something, especially given that twisted/conch/topfiles/setup.py needs to know about the pycrypto dependency somehow too.

comment:11 Changed 11 years ago by Jean-Paul Calderone

Isn't this a documentation ticket? Changing setup.py files doesn't seem like the way to resolve a documentation ticket.

comment:12 in reply to:  11 Changed 11 years ago by Thijs Triemstra

Replying to glyph:

It seems like this functionality should really be in twisted.python.dist or twisted.python.release or something, especially given that twisted/conch/topfiles/setup.py needs to know about the pycrypto dependency somehow too.

I opened #3696 for this.

Replying to exarkun:

Isn't this a documentation ticket? Changing setup.py files doesn't seem like the way to resolve a documentation ticket.

What would be the best approach to add documentation for those extra_requires dependencies.. manually, by adding it to the README like [source:trunk/twisted/conch/topfiles/README conch] does for example, or hack something into #3696? I think it's a good idea to both document this and also programmatically declare those dependencies using setuptools extras_require so it can be used for discovering Twisted's dependencies in other programs using Twisted.. So I think this one should serve as the doc ticket and #3696 for the coding part.

comment:13 Changed 10 years ago by Thijs Triemstra

Summary: Twisted dependancy listDocument the Twisted dependancy list

comment:14 Changed 9 years ago by Tom Davis

Cc: Tom Davis added

Anyone care to chime in and give some guidance on this issue?

comment:15 Changed 9 years ago by Jean-Paul Calderone

The last thing thijs said makes sense to me. This ticket should be for updating READMEs. #3696 can be for doing things to the release tool chain.

comment:16 Changed 9 years ago by <automation>

Owner: Thijs Triemstra deleted

comment:17 Changed 9 years ago by Jean-Paul Calderone

Author: thijsthijs, exarkun
Branch: branches/dependancy-list-967branches/dependancy-list-967-2

(In [30939]) Branching to 'dependancy-list-967-2'

comment:18 Changed 9 years ago by Jean-Paul Calderone

(In [30940]) Update dependencies for various subprojects

refs #967

comment:19 Changed 9 years ago by Jean-Paul Calderone

Author: thijs, exarkunexarkun
Branch: branches/dependancy-list-967-2branches/dependancy-list-967
Keywords: review added

I changed some READMEs.

comment:20 Changed 9 years ago by Jean-Paul Calderone

Branch: branches/dependancy-list-967branches/dependancy-list-967-2

comment:21 Changed 9 years ago by jesstess

Owner: set to jesstess

comment:22 Changed 9 years ago by jesstess

Cc: jesstess added
Keywords: review removed
Owner: changed from jesstess to Jean-Paul Calderone

Who doesn't love 3 digit Twisted tickets? Thanks for working on this, exarkun. Some feedback:

  • INSTALL: There are nicer URL options for pywin32 now: maybe http://sourceforge.net/projects/pywin32/ or http://sourceforge.net/projects/pywin32/files/
  • Twisted Mail: twisted.mail.protocols.SSLContextFactory uses OpenSSL
  • Twisted Conch:
    • depends on Twisted Core.
    • twisted/conch/scripts/tkconch.py and twisted/conch/ui/tkvt100.py use Tkinter.
  • Twisted Web:
    • "Twisted Web depends on Twisted" ==> "Twisted Web depends on Twisted Core".
    • twisted/web/script.py has a quixote import in ResourceTemplate. Maybe ResourceTemplate was supposed to die, but it is referenced in a few howtos.
  • Twisted Pair. Since it's unmaintained, I don't know if we care about updating the README, but:
    • Twisted Pair depends on Twisted Core.
    • twisted/pair/tuntap.py has a long docstring detailing its dependency on python-eunuchs, which doesn't seem to exist anymore.

comment:23 Changed 9 years ago by Jean-Paul Calderone

(In [30988]) Add more dependency information, update links to point at more friendly pages

refs #967

comment:24 Changed 9 years ago by Jean-Paul Calderone

Keywords: review added
Owner: Jean-Paul Calderone deleted

Thanks for the review! I think the revision in the previous comment addresses all of those comments.

comment:25 Changed 9 years ago by jesstess

Owner: set to jesstess

comment:26 Changed 9 years ago by jesstess

Keywords: review removed
Owner: changed from jesstess to Jean-Paul Calderone

Looks great, please merge.

comment:27 Changed 9 years ago by Jean-Paul Calderone

Resolution: fixed
Status: newclosed

(In [31170]) Merge dependancy-list-967-2

Author: exarkun Reviewer: jesstess Fixes: #967

Add the dependencies of each project to the README file of each subproject and the project-wide INSTALL file.

Note: See TracTickets for help on using tickets.