Ticket #71 (new enhancement )

Opened 5 years ago

Last modified 3 years ago

COIL, the configuration system for Twisted apps

Reported by: radix Assigned to: itamarst
Type: enhancement Priority: low
Milestone: Component:
Keywords: Cc: glyph, radix, exarkun, itamarst, jml, dp
Branch: Author:
Launchpad Bug:

Attachments

Change History

  2003-07-14 14:08:33+00:00 changed by radix

We need a configuration interface for Twisted.
It should start with a way to navigate hierarchies of
Services. (see
http://twistedmatrix.com/users/roundup.twistd/twisted/#67
-- once that issue is complete, _everything_ in twisted will
be inside a Service).
It should allow arbitrary objects living in those Services
to implement interfaces (through adapters) that allow them
to be configured.
It should use the Twisted plugin system to allow lazy
loading of code into a running Twisted server.

  2003-07-18 19:15:23+00:00 changed by glyph

We most definitely need this.

  2003-07-23 18:36:55+00:00 changed by glyph

Thought -
Taking advantage of the not-necessarily-web-only feature of
twisted.python.formmethod, perhaps it would be useful if we
allowed optional specification of any components.Interface
as a collection of MethodSignature objects?
This would require a few changes.  Off the top of my head,
in MethodSignature objects we'd need:
  * return values
  * method names
  * description of whether parameters are truly optional or not
  * 'is this a constructor/factory' (???)
We would also probably need to add a FormImplementor adapter
which would provide an interface for inspecting and invoking
methods on a particular instance.
Does this make sense?  Sound like a good idea?

  2003-08-09 07:05:18+00:00 changed by jml

Any configuration interface should also allow the addition
and removal of Services, as well as configuration.

  2003-10-23 05:21:33+00:00 changed by radix

Just as an update to anybody interested in this issue,
donovan has been working on `formless', a thing to replace
twisted.python.formmethod and twisted.woven.form, in Quotient
(http://divmod.org/). This will be the foundation of the new
Coil system (it will eventually be moved to Twisted).

  2005-06-05 02:55:11+00:00 changed by exarkun

This is way under-specified.
Since the last comment on this issue, we have a new service architecture, a new
plugin system and a new interface system.  Formless isn't exactly done, but it's
extremely usable.
I think we can take another crack at this now.  I propose reviving the coil
plugin type, creating a coil server, and adding coil plugins for all of
Twisted's built-in functionality.
The coil server will load up three things: plugins which implement the coil
interface, plugins which implement a ui interface (eg, a web site), and some
kind of application persistence mechanism (this may just be TAPs for now, but
there should probably also be a plugin system for persistence).
The server should allow users to manipulation an application configuration via
any of the loaded ui plugins.  Any of the coil plugins are candidates for
configuration in the application.
The coil server should work for creating new application configurations as well
as modifying existing ones.

  2005-08-14 07:15:34+00:00 changed by exarkun

Itamar wrote coil!  YAY
Note: See TracTickets for help on using tickets.