[Chandler-dev] [Sum] June 4 - 10
Katie Capps Parlante
capps at osafoundation.org
Wed Jun 20 16:43:36 PDT 2007
Build, Release, QA
Aparna pointed out 3 remaining blockers for the migration checkpoint:
Bear spins checkpoints Monday and Tuesday:
Morgen fixed a bug Wednesday, Aparna asked for a new checkpoint:
Bear spun the checkpoint:
Aparna gave the ok on the checkpoint after acceptance tests passed:
Jared sent email to chandler-users after updating instructions:
*Tinderbox Cosmo upgraded to MySQL*
Bear upgraded the Cosmo instance used by sharing tests to use MySQL
instead of Derby. This addresses intermittent 500 errors.
*Desktop bug triage*
Philippe, Sheila, Aparna and a few others started "bug scrubbing"
sessions going through the 0.7 bugs to punt p4/p5 bugs and revisit p3
bugs. Philippe asked developers to SWAG and comment on bugs, the
information helps tremendously when deciding what should make Preview.
*Ship with prebuilt repository?*
Heikki asked if we should ship Chandler with a prebuilt repository.
First time startup is 3x slower without it, which is not frequent but is
a first impression. Heikki recommended *not* going ahead with it:
- increases download size and requires a copy to correct location on
first startup OR
- causes us to launch on install to generate, which could be confusing/rude
Also, requires a fair bit of work. Heikki proposed altering the process
messages in the splash screen, adding "Constructing database".
Bryan, Andi and Philippe agreed with Heikki's suggestion. Philippe noted
that other FLOSS apps (e.g. GIMP) have first-starup performance issues
as well, presumably for similar reasons: smaller download, simpler install.
Andi and Bear noted that a pre-generated repository would have the
problem of every user having the same UUIDs for OOTB items.
As a side issue, Bear asked why we are storing UI information about
display characteristics, observing this could be a problem if someone
upgrades their monitor.
*Python build with Chandler icons*
Bear noted no version change, just a build with our icons instead of the
If you are running full builds, you need SVN client 1.3+
Mikeal noted that recorded scripts are now running on Tinderbox.
Documentation is a work in progress. Differences from old framework:
- Tests must not depend on each other
- Framework uses metadata in the test modules to tell the framework how
it should run (e.g. disabling a test or declaring dependencies on
Mikeal observed that we have 3 ways to collect and run tests: tools
menu, Chandler command line, and rt. He'd like to see us using the one
framework consistently. He'd like the tests to be able to be run in rt,
and thus not depend on Chandler's Python. (Bug 9450).
A discussion followed where Bear and Dan suggested they'd prefer a
single file for managing an exclusion list. Mikeal argued that generally
speaking, a central file for all meta data wouldn't be manageable or
extensible as the number of tests grows, but was amenable to an
exception for the exclusion list if Bear and Dan felt strongly about it.
Aparna noted that both are primary stakeholders in the framework design,
suggesting the QA team go ahead and implement that feature.
Other points mentioned in the conversation:
- meta data will be lost if a test needs to be re-recorded; this could
be fixed by adding a "re-record" option
- new tests will need to be edited most of the time (e.g. to set up
dependencies on accounts)
- The goal is to phase out tests from the old framework, the old
framework will go away
- Jacob added a new dynamic menu under the Tools->scripting menu,
listing all available tests. Mikeal's expectation is that developers
will use this mechanism for debugging, not the --recordedTest command
*wxPython drawing tips*
Heikki observed that SetPen is expensive, so rearranging code to
minimize SetPen calls might be helpful to performance. Also, crossing
the Python/wxWidgets boundary can be expensive. He also pointed out the
DrawLineList method, simplifying some code.
*Collection __nonzero__ changed*
Andi changed Collection's __nonzero__ method, which had been hardcoded
to always return True. It should instead mean "not empty", so Andi
changed it to return False if the collection is empty. Andi found two
instances in functional tests that needed to be fixed.
Andi amended his example:
*Harmful usage of len*
Heikki observed that we use len() frequently to determine if a
collection, list, tuple, string, etc. is empty, which is wasteful.
Python has a more appropriate method: __nonzero__. He also noted that
some Chandler implementations of len() cause side effects (like creating
indexes). More detail (including examples and timings):
John asked if __nonzero__ and __len__ would ever return an inconsistent
values. Heikki and Grant both replied that it wouldn't for builtins, and
shouldn't for Chandler code if written properly. Grant pointed out that
if __nonzero__ is not implemented, and __len__ is implemented, boolean
"typecasts" of the object will evaluate __len__.
Andi noted that repository code never creates indexes on its own
initiative, John's Collection class is the one that creates an index in
the implementation of __len__.
*File extension changed from .dump to .chex*
Bear explained that when we changed the menu names away from "Dump"
using "Export" instead, we also changed the file extension from *.dump
to *.chex. In the "Reload Items" dialog, the *.dump files are not
enabled by default, you need to change the drop down control from
"Export files" to "Dump files".
Heikki tried a Valgrind analysis of Chandler to look for memory leaks,
Code snippet he used to debug memory leaks in M2Crypto:
Robin noted one widgets item flagged was due to memory that should
remain around for the life of the app; he was going to check into
Desktop bug validation IRC session, making use of "bugzilla bugbash"
Ted sent a reminder about Google Summer of Code, now underway:
- Phil Jones (philjones) working on Natural Language Processing
- Vera Sheinman (vera46) working on Progress Reports
- Tim Pokorny (tpokorny) working on Comet Event Notification
Jeffrey is mentoring Phil and Vera, Bobby is mentoring Tim.
More information about the chandler-dev