The Road to API-stable Twisted

  1. Twisted API-Stable Platform

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 lieutenants, 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.

--glyph

Twisted API-Stable Platform

PackageMaintainerDescriptionNecessaryDesirablePossible Remaining Incompatible ChangesRelease to be Stable By
twisted.internetGlyph LefkowitzA 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.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.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.New connectTCP signature will be incompatible. cred will work differently once Application is removed from the picture.1.0
twisted.protocolsMoshe ZadkaWire-protocol implementations of various protocols, decoupled from any processing logic.Improved handling of FTPA readline-style input line for telnet, curses-over-telnet, ssh protocol implementationNone that I can think of.Individual modules by 1.0; probably the whole package will never be.
twisted.mailMoshe ZadkaE-mail support: POP3, SMTP protocols.twisted.cred awarenessmailman integrationpretty much everything; lots will break when we move to support twisted.cred.1.4
twisted.webChris ArmstrongSupport for document- and file-based protocols: http, ftp, WebDAV, XMLRPC.HTTP 1.1 support completionZPT integrationProbably some templating things will be changed around in future releases.1.0, mostly
twisted.names????Nameserver and client -- DNS and other protocols related to name resolution.Real DNS server support, finding someone to maintain this code!Complete BIND replacement.Since it's not really being used, I'm not concerned about breakages.1.4
twisted.enterpriseSean RileyDatabase support.A simple asynchronous object-relational mapper.Everything should be returning Deferreds, not accepting callbacks.The change mentioned above will break compatibility.1.2
twisted.credGlyph LefkowitzAn authentication abstraction.API cleanup. Removal of dependence of twisted.internet.More authentication back-ends.A few redundant methods should disappear, but I don't think anyone was using them.1.0
twisted.imPaul SwartzA universal client for Twisted, with support for multi-protocol chat.Migration of all PB clients (manhole, faucet) into this framework.Blue sky on chat-client features...It's not really in use yet, so breakages should not affect external parties.1.4
twisted.wordsGlyph LefkowitzIndividual and group chat server for Twisted.Multiple servers rebroadcasting messages. Moderation facilities.Lots of bots that do cool things on the server side. Total IRCD compatibility with respect to Hybrid Services-style bots.PB wire protocol will break and there will be a near-total rewrite, moving to refpath-style protocol.1.4
twisted.manholeKevin TurnerDirect manipulation interface for Twisted.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.More services related to debugging.None that I can think of.1.2
twisted.spreadGlyph LefkowitzTwisted's remote object protocol support.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.Persistent stateless references. Full implementations of PB for more languages. ASCII version of the 'banana' level protocol for debugging and easier protocol implementation.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.1.1
twisted.tapMoshe ZadkaSimple Application Configuration for Twisted.Integration with COIL's web-based frontend.None I can think of.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.n/a
twisted.siblingGlyph LefkowitzClustering Support Better tests. Failover. Integration with Enterprise to allow cancelling transactions when a resource dies. Some mechanism for loading plug-ins, so you can run a vanilla sibling & parent server w/ your particular application. Blue sky...Not used by external developers yet, so the API will totally break several times, I'm sure.n/a

Index

Version: 1.3.0