[Chandler-dev] Rearchitecture branch status

Phillip J. Eby pje at telecommunity.com
Mon Nov 5 16:46:08 PST 2007


Grant asked me to post a status update on the rearchitecture work, 
especially what's going on in the branch.  As you may have noticed, 
we started with some empty directories and a README that explains our 
current plan and milestones for the architecture pilot 
project.  Today, I checked in the ZFR milestone, which stands for 
"Zero Functionality Release".  It basically means we have a skeleton 
application that doesn't do much besides build and run.

In this case, the ZFR allows plugins to register to be called at 
startup, and runs a wx+Twisted main loop, with support for Trellis 
events.  It uses various CheeseShop packages to accomplish this, including:

* Trellis -- callback-free event-driven programming with minimized 
order dependencies

* Plugins -- a simple approach to finding and running plugins via 
eggs and other methods

* AddOns -- a way for you to make stamp/annotation-like objects that 
extend existing objects

* Contextual -- a way to have "service" objects that look like 
globals, but are actually local to an execution context

Most of the heavy lifting is done in these libraries; the ZFR itself 
contains only ~65 lines of Python aside from the necessary setup.py 
and __init__.py files.  You can find docs and downloads for these libraries at:

    http://pypi.python.org/pypi/Trellis
    http://pypi.python.org/pypi/Plugins
    http://pypi.python.org/pypi/AddOns
    http://pypi.python.org/pypi/Contextual

If you'd like to play with the ZFR, you can check out the 
rearchitecture branch, and run:

    cd Chandler-Platform; python setup.py develop
    cd Chandler-App; python setup.py develop
    cd Chandler-Debugging; python setup.py develop

You can then run the "ocap-demo" program that gets installed when you 
setup Chandler-App.  (If you want to install it to a custom location, 
use "setup.py develop --script-dir=/path/to/scripts".  It will be 
installed as an an .exe file on Windows, a shell script everywhere else.)

When doing this installation process, you must use the Python from an 
existing Chandler installation (so that setuptools, wx, and Twisted 
are on sys.path).  You will also need an "svn" executable on PATH, as 
the installation process will check out SVN code for some of the 
libraries listed above.  Do *not* use RunPython to run the scripts; 
just use the "python" executable directly.

At the moment, the ZFR does absolutely *nothing*, which is why it's 
only 65 lines of code.  :)  The Chandler-App project just asks the 
Chandler-Platform project to start up an application.  This causes a 
notification to be sent to any plugins that registered for startup 
notification.  The Chandler-Debugging plugin (if installed) then 
responds to this notification by starting a PyCrust shell.

Our next milestone is "Hello World", which basically will be adding 
the main Chandler window and a splash screen, and moving the PyCrust 
shell to a Tools menu option (that will be added, again, by the 
debugging plugin).

After that, the next milestone is "Airhead", which will be a pretty 
port of the current Chandler UI, but with no brains 
whatsoever.  :)  More details on the milestone plans can be found in 
the rearchitecture branch README.txt.



More information about the chandler-dev mailing list