WebHome
Chandler software development
Overview: three major projects with a common data model, sharing framework and external information model
Chandler comprises three projects:
- Chandler Server — a JavaScript web application plus a Java server providing storage and HTTP APIs for manipulating Chandler data
- Chandler 1 and Chandler 2 — cross-platform desktop applications written in wxPython.
Item class. Related attributes are added or subtracted by stamping - example: an event stamp adds date information to a note item.
- example: Chandler Desktop 1 uses the EIM-based Chandler exchange format to save a
backup.chexfile whenever the application quits.
What to hack on
Chandler 1 is the code base for the 1.x desktop product. Releases of Chandler Server and Chandler Desktop 1.x are stable. Since March 2009, all development is volunteer and most is towards Chandler 2 — the future of Chandler Desktop. This project is under construction and all forms of help are encouraged! Some pages in the wiki are naturally outdated. The short history of the three projects is recommended reading. If you use Chandler 1 and would like to fix a bug, go for it! Otherwise, focus on Chandler Server and Chandler 2.Chandler Server, also known as Cosmo
Built on Tomcat, Hibernate, the Spring Framework, Acegi Security for Spring, iCal4J, Dojo, Abdera, Jackrabbit, Woodstox, and other best of breed technologies.Reference material
- architecture
- administrator documentation
- generated Cosmo site documentation
- security model
- JavaScript source code style guide
Client access to Chandler Server data
- user service document
- feed service AtomPub-based content access protocol
- WebDAV | WebDAV tickets | CalDAV | CardDAV
- Cosmo Morse Code specialised HTTP-based content synchronisation protocol
- CMP HTTP-based server management protocol
- webcal read-only HTTP-based iCalendar protocol
Development tools
- current tinderbox continuous build status
- Windmill test framework for web applications
Quality assurance
- test specifications for various releases
- Setting up Cosmo builds on qacosmo/qasharing
Backend automation
- protocol tests
- stress tests
- simple timezone conversion utility (Olsen Convert)
- Apple calendar server CalDAV test suite
- Mikeal's automated test coverage
Frontend automation
Chandler Desktop
Chandler 1
Written in Python, building on Twisted for networking services, Berkeley DB for storage and wxPython for the GUI framework.- documentation
- SVN: http://svn.osafoundation.org/chandler/trunk/
- installation
- bugtracker
- uses Cosmo Morse Code to discover collections on a Cosmo server
- does not automatically discover collections on a CalDAV server (instead: the application may be subscribed to URL of each collection)
Chandler 2
Written in Python, loosely coupled to wxPython for the GUI framework, based on Trellis. Ready for hacking on — limited UI, import and export of .chex files. (Not for end users — no packaged installers, no persistence.)- documentation
- SVN: http://svn.osafoundation.org/chandler2/trunk/
- installation
- (bug tracker not set up yet)
Related services
Chandler Hub
An instance of Chandler Server provided by the Open Source Applications Foundation (OSAF)- hosted by the Internet Systems Consortium (ISC) — operations page
- operations runbook
Related projects
Hosted or maintained by OSAF staff members, partially funded by OSAF, or in some other way directly related to the Foundation:- ChandlerQE for iPhone sends notes to Chandler Hub
- ChandlerQE for Android sends notes to Chandler Hub
- feedback server server component of the desktop feedback mechanism
- M2Crypto Crypto and SSL toolkit for Python
- parsedatetime Python library for parsing human-readable date/time text
- PyEgads Python wrapper for EGADS, a cryptographically strong pseudo-random number generator and entropy daemon
- PyICU Python extension wrapping ICU's C++ API
- PyLucene GCJ-compiled version of Java Lucene integrated with Python
- setuptools for packaging Python projects as_eggs_
- subzilla utility to post subversion patches to Bugzilla, and apply patches from Bugzilla to a subversion tree
- vobject Python package for parsing and generating vCard and vCalendar files
- Windmill
- wxPython in Chandler
- Zanshin Python library for collaboration over HTTP, WebDAV and CalDAV