r8 - 02 Nov 2004 - 17:27:09 - TedLeungYou are here: OSAF >  Projects Web  >  DevelopmentHome > DeveloperPlatformProject > DeveloperPlatformProposal

Developer Platform Proposal

Proposal/plan for developer platform support. We'll use this proposal to schedule tasks for the .5 release, and as a roadmap beyond that.

drivers (ted)

  • PyCon 2005 (late March 2005)
    • session - here's how you build a sample app with CPIA
    • sprint - use the api discussed in the session, on site performance sprint (interaction w/ python core devs)
  • OSCON 2005 (late July 2005)
    • 3 hour building parcel tutorial
  • Kibble Release
  • CSG / feedback / validation
  • Morgen would like to note that "extension framework" is probably the most important aspect of "developer platform" for 0.5; i.e., without strong definitions of what an extension is, other developers can't participate.

parcel management/deployment (morgen)

  • Mechanisms for:
    • (For 0.5) enable+disable -- Do we allow the user to temporarily disable a parcel, and if so, what does that mean? A standardized way of stopping a parcel's background tasks? Removing any applicable items from the sidebar? I say we tackle this for 0.5 as part of the "extension framework" umbrella. [1wk]
    • (0.7) download+install -- One-click (with user approval) parcel download and install [5wks for this and next two]
      • dependency management -- Part of the installation framework, it figures out which other parcels are needed.
    • (0.7) upgrade -- Check-for-updates mechanism, with auto-download-and-upgrade; depends on schema evolution support
    • (0.7) uninstall -- Remove all items from the parcel's "read-only" portion of the repository. What happens to userdata that was based on schema from an uninstalled parcel? (after 0.5)

extension framework (katie)

  • developers should be able to do these things:
    • extend content model
    • create a scheduled task
    • add a network service
    • add an action/command
    • add a view, customizing generic blocks by noting what attributes to display (detail view/summary view)
    • add an attribute editor (used by generic detail view or generic summary table view)
    • create a new detail view or summary view block
    • hook into chrome: sidebar/menu/toolbar/preferences

  • tasks for .5
    • attribute editor framework and a set of basic attribute editors
    • resolve capplet/kind filter/sidebar issues

  • tasks for beyond .5

chandler as server (morgen)

  • (For 0.5) Enable portions of the system to be used outside of the Chandler application; modularize Application.py -- we need this ASAP for things like unit tests, schema doc generator, etc.
    • The proposal is to break out much of what happens in OnInit?( ) into callable methods in Util.py (better module name suggestions welcomed) -- a fairly small task that's already begun.
  • (Nice for 0.5) Be able to run a "headless"/server version without relying on wxwidgets framework/event-loop
    • The proposal is to weed out non-UI portions of the code that depend on wx (such as how cross-thread event posting takes place)
  • (Nice for 0.5) Modify the web servlet framework so that it's not Twisted-dependent (allows servlets to be more portable)
    • The proposal is to create a thin layer that fits between Twisted and our servlets.
  • (Nice for 0.5) Separate repository views per sevlet -- this allows each servlet to commit independently
    • The proposal is to automatically give each servlet its own view

tools (ted)

  • generic item edit/display - repository viewer
  • schema editor
  • debugging aids/tools/tips
    • interactive query evaluator (twl and donn)
    • sane logging (hazmat)
  • data migration/upgrade tool (deal with repository version changes)
  • schema evolution tool (allow updates to existing content models)
  • community driven/assisted

interoperability (morgen)

  • (After 0.5) Add a SOAP (or other similar RPC) interface so that outside applications can make use of repository data
  • (After 0.5) Add a framework which allows 3rd party developers to write conduits for synchronization
  • (After 0.5) Add import/export (to XML perhaps)

apis and documentation (ted)

  • Process for API review, design, redesign (0.5)
    • Designate api as platform API
      • epydoc required
      • check whether should be included in an overview document
    • Review of new API's
    • Prior to changing API, must be reviewed
    • Prior to end of release, re-review for changes/alterations

  • Documentation
    • Roadmaps (leading up to and including Kibble)
      • CPIA (0.5)
      • Parcels (0.5)
      • Repository (0.5)
    • Functional specs (taken from design group)
    • Architecture
      • Overall system architecture document (0.5)
      • Architectural principles document (0.7)
    • Subsystem overviews
      • CPIA (0.5)
        • Using Blocks (0.5)
        • Building your own Blocks (0.7)
      • Content Model
        • Description of content model schemas (0.5)
        • Principles/guidelines for designing content model schemas to work well with Chandler (0.6)
      • Services
        • IMAP (0.5)
        • SMTP (0.5)
        • Twisted / Web (0.5)
        • WebDAV (0.6)
        • CalDAV (0.6)
        • XMPP (0.7)
        • Notification (0.6)
        • Tasks (0.6)
        • Integrating new network services/protocols (0.6)
      • Parcels
        • Writing, installing, uninstalling (0.5)
      • Repository
        • Busy Developer' Guide (Items, Kinds, Attributes, Clouds?) (0.5)
        • Data model spec (0.5)
        • Queries (0.5)
        • Transactions/Threading/Views (0.5)
        • Import/Export/Backup/Migration (0.5)
    • API docs (need to specify which classes, etc)
      • CPIA (all)
      • Parcels (all)
      • Repository (all)
    • Tutorials
      • How to write a simple parcel (0.5, extended example 0.6)
    • Release status / project dashboard (0.5)

sample apps and sample code (katie)

  • examples of extensions developers should be able to write
    • Morgen's photo (servelts and possible GUI extensions)
    • ZaoBao (GUI extensions and service)
    • VOIP service
    • Address book (GUI extensions)
    • Jabber/IM client (GUI extensions and service)
    • import/export services (integration with apple address book)
    • project management/workflow (GUI extensions)
    • document management
    • mp3 application

  • sample code

  • tasks for .5
    • pick a representative sample extension and do a modest version of it for .5, well documented
    • set of sample

  • tasks for beyond .5

-- KatieCappsParlante - 23 Oct 2004

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r8 < r7 < r6 < r5 < r4 | More topic actions
 
Open Source Applications Foundation
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.