Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-7806] Tooling: Bundle ACS (and potentially MQTT) module binaries with the MobileSDK

GitHub Issuen/a
TypeNew Feature
PriorityCritical
StatusClosed
ResolutionFixed
Resolution Date2012-03-08T15:07:26.000+0000
Affected Version/sRelease 2.0.0
Fix Version/sSprint 2012-05, Release 2.0.0
ComponentsTooling
Labelsn/a
ReporterMarshall Culpepper
AssigneeJosh Roesslein
Created2012-02-24T13:44:25.000+0000
Updated2017-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

FileDateSize
bogus.zip2012-03-07T13:30:03.000+0000348
ti.cloud-commonjs-2.0.zip2012-03-08T13:12:09.000+0000125662
ti.example.zip2012-03-08T13:08:09.000+00002220

Comments

  1. Bill Dawson 2012-03-07

    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.
  2. Dawson Toth 2012-03-07

    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.
  3. Jeff English 2012-03-07

    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.
  4. Jeff English 2012-03-07

    Bill, the folder structure in the module zip files is "modules///". We will have both commonJS and android and (potentially) iPhone modules and we want to be able to place the built zip file into the packaged folder. Note that for commonJS modules the platform will be 'commonjs'. In the support/module/packaged folder we should be able to place the zip files like this:
       support
           module
               packaged
                   ti.push-android-2.0.zip
                   ti.cloud-commonjs-2.0.zip
       
    The unzipped folder structure should look something like this (just the unzipped contents of the zip files):
       modules
           android
               ti.push
                   2.0
                       documentation (folder)
                       example (folder)
                       lib (folder)
                       libs (folder)
                       LICENSE
                       manifest
                       platform (folder)
                       push.jar
                       timodule.xml
           commonjs
               ti.cloud
                   2.0
                       documentation (folder)
                       example (folder)
                       LICENSE
                       manifest
                       ti.cloud.js
       
  5. Josh Roesslein 2012-03-08

    CommonJS example module attached for testing. Let me know if that structure looks incorrect.
  6. Jeff English 2012-03-08

    Attached is the 'current' cloud zip file.
  7. Jeff English 2012-03-08

    Structure looks correct.
  8. Lee Morris 2017-03-13

    Closing ticket as fixed.

JSON Source