You are provided a container. To this container you can append elements, and you are responsible for removing elements that you add. You cannot move or otherwise alter anything about this container.
To make custom builds easier, it's convenient to have a OpenLayers.Request depend on OpenLayers.Request.XMLHttpRequest (see 18b4d6808d). This makes it so we don't know which is going to be included first. To get around this, we can be careful about when we define OpenLayers.Request.
After the website infrastructure changes (cadb20c18a), the release script now puts stuff in /osgeo/openlayers/sites/openlayers.org (instead of /osgeo/openlayers/docs).
The svn interface to our repos on git is not behaving well. This is resulting in the website, examples, and api docs not being updated when they should (`svn up` is not doing what it should).
Instead of using svn checkouts, we should use clones of the git repos. At the same time, it makes sense to organize things a bit. These changes depend on a new structure on the openlayers.org machine:
/osgeo/openlayers/repos - clones of our openlayers, docs, and website repos
/osgeo/openlayers/sites - sources for openlayers.org, dev.openlayers.org, and docs.openlayers.org
Where things are "built" (e.g. minifying js and modifying example markup to point to that js), changes are now made outside of the repo cleans. Having dirty repos was another source of build failures.
Changes still need to be made to the release process/script.
When we upgraded to git, we didn't fully change over the way the website and examples are built. The cron job that runs the update script only built the website & examples if the revision returned by the svn interface to the GitHub repo was different than the previously stored revision. At some point, using `svn info` on the repo stopped being reliable. For example, this is what I get when running this today (in 2012):
svn info https://github.com/openlayers/openlayers/
Path: openlayers
URL: https://github.com/openlayers/openlayers
Repository Root: https://github.com/openlayers/openlayers
Repository UUID: d631b94f-4ba7-6298-eb8f-ce57b7db7bff
Revision: 5488
Node Kind: directory
Last Changed Author: schuyler.erle
Last Changed Rev: 5488
Last Changed Date: 2006-05-12 12:35:22 -0700 (Fri, 12 May 2006)
(Last change looks like it was 6 years ago.)
We should be using a proper clone of the git repo and building the website and examples out of this. Until then, we can at least use `git-ls-remote` to check what the latest HEAD from the canonical repo looks like. This should get the website and examples building again (they stopped being updated a few weeks ago).
After great sleuthing from @elemoine, we have a solution closer to the heart of the problem. In a funny twist, the excessive call to `updateSize` ended up hinting at the solution. Thanks to `git bisect` for making things a bit easier.
The Yahoo API doesn't accept quotes in the callback (e.g. foo['bar']). Since the callback registry is an object and all identifiers are prefixed with "c" now, we can use dot notation.
In f08119b01e, the default syntax for the script protocol's callback made it so the callbacks looked like `OpenLayers.Protocol.Script.registry[c1]`. This essentially breaks the script protocol everywhere except where `c1` is defined and equals "c1" (the string).
Tests with this change demonstrate that default callbacks will now look like `OpenLayers.Protocol.Script.registry['c1']` (properly accessing the `c1` property of the registry object).