[OpenLayers-Dev] toward better dependency management
Tim Schaub
tschaub at opengeo.org
Sat Jan 1 18:34:49 EST 2011
Hey-
I'd like to make it easier to correctly build custom profiles of the
library. One restriction that we currently face is that our toposort
method is unnecessarily strict with regard to circular dependencies.
With a more tolerant toposort, we could safely declare more dependencies
in our source files (where they belong) instead of in configuration files.
One current circular dependency that will not be satisfied with an
arbitrary sort order is the Class -> Util -> BaseTypes -> Class loop.
Our Class function really only requires the extend method from Util. If
we define the extend method in the Class.js file, then things can be
resolved properly.
I've made changes in a sandbox that include a simplified & more tolerant
topological sort [1], extend in Class instead of Util [2], and proper
dependency declarations in the source comments. This results in simpler
build configuration files [3] (closer to something that could be handled
by @require comments in an application file instead of a separate build
configuration file).
I've put up a patch that moves the extend method into Class.js [4]. I
thought this one deserved review & input. All the other changes are
comments only or changes in the build tools.
Thanks for any feedback,
Tim
[1] http://trac.osgeo.org/openlayers/changeset/10979/
[2] http://trac.osgeo.org/openlayers/changeset/10982/
[3]
http://trac.osgeo.org/openlayers/browser/sandbox/tschaub/uncircular/build/lite.cfg
[4] http://trac.osgeo.org/openlayers/ticket/2992
--
Tim Schaub
OpenGeo - http://opengeo.org
Expert service straight from the developers.
More information about the Dev
mailing list