[Chandler-dev] [Sum] Oct 30 - Nov 5

Katie Capps Parlante capps at osafoundation.org
Fri Nov 17 09:54:25 PST 2006

Build, Release, QA
*Speeding up full builds*
Heikki offered ideas for speeding up the full builds.
- avoid downloading sources if we already have them
- single pass to find and remove *.pyc/pyo files
- use system libs on Mac/Linux (e.g. Ubuntu ICU and OpenSSL)
- make use of make's -j to split work into multiple jobs (tips?)
- distributed compiling

Bear cautioned against using -j for other people's code (external
libraries) -- hard to know what can be safely done in parallel. Bear has
already implemented some of Heikki's fixes. He wonders if we're looking
in the right place. The full build only rebuilds everything if is most
of the time on the build run or in running tests twice? Bear recommends
clocking to find the slow spots.

*Alpha4 branch checkpoint*
Bear spins:
Dan tests:

Davor asked about dogfooding alpha4, Heikki noted that dogfooders should
use recent checkpoints off of the branch.

Bear spun new checkpoints mid-week (Wed, Thurs, Fri):

Bear explained that tinderboxen are looking at the trunk, not the
branch, so be careful with commits.

*Custom Python*
Heikki is looking into *not* building and shipping our own Python (at
least on Mac and Linux). This has been a long standing goal. Heikki
asked if anyone had reasons why we still need our own Python. Morgen
explained that he long ago added a windows-specific patch to get Python
to not look at the registry (to not find other wxPython versions). Andi
explained that the OS X patches adds readline support, and facilitate
building on OS X in debug and on Intel Mac. These issues will likely get
fixed by Python 2.5, not yet installed by default on OS X. Andi
suggested we pursue python-less install on Linux.

*Test Logging Menu*
Andi observed that the new ConfigObj module clashes with support for
logging config files -- menu or -L option (Bug 7277). Andi suggested
using the logging module's fileConfig function to support -L and getting
rid of the menu handling code altogether.

*Alpha4 Documentation*
I asked Pieter if we should list 0.7alpha4 above 0.6 on the
downloadchandler.php page. I also noted that the text on that page needs
to be updated.

*Tracing item changes through versions*
Andi implemented a debugging feature that he has found useful in piecing
together scenarios for a bugs that break the repository. Four new APIs
print out short records about versions and the view that wrote them:
- Repository.printVersions()
- Repository.printItemVersions(item)
- RepositoryView.printVersions()
- RepositoryView.printItemVersions(item)
The methods print a table with information about each commit, including
a timestamp, the view that made the commit, the repository version, etc.

*Deferred Deletes*
Andi summarized a meeting about fixing Bug 7196 (Bryan, Grant, Jeffrey,
John and Morgen in attendance). Fixing this bug required implementing
deferred deletes in the main view, which has impact on the UI code. They
agreed Andi would make a change so that defer-deleted items would not be
considered members of any abstract set-based collection.

Bryan summarized issues with attribute redirection. We need to index
'who' and 'about' attributes. Attribute redirections aren't working for
several reasons, and we're trying to get rid of the generic use of
'displayName'. Bryan would like to use the same mechanism we use for the
'date' column. ContentItem has a 'relevantDate' attribute which is
indexed and displayed in the dashboard. 'relevantDateSource' is used to
display the source attribute name in the dashboard column header.
Annotations or subclasses implement schema.observers that call
ContentItem.updateRelevantDate() when a related date attribute changes.
updateRelevantDate() calls AddRelevantDate(), which looks at the item
and its annotations to pick the 'relevant' date.
Bryan proposes:
- Change relevantDate (and related attributes/methods) to displayDate
- Create displayWho equivalents
- Create a concrete 'displayName' attribute on ContentItem (instead of
'title', this name is consistent with displayWho and displayDate).
- Use 'displayName' for the about column, index this attribute
- Get rid of redirections from 'about' to 'displayName'
- Repository can get rid of generic 'displayName' mechanism
Attribute redirections may still be used in the 'about' case, only in
the reverse direction from the way it was handled before. A context
specific attribute name ("summary", "ProductName") can redirect to the
'displayName' attribute on ContentItem, where the value is stored.

*Freebusy and Cosmo 0.5*
Adam pointed to a Cosmo thread about how Chandler handles freebusy
collections. Chandler publishes "mine" collections in a freebusy parent
collection, as part of a hack to get freebusy working initially. Cosmo
0.5 cannot see these collections; Cosmo now supports the dav's
free-busy-rollup property. Bug 7251 captures the Chandler task to fix up
freebusy handling.

*EIM first drop*
Phillip checked in basic EIM features. As of this checkin, one can
define record types and fields, associate type converters, and create
records from data supported by the type converters. This foundation is
enough for Morgen to get started with sharing schemas.

*EIM type definitions*
Grant asked about size/length restrictions for primitives. Phillip
explained that 32-bit signed integers are common to most programming
languages, in particular Python and Java. Other restrictions are based
on Cosmo/Chandler use cases. Both agreed on typedefs for common
non-primitive types. Phillip noted that now is a good time to make
decisions about typedefs and converters for the domain model.

Meetings and Announcements
Apps meeting:

Cosmo 0.5 released:

More information about the chandler-dev mailing list