[kepler-dev] Proposal: Kepler should work off a snapshot or release of Ptolemy instead of the trunk of Ptolemy

David Welker david.v.welker at gmail.com
Thu May 14 15:44:07 PDT 2009


Hi all,

I wanted to see how people felt, including people working on Ptolemy, 
about the following proposal. Instead of having the trunk of Kepler run 
off the trunk of Ptolemy, instead we should have it run off a snapshot 
or release of Ptolemy. Then, according to a set schedule, Kepler could 
synchronize the trunk of Kepler with the trunk of Ptolemy. This way, we 
can remain highly coordinated with Ptolemy and the Ptolemy community, 
but not be impacted by minor (yet important) changes.

Overall, I am really impressed with how stable the trunk of Ptolemy is. 
Compilation problems and problems running are usually resolved quickly. 
However, sometimes, things are not so easy and it isn't anyone's fault. 
There are just too many moving parts.

I think today was a case in point. The build continues to evolve, as it 
must. Modules that depend on the build, such as loader and 
module-manager, also continue to evolve. Ptolemy continues to evolve. 
All of this evolution is absolutely necessary. But, it also conflicts 
with another need we have, and that is a stable foundation upon which 
developers can work.

Here is the story of what happened today:

Ptolemy decided to move some configuration files -- gtEffigyFactory.xml 
and gtTableauFactory.xml -- from one location to another. Specifically, 
from ptolemy/configs/gt/ to ptolemy/configs/. This strikes me as a 
perfectly sensible change. But, it also was pretty expensive in terms of 
developer time. Unfortunately, our configuration.xml file in Kepler 
referred to the old location of these files instead of the new locations.

It took me at least 3 hours to find this problem. Not least of which, 
because these changes in Ptolemy corresponded with significant changes I 
have been making to loader and module-manger, not to mention the build. 
When so many things are changing at once, it is challenging to isolate 
an error like this. I spent a significant amount of time looking for how 
the build system or loader was somehow causing this error, when in fact 
it was a change in ptolemy without a corresponding change to a 
configuration file that was the real culprit.

Of course, the amount of time it took me to find this error is only a 
small part of the cost. I think this change happened sometime yesterday. 
I didn't run into this error until I updated. It basically broke Tim's 
build yesterday, and at some point he had to stop working. I know it 
also broke Aaron's build too. So, we have what turns out to be a rather 
minor (yet important) change sucking up multiple hours for multiple 
developers. It seems pretty clear that the decision to synchronize the 
trunk of Kepler with the trunk of Ptolemy in real time is pretty 
expensive. So, we really have to scrutinize this decision.

Imagine a world where, instead of working off the trunk of Ptolemy, we 
work off a snapshot that is made on a regular basis, say once a month. 
When we decide to migrate the trunk of Kepler to work with the trunk of 
Ptolemy on a monthly basis, if we found that Kepler suddenly stopped 
working, we would immediately know where the problem was. There must 
have been a change in Ptolemy that made it incompatible with Kepler. So, 
this sort of problem would take much less time to hunt down, simply out 
of virtue that the set of potential causes would be much smaller. 
Secondly, and more significantly, the costs of such incompatibilities 
could be absorbed by one expert who would be well equipped to figure out 
how compatibility was breaking down, rather than subset of the entire 
Kepler community that chooses to work off the trunk of Kepler. Only when 
compatibility was ensured would a new snapshot that reflected the latest 
trunk of Ptolemy be used.

I don't really see any downsides to this proposal. We would still be 
working in a very collaborative manner with Ptolemy. Only, the costs of 
such collaboration would be much lower.

Does anyone else have any thoughts on this proposal?

David


More information about the Kepler-dev mailing list