[TIMOB-7806] Tooling: Bundle ACS (and potentially MQTT) module binaries with the MobileSDK
GitHub Issue | n/a |
Type | New Feature |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2012-03-08T15:07:26.000+0000 |
Affected Version/s | Release 2.0.0 |
Fix Version/s | Sprint 2012-05, Release 2.0.0 |
Components | Tooling |
Labels | n/a |
Reporter | Marshall Culpepper |
Assignee | Josh Roesslein |
Created | 2012-02-24T13:44:25.000+0000 |
Updated | 2017-03-13T20:27:27.000+0000 |
Description
We need to bundle the new ACS module alongside the MobileSDK. Android may also require a second MQTT module that the ACS module will depend on. A brief overview for how this should work:
* The ACS (and MQTT) modules will be provided as zip binaries by the Modules team, preferably living under something like support/common
* site_scons/package.py
will need to be updated so those zips are extracted and live in the "modules" top level directory of the MobileSDK zip. This will ensure that when the MobileSDK zip is extracted, the modules are installed in the system directory as well
Testing
1. Download the two ti.* modules attached to this ticket (ignore bogus.zip).
2. Copy these two zips into titanium_mobile/support/module/packaged
3. Run scons to build the SDK.
4. Extract the SDK zip in dist/ and verify the file structure in modules/ matches as described in this ticket (see comments).
Attachments
Testing Notes: * Place the attached bogus.zip file into the titanium_mobile source tree under support/module/packaged/commonjs. * scons (build the mobile sdk). * unzip the resulting dist/mobilesdk-2.0.0-osx.zip somewhere (i.e., do it right there in dist/). You should see that a modules folder appears after the unzipping. It should contain commonjs/bogus/bogus.js.
Functionally acceptable, in my testing. There is one annoyance, though. Our non-CommonJS modules are packaged in to zips with the folder structure "modules/platform/id/version/". If one of these zips is dropped in to the "support/module/packaged" folder, it is successfully added to the distribution, but it is unzipped in to "modules/modules/platform/id/version/" (notice the two "modules" folders). We can work around that by unzipping the module, and recreating the zip with the contents of the modules folder. But that's a bit tedious.
The current module zip structure should be supported. We will have more modules in the future and we should be able to drop the zip files in without having to manually re-create.
Bill, the folder structure in the module zip files is "modules/
The unzipped folder structure should look something like this (just the unzipped contents of the zip files):
CommonJS example module attached for testing. Let me know if that structure looks incorrect.
Attached is the 'current' cloud zip file.
Structure looks correct.
Closing ticket as fixed.