Product
|
Planning
|
Teams
|
Developers
|
Notes
E
dit
A
ttach
Wiki Help
r78 - 15 Mar 2012 - 13:50:36 - MaryjaneMacelvany
You are here:
OSAF
>
Developers Web
>
WebHome
<!-- do not erase the basic template % entries --> %OSAFTEMPLATE% %OSAFCONTENT% <!-- do not type here, add a onecolumnlayout or a twocolumnlayout instead --> %OSAFONECOLUMNLAYOUT% ---+!! Chandler software development ---++!! Overview: three major projects with a common data model, sharing framework and external information model %OSAFTWOCOLUMNLAYOUT% Chandler comprises *three projects*: * [[#ChandlerServer][Chandler Server]] — a !JavaScript web application plus a Java server providing storage and [[http://www.chandlerproject.org/Projects/CosmoDevelopmentHome#Client%20Development%20References][HTTP APIs]] for manipulating Chandler data * [[#ChandlerOne][Chandler 1]] and [[#ChandlerTwo][Chandler 2]] — cross-platform desktop applications written in [[http://www.wxpython.org/][wxPython]]. At the core of the *common data model* is the =Item= class. Related attributes are added or subtracted by _stamping_ * example: an event stamp adds date information to a note item. Within the [[Projects.SharingProject][sharing framework]] the [[Projects.ExternalInformationModel][EIM (external information model)]] layer mediates between Chandler objects and their external serialised representations * example: Chandler Desktop 1 uses the EIM-based _Chandler exchange_ format to save a =backup.chex= file whenever the application quits. [[http://www.apache.org/licenses/LICENSE-2.0][Apache License, Version 2.0]] applies. %OSAFSECONDCOLUMN% %TOC% %OSAFONECOLUMNLAYOUT% ---++ What to hack on [[#ChandlerOne][Chandler 1]] is the code base for the [[Projects.DownloadChandlerDesktop][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 [[#ChandlerTwo][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 [[#obsolescence][naturally outdated]]. The [[Developers.ShortHistoryOfChandlerDevelopment][short history]] of the three projects is recommended reading. If you use Chandler 1 and would like to fix a bug, [[Projects.PatchLifeCycle][go for it]]! Otherwise, focus on [[#ChandlerServer][Chandler Server]] and [[#ChandlerTwo][Chandler 2]]. %OSAFTWOCOLUMNLAYOUT% #ChandlerServer ---++ [[Projects.CosmoDevelopmentHome][Chandler Server]], also known as Cosmo Built on [[http://tomcat.apache.org/][Tomcat]], [[http://www.hibernate.org/][Hibernate]], the [[http://www.springsource.org/][Spring Framework]], [[http://www.acegisecurity.org/][Acegi Security for Spring]], [[http://wiki.modularity.net.au/ical4j/index.php?title=Main_Page][iCal4J]], [[http://dojotoolkit.org/][Dojo]], [[http://abdera.apache.org/][Abdera]], [[http://jackrabbit.apache.org/][Jackrabbit]], [[http://woodstox.codehaus.org/][Woodstox]], and other best of breed technologies. * [[DownloadChandlerServer][download]] | [[ChandlerServerSource][source code]] | [[http://www.chandlerproject.org/Projects/FAQ#Chandler%20Server%20Developer%20Questi][FAQ]] * [[ServerBundleInstallation][install]] | [[Projects.ChandlerServerConfiguration][configure]] * [[Projects.CosmoReleaseProcess][release process]] ---+++ Reference material * [[Projects.CosmoArchitecture][architecture]] * [[ServerBundleAdministrator][administrator documentation]] * [[http://cosmo.osafoundation.org/docs/cosmo/][generated Cosmo site documentation]] * [[Projects.CosmoSecurityModel][security model]] * [[Projects.JavaScriptStyleguide][JavaScript source code style guide]] #ClientAccess ---+++ Client access to Chandler Server data * [[Projects.CosmoUserServiceDocument][user service document]] * [[Projects.CosmoFeedServiceSpec][feed service]] !AtomPub-based content access protocol * [[Projects.CosmoWebdav][WebDAV]] | [[Projects.CosmoTickets][WebDAV tickets]] | [[Projects.CosmoCaldav][CalDAV]] | [[Projects.CosmoCardDav][CardDAV]] * [[Projects.CosmoMorseCode][Cosmo Morse Code]] specialised HTTP-based content synchronisation protocol * [[Projects.CosmoManagementProtocol][CMP]] HTTP-based server management protocol * [[Projects.WebcalProtocol][webcal]] read-only HTTP-based iCalendar protocol Whilst many !CalDAV clients are supported, [[http://blog.chandlerproject.org/2008/02/06/osafs-next-steps/][being a reference implementation is not a priority]]. ---+++ Development tools * [[http://builds.osafoundation.org/tinderbox/Cosmo/status.html][current tinderbox continuous build status]] * [[WindmillTests][Windmill]] test framework for web applications <a name="QACosmo"></a> ---+++ Quality assurance * [[Projects.ChandlerServerTestSpecifications][test specifications]] for various releases * [[http://www.chandlerproject.org/Journal/AdamChristianQACosmoSetup][Setting up Cosmo builds on qacosmo/qasharing]] ---++++Backend automation * [[Journal.CosmoProtocolTests][protocol tests]] * [[Projects.CosmoStressTests][stress tests]] * [[Projects.OlsonConvert][simple timezone conversion utility (Olsen Convert)]] * [[Journal.AppleCalDAVTests][Apple calendar server !CalDAV test suite]] * [[Journal.MikealRogersAutomatedTestCoverage][Mikeal's automated test coverage]] ---++++[[Projects.CosmoUIQualityAssurace][Frontend automation]] * [[Teams.CosmoDotSevenWindmillTestingCoverage][acceptance tests]] * [[http://trac.getwindmill.com/][Windmill]] * [[Developers.WindmillTests][Cosmo tests with Windmill]] * [[Projects.NeededWindmillTests][needed Windmill tests]] %OSAFSECONDCOLUMN% ---++ Chandler Desktop #ChandlerOne ---+++ Chandler 1 Written in [[http://www.python.org/][Python]], building on [[http://twistedmatrix.com/trac/wiki][Twisted]] for networking services, [[http://www.oracle.com/database/berkeley-db/index.html][Berkeley DB]] for storage and [[http://www.wxpython.org/][wxPython]] for the GUI framework. * [[ChandlerOneDeveloperLinks][documentation]] * SVN: http://svn.osafoundation.org/chandler/trunk/ * [[http://www.chandlerproject.org/Developers/ChandlerDesktopSource][installation]] * [[https://bugzilla.osafoundation.org/][bugtracker]] Chandler Desktop 1.0.3: * 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) #ChandlerTwo ---+++ Chandler 2 Written in [[http://www.python.org/][Python]], loosely coupled to [[http://www.wxpython.org/][wxPython]] for the GUI framework, based on [[http://peak.telecommunity.com/DevCenter/Trellis][Trellis]]. Ready for hacking on — limited UI, import and export of .chex files. (Not for end users — no packaged installers, no persistence.) * [[http://chandler2.osafoundation.org/][documentation]] * SVN: http://svn.osafoundation.org/chandler2/trunk/ * [[ChandlerTwoSetup][installation]] * (bug tracker not set up yet) ---++ Related services ---+++ [[https://hub.chandlerproject.org/][Chandler Hub]] An instance of Chandler Server provided by the [[http://www.osafoundation.org/][Open Source Applications Foundation]] (OSAF) * hosted by the Internet Systems Consortium (ISC) — [[http://status.isc.org/][operations page]] * [[http://people.osafoundation.org/jared/runbook.html][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: * [[Projects.ChandlerQEforiPhone][ChandlerQE for iPhone]] sends notes to Chandler Hub * [[Projects.ChandlerQEforAndroid][ChandlerQE for Android]] sends notes to Chandler Hub * [[Projects.FeedbackServer][feedback server]] server component of the desktop feedback mechanism * [[Projects.MeTooCrypto][M2Crypto]] Crypto and SSL toolkit for Python * [[http://code-bear.com/code/parsedatetime/][parsedatetime]] Python library for parsing human-readable date/time text * Projects.PyEgads Python wrapper for EGADS, a cryptographically strong pseudo-random number generator and entropy daemon * [[http://pyicu.osafoundation.org/][PyICU]] Python extension wrapping [[http://www.icu-project.org/][ICU]]'s C++ API * [[http://lucene.apache.org/pylucene/][PyLucene]] [[http://gcc.gnu.org/java/][GCJ]]-compiled version of Java [[http://lucene.apache.org/java/docs/index.html][Lucene]] integrated with Python * [[http://peak.telecommunity.com/DevCenter/setuptools][setuptools]] for packaging Python projects as_eggs_ * [[http://pypi.python.org/pypi/subzilla/][subzilla]] utility to post subversion patches to Bugzilla, and apply patches from Bugzilla to a subversion tree * [[http://vobject.skyhouseconsulting.com/][vobject]] Python package for parsing and generating vCard and vCalendar files * [[http://trac.getwindmill.com/][Windmill]] * [[Projects.WxPythonProject][wxPython in Chandler]] * [[Projects.ZanshinProject][Zanshin]] Python library for collaboration over HTTP, !WebDAV and !CalDAV [[Projects.ContributedCode][A more complete list of contributions to other projects]] [[http://www.rossmcbride.com/][personal injury protection]]. %OSAFONECOLUMNLAYOUT% <a name="obsolescence"></a> ---++ Wikis: updates and obsolescence Don't assume that every page is up to date! Alongside the [[http://blog.chandlerproject.org/][Chandler Project blog]], which began in 2003, this wiki provides a *historical record of developments*. Pages relating to Chandler 1 may be particularly outdated. ---+++ Questions and clarification For clarification on any subject, please address the [[Projects.MailingLists][mailing lists]] or [[Projects.ChatOnIRC][chat with us on IRC]]. %OSAFTEMPLATEEND%
E
dit
|
W
YSIWYG
|
A
ttach
|
P
rintable
|
V
iew topic
|
Backlinks: We
b
, A
l
l Webs
|
H
istory: r78 <
r77
<
r76
<
r75
<
r74
|
M
ore topic actions
chandlerproject.org
VISION
TOUR
Download Desktop
Get a Hub Account
Get Chandler Server
FAQ
Get Started
Blog
Mailing Lists
Chat on IRC
Report a Bug
Get Involved
OSAF Community
About OSAF
Developers Wiki Changes
Open Source Applications Foundation
Dansk
Deutsch
English
Español
Finnis
Français
Italiano
Nederlands
Polski
Português
Svenska
简体中文
繁體中文
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See
list of page contributors
for attributions.