[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