Weave includes binary components which are platform-specific. They are placed into unique directories under 'platform' in the root of the extension folder. It would be good to have a simple script that unzips the XPIs and moves these platform-specific directories into a single one, then re-zip the XPI. Bonus points if the script also checks the install.rdf to make sure the versions are the same, or even compares every other file to make sure there are no other changes whatsoever. Major bonus points if this script can be deployed into buildbot and set up to automatically pull from each platform's build.
Dan and I chatted on IRC about this a bit. I need to think about this a bit more but this is basically how I think it should work: 3 builders (one per platform) that build the product and push it to stage.mozilla.org in a directory containing the revision number built with. These are triggered by changes. 1 builder to do repackaging. It will download all of the builds, run the repackaging script, and push the combined xpi back to stage.mozilla.org. This will either be triggered by a Dependent Scheduler or a Triggerable Scheduler. The problem here (which I haven't solved yet), is that the repackaging builder needs to know the revision in order to pull builds properly, and push them back again. This is easy with a Triggerable scheduler, but I don't know if you can have a Triggerable scheduler block until all 3 builders are completed. In contrast, a Dependent scheduler does this naturally, but I don't think you can easily give it a revision. If someone wants to play around with the ideas above that'd be cool. I'm going to give this some more thought in the meantime.
Assignee: nobody → avarma
Status: ASSIGNED → NEW
I've committed a script here: http://hg.mozilla.org/labs/weave/index.cgi/rev/82c2af557b45 The script is currently fragile and doesn't get any of the bonus points done or anything--I'm foregoing that at the moment for getting some of the other more urgent goals finished, but will try to come back to them later (have noted them as a TODO in the script).
The script now checks to make sure that the common files between all XPIs are identical. Until we actually use the script to create a combined platform-independent XPI, though, I'm not marking this as fixed.
Status: NEW → ASSIGNED
This is done, marking fixed.
Status: ASSIGNED → RESOLVED
Last Resolved: 10 years ago
Resolution: --- → FIXED
Component: Weave → General
Product: Mozilla Labs → Weave
You need to log in before you can comment on or make changes to this bug.