[OpenLayers-Dev] Re: toward better dependency management

Tim Schaub tschaub at opengeo.org
Wed Jan 5 16:03:55 EST 2011


So I've made changes in the trunk to simplify build configurations.

http://trac.osgeo.org/openlayers/changeset/11006/

This allows for circular dependencies (imposing an arbitrary sort 
order).  Then I changed things to break the one circular dependency that 
we have that cannot be resolved with an arbitrary sort order.

http://trac.osgeo.org/openlayers/changeset/11003/

The result is that dependencies can now be entirely declared within the 
library (and, in the future, in your application code).

As a consequence, people using custom build profiles will likely want to 
remove the "first" section from their configuration files.

E.g. http://trac.osgeo.org/openlayers/changeset/11008

Hope that makes sense,
Tim

On 1/1/11 4:34 PM, Tim Schaub wrote:
> 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