{ "id": "93177", "key": "TIMOB-9524", "fields": { "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true }, "parent": { "id": "92566", "key": "TIMOB-9317", "fields": { "summary": "Module Projects: Support multiple Javascript files", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "13502", "description": "Sprint 2012-14 Core", "name": "Sprint 2012-14 Core", "archived": true, "released": true, "releaseDate": "2012-07-15" }, { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-09-16T23:06:32.000+0000", "created": "2012-06-13T16:02:18.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "core" ], "versions": [ { "id": "13271", "description": "Release 2.1.0", "name": "Release 2.1.0", "archived": false, "released": true, "releaseDate": "2012-06-29" }, { "id": "14613", "description": "Release 2.1.4", "name": "Release 2.1.4", "archived": true, "released": true, "releaseDate": "2012-11-12" }, { "id": "15478", "description": "Release 3.1.1", "name": "Release 3.1.1", "archived": true, "released": true, "releaseDate": "2013-06-17" }, { "id": "15479", "description": "Release 3.1.2", "name": "Release 3.1.2", "archived": true, "released": true, "releaseDate": "2013-07-31" } ], "issuelinks": [ { "id": "51701", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "160272", "key": "TIMOB-23383", "fields": { "summary": "Parity: Titanium CommonJS modules cannot require relative files", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "18276", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "94315", "key": "TIMOB-9860", "fields": { "summary": "iOS: require ('abc/xyz') and require('/abc/xyz') get treated differently", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "25318", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "108845", "key": "TIMOB-12488", "fields": { "summary": "iOS module building: js files are filtered out, even in the examples folder", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "30550", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "117839", "key": "TIMOB-14723", "fields": { "summary": "iOS: Unable to support multiple JS files per module", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2016-05-16T17:42:24.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "See umbrella bug for description. MobileWeb has already implemented this; see the ticket for the full details, but the general structure is:\r\n\r\n* require('module.id') requires the main module JS\r\n* require('module.id/sub-lib') requires the JS file 'sub-lib.js' which is loaded in the module\r\n\r\nIntroducing this may require some significant changes in iOS' module-loading infrastructure.", "attachment": [ { "id": "28423", "filename": "assets.tar.gz", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-06-15T18:23:18.000+0000", "size": 882, "mimeType": "application/x-gzip" }, { "id": "41760", "filename": "test.zip", "author": { "name": "anigam", "key": "anigam", "displayName": "Ashish Nigam", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2013-08-21T10:56:04.000+0000", "size": 116297, "mimeType": "application/zip" }, { "id": "41761", "filename": "testone.zip", "author": { "name": "anigam", "key": "anigam", "displayName": "Ashish Nigam", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2013-08-21T10:56:04.000+0000", "size": 107267, "mimeType": "application/zip" }, { "id": "29261", "filename": "timob9524.tar.gz", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-07-12T17:12:37.000+0000", "size": 2315040, "mimeType": "application/x-gzip" } ], "flagged": false, "summary": "iOS: Support multiple JS files per module", "creator": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Titanium Mobile SDK, iOS SDK.", "comment": { "comments": [ { "id": "198803", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "h2. TESTING\r\n----\r\n\r\nh4. Module build\r\n\r\n# Create a new module project for iOS with the id {{com.foo.bar}} - only the ID matters. This module MUST be created with 2.1.0 SDK being tested with.\r\n# Download the attached {{assets.tar.gz}}\r\n# untar {{assets.tar.gz}} in the directory of the new module project\r\n# run the module's {{build.py}}\r\n\r\n*PASS*:\r\n\r\n# The module has built correctly\r\n# The module's {{ComFooBarModuleAssets}} file contains:\r\n#* A nontrivial {{moduleAsset}} method\r\n#* A nontrivial {{resolveModuleAsset:}} method which contains the hash keys:\r\n#** com_foo_bar_js\r\n#** test1_js\r\n#** subdir/test2_js\r\n\r\nOnce the module build passes testing, install it in {{~/Library/Application Support/Titanium}} in the usual way.\r\n\r\nh4. Project (2.1.0)\r\n\r\n# Download the attached {{timob9524.tar.gz}} and untar it\r\n# Import the resulting directory into TiStudio\r\n# Run project\r\n\r\n*PASS:*\r\n\r\nThe console output from the app will include the following:\r\n\r\n{code}\r\n[INFO] foo.foo:\r\n[INFO] bar\r\n[INFO] foo.dorp:\r\n[INFO] dorp\r\n[INFO] mod.test:\r\n[INFO] hellz yes\r\n[INFO] woo :)\r\n[INFO] Fold Goggold Jeff Goldgate Jeff Jeffgold Foldgold Blumgold Cool Jeffjeff Gatecool Game Coolcold Blum Gateblum Coolgold Goldjeff Game Gamegame Gate Oldgold Jeff Goldblast Jeff Gotgamesgold. Cool cool cool game.\r\n[INFO] woo.woo:\r\n[INFO] woo :)\r\n[INFO] jeff.gamegold:\r\n[INFO] Fold Goggold Jeff Goldgate Jeff Jeffgold Foldgold Blumgold Cool Jeffjeff Gatecool Game Coolcold Blum Gateblum Coolgold Goldjeff Game Gamegame Gate Oldgold Jeff Goldblast Jeff Gotgamesgold. Cool cool cool game.\r\n{code}\r\n\r\nThis looks redundant but tests ALL of the following features:\r\n\r\n* Relative pathing outside modules\r\n* Relative pathing inside modules\r\n* Absolute pathing outside modules\r\n* Absolute pathing inside modules\r\n* Loading module resource before module\r\n* Loading module as {{module.id/module.id}}\r\n\r\n*IMPORTANT*: These modules are NOT compatible with any earlier versions of the SDK; this is both because of symbol loading errors, and because any module which loads resources outside of its main asset file will generate an exception.", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-06-15T18:01:06.000+0000", "updated": "2012-06-15T18:20:58.000+0000" }, { "id": "198804", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Module assets and timob project for testing.", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-06-15T18:23:18.000+0000", "updated": "2012-06-15T18:23:18.000+0000" }, { "id": "203230", "author": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Pull#2414 merged.", "updateAuthor": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-07-13T17:25:22.000+0000", "updated": "2012-07-13T17:25:22.000+0000" }, { "id": "243834", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "I just tried to do that and my \"resolveModuleAsset\" does not get filled with my modules js files\r\nI cant find where that method gets filled in the build process. Any help?\r\n\r\nTHanks", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2013-03-24T17:45:00.000+0000", "updated": "2013-03-24T17:45:00.000+0000" }, { "id": "243836", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "Got it working, it was jspacker which wasnt liking some of my js files. Running from inside xcode you dont see the error from jspacker. Have to do it from the commandline", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2013-03-24T19:47:20.000+0000", "updated": "2013-03-24T19:47:20.000+0000" }, { "id": "252805", "author": { "name": "jbeebe", "key": "jbeebe", "displayName": "Jonathan Beebe", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Following the described steps in SDK 3.1.0.GA , this doesn't seem to be working. I think the culprit may be changes to the build.py script.", "updateAuthor": { "name": "jbeebe", "key": "jbeebe", "displayName": "Jonathan Beebe", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-05-20T16:08:42.000+0000", "updated": "2013-05-20T16:08:42.000+0000" }, { "id": "267454", "author": { "name": "anigam", "key": "anigam", "displayName": "Ashish Nigam", "active": true, "timeZone": "Asia/Kolkata" }, "body": "Issue remains open for new SDK, tested on 2.1.4.GA and 3.1.2.GA SDK.", "updateAuthor": { "name": "anigam", "key": "anigam", "displayName": "Ashish Nigam", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2013-08-21T10:51:44.000+0000", "updated": "2013-08-21T10:51:44.000+0000" }, { "id": "267455", "author": { "name": "anigam", "key": "anigam", "displayName": "Ashish Nigam", "active": true, "timeZone": "Asia/Kolkata" }, "body": "I tested the attached module zip (test(3.1.2.GA SDK) and testone(2.1.4.GA SDK)) using 3.1.2.GA and 2.1.4.GA SDK and issue is still reproducible using them.", "updateAuthor": { "name": "anigam", "key": "anigam", "displayName": "Ashish Nigam", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2013-08-21T10:56:04.000+0000", "updated": "2013-08-21T10:57:45.000+0000" }, { "id": "270867", "author": { "name": "vjoshi", "key": "vjoshi", "displayName": "Varun Joshi", "active": true, "timeZone": "America/New_York" }, "body": "This problem was fixed if I required all the files under the native module like this:\r\n\r\nvar woo = require('/test1');\r\nvar jeff = require('/subdir/test2');\r\n\r\nRequiring the files without specifying the module name will not work. \r\n\r\nThis ticket can be closed.", "updateAuthor": { "name": "vjoshi", "key": "vjoshi", "displayName": "Varun Joshi", "active": true, "timeZone": "America/New_York" }, "created": "2013-09-12T16:53:35.000+0000", "updated": "2013-09-12T16:53:35.000+0000" }, { "id": "271397", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing based on Varun's comment.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-09-16T23:06:19.000+0000", "updated": "2013-09-16T23:06:19.000+0000" }, { "id": "273124", "author": { "name": "ralph", "key": "ralph", "displayName": "ralph valeriote", "active": true, "timeZone": "America/New_York" }, "body": "I am not able to get this to work. I've tried the posted solution without luck. Can someone post a working example? Varun?", "updateAuthor": { "name": "ralph", "key": "ralph", "displayName": "ralph valeriote", "active": true, "timeZone": "America/New_York" }, "created": "2013-09-27T04:11:20.000+0000", "updated": "2013-09-27T04:11:20.000+0000" }, { "id": "273127", "author": { "name": "vjoshi", "key": "vjoshi", "displayName": "Varun Joshi", "active": true, "timeZone": "America/New_York" }, "body": "Ralph, Did you try with the suggestion posted? Here is a working module https://www.dropbox.com/s/ui2j55dgi455q7q/TestModule.zip\r\n\r\nTo test, you can just use the sample app provided in this ticket.", "updateAuthor": { "name": "vjoshi", "key": "vjoshi", "displayName": "Varun Joshi", "active": true, "timeZone": "America/New_York" }, "created": "2013-09-27T04:58:33.000+0000", "updated": "2013-09-27T04:58:33.000+0000" } ], "maxResults": 12, "total": 12, "startAt": 0 } } }