roadmap.html   [plain text]


<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><title>Twisted Documentation: The Road to API-stable Twisted</title><link href="../howto/stylesheet.css" type="text/css" rel="stylesheet" /></head><body bgcolor="white"><h1 class="title">The Road to API-stable Twisted</h1><div class="toc"><ol><li><a href="#auto0">Twisted API-Stable Platform</a></li></ol></div><div class="content"><p>The maintainers on each of these packages are not
    necessarily the people who will be responsible for writing most
    of their code, although I've certainly tried to do that in most
    cases :). I would like to start delegating responsibility for
    deciding when something is done to my various <q>lieutenants</q>, as
    linus calls them, that are currently working on Twisted. If you
    don't think you're the right person to maintain a package, let
    me know.</p><p hlint="off" align="right">--glyph</p><table cellpadding="3" border="1"><tr><td colspan="7"><h2>Twisted API-Stable Platform<a name="auto0"></a></h2></td></tr><tr><th>Package</th><th>Maintainer</th><th>Description</th><th>Necessary</th><th>Desirable</th><th>Possible Remaining Incompatible Changes</th><th>Release to be Stable By</th></tr><tr hlint="off" class="notdone"><td>twisted.internet</td><td>Glyph Lefkowitz</td><td>A main loop that dispatches events based on network
        input and the passage of time, and mappings for the Twisted
        API on to other main loops which it does not necessarily
        control.</td><td>connectTCP should take a factory, not a client.  Application needs
          to be decoupled from cred; services need to manage their own authorizers, not
          have one handed to them by the application.  Connectors for SSL.  UDP
          refactor.</td><td>Improved Jython support, and support for Java 1.4's
        nbio, C optimization of the regular mainloop, refactor of
        app.connectTCP so Connector doesn't touch reactor
        implementation.</td><td>New connectTCP signature will be incompatible.  cred will work
          differently once Application is removed from the picture.</td><td>1.0</td></tr><tr hlint="off" class="notdone"><td>twisted.protocols</td><td>Moshe Zadka</td><td>Wire-protocol implementations of various protocols,
        decoupled from any processing logic.</td><td>Improved handling of FTP</td><td>A readline-style input line for telnet,
        curses-over-telnet, ssh protocol implementation</td><td>None that I can think of.</td><td>Individual modules by 1.0; probably the whole package
        will never be.</td></tr><tr hlint="off" class="notdone"><td>twisted.mail</td><td>Moshe Zadka</td><td>E-mail support: POP3, SMTP protocols.</td><td>twisted.cred awareness</td><td>mailman integration</td><td>pretty much everything; lots will break when we move to
        support twisted.cred.</td><td>1.4</td></tr><tr hlint="off" class="notdone"><td>twisted.web</td><td>Chris Armstrong</td><td>Support for document- and file-based protocols: http,
        ftp, WebDAV, XMLRPC.</td><td>HTTP 1.1 support completion</td><td>ZPT integration</td><td>Probably some templating things will be changed around
        in future releases.</td><td>1.0, mostly</td></tr><tr hlint="off" class="notdone"><td>twisted.names</td><td>????</td><td>Nameserver and client -- DNS and other protocols
        related to name resolution.</td><td>Real DNS server support, finding someone to maintain
        this code!</td><td>Complete BIND replacement.</td><td>Since it's not really being used, I'm not concerned
        about breakages.</td><td>1.4</td></tr><tr hlint="off" class="notdone"><td>twisted.enterprise</td><td>Sean Riley</td><td>Database support.</td><td>A simple asynchronous object-relational mapper.</td><td>Everything should be returning Deferreds, not accepting
          callbacks.</td><td>The change mentioned above will break compatibility.</td><td>1.2</td></tr><tr hlint="off" class="notdone"><td>twisted.cred</td><td>Glyph Lefkowitz</td><td>An authentication abstraction.</td><td>API cleanup. Removal of dependence of
        twisted.internet.</td><td>More authentication back-ends.</td><td>A few redundant methods should disappear, but I don't
        think anyone was using them.</td><td>1.0</td></tr><tr hlint="off" class="notdone"><td>twisted.im</td><td>Paul Swartz</td><td>A <q>universal client</q> for Twisted, with support for
        multi-protocol chat.</td><td>Migration of all PB clients (manhole, faucet) into this
        framework.</td><td>Blue sky on chat-client features...</td><td>It's not really in use yet, so breakages should not
        affect external parties.</td><td>1.4</td></tr><tr hlint="off" class="notdone"><td>twisted.words</td><td>Glyph Lefkowitz</td><td>Individual and group chat server for Twisted.</td><td>Multiple servers rebroadcasting messages. Moderation
        facilities.</td><td>Lots of bots that do cool things on the server side.
        Total IRCD compatibility with respect to Hybrid
        Services-style bots.</td><td>PB wire protocol will break and there will be a
        near-total rewrite, moving to refpath-style protocol.</td><td>1.4</td></tr><tr hlint="off" class="done"><td>twisted.manhole</td><td>Kevin Turner</td><td>Direct manipulation interface for Twisted.</td><td>Easier to use COIL interface. COIL interface to
        usage.options and mktap which allows for creation of
        boilerplate servers. Fix manhole GUI so that it works
        again.</td><td>More services related to debugging.</td><td>None that I can think of.</td><td>1.2</td></tr><tr hlint="off" class="notdone"><td>twisted.spread</td><td>Glyph Lefkowitz</td><td>Twisted's remote object protocol support.</td><td>An RFC cementing the wire-level protocol.
        pb.setFactoryForClass(className, factory) function which
        will allow for use of persistentLoad-style objects in PB
        (ones where the component state is given to the
        constructor, rather than the initializer).
        Perspective.observe() and other methods to automate
        automatically unsubscribing for events on logout.
        Standardized way of per-object protocol versioning.</td><td>Persistent stateless references. Full implementations
        of PB for more languages. ASCII version of the 'banana'
        level protocol for debugging and easier protocol
        implementation.</td><td>Object-level protocols may have a small breakage as we
        move to a different model for locating services, but it
        should be possible to avoid this.</td><td>1.1</td></tr><tr hlint="off" class="notdone"><td>twisted.tap</td><td>Moshe Zadka</td><td>Simple Application Configuration for Twisted.</td><td>Integration with COIL's web-based frontend.</td><td>None I can think of.</td><td>This isn't really a package that external developers
        use. It may be best to destroy this package and move tap
        modules into their appropriate packages rather than
        aggregating them here.</td><td>n/a</td></tr><tr hlint="off" class="notdone"><td>twisted.sibling</td><td>Glyph Lefkowitz</td><td>Clustering Support</td><td>
          Better tests.  Failover.  Integration with Enterprise to allow
          cancelling transactions when a resource <q>dies</q>. Some mechanism
          for
          loading plug-ins, so you can run a <q>vanilla</q> sibling &amp; parent
          server w/ your particular application.
        </td><td>Blue sky...</td><td>Not used by external developers yet, so the API will totally break
          several times, I'm sure.</td><td>n/a</td></tr></table></div><p><a href="../howto/index.html">Index</a></p><span class="version">Version: 1.3.0</span></body></html>