{ "id": "161783", "key": "TIMOB-23649", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-08-04T13:52:25.000+0000", "created": "2016-07-14T07:38:09.000+0000", "epic": { "id": 152336, "key": "TIMOB-19790", "name": "Android: Update V8 to latest LTS release", "summary": "Android: Update V8 to latest LTS release", "color": { "key": "color_9" }, "done": false }, "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [ { "id": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" } ], "issuelinks": [ { "id": "52220", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "inwardIssue": { "id": "161285", "key": "TIMOB-23550", "fields": { "summary": "CLI: Use platform-specific moduleApiVersions and enforce them in lookup of modules", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "52221", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "inwardIssue": { "id": "161828", "key": "TISTUD-8536", "fields": { "summary": "Support per-platform moduleAPIVersions", "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": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "52468", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "162670", "key": "TIMOB-23787", "fields": { "summary": "Android: Can't add android modules to project when using SDK 6.0.0.v20160817065403", "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": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "updated": "2018-08-06T17:49:18.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": "12305", "name": "Core", "description": "Central component of the Platform (outside of Tooling, or platform specific implementation details)" } ], "description": "We need the ability to version the module API's at the platform level (and not globally). We updated Android/V8 so only need to bump the moduleAPIVersion to 3 there, but retain 2 on iOS. For the SDK, this involves using an object value for \"moduleAPIVersion\" property. I propose that the object have the platform ids as the keys and the api version as the value, like so:\r\n\r\n{code:javascript}\r\n{\r\n \"name\": \"6.0.0.v20160717220907\",\r\n \"version\": \"6.0.0\",\r\n \"moduleAPIVersion\": {\r\n \"iphone\": \"2\",\r\n \"android\": \"3\",\r\n \"mobileweb\": \"2\"\r\n },\r\n \"timestamp\": \"7/18/2016 05:13\",\r\n \"githash\": \"e31eb5e\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\",\r\n \"mobileweb\"\r\n ]\r\n}\r\n{code}", "attachment": [], "flagged": false, "summary": "Use per-platform moduleAPIVersions in the SDK manifest.json", "creator": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "subtasks": [], "reporter": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "environment": null, "closedSprints": [ { "id": 682, "state": "closed", "name": "2016 Sprint 15 SDK", "startDate": "2016-07-16T00:19:20.819Z", "endDate": "2016-07-30T00:19:00.000Z", "completeDate": "2016-08-01T04:40:11.421Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "390868", "author": { "name": "kkolipaka", "key": "kkolipaka", "displayName": "Kondal Kolipaka", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~msamah] [~cng] - {{moduleAPIVersion}} is need to be updated to {{3}} with SDK 6.0\r\n\r\nThis can be found in {{manifest.json}} in titanium mobile SDK home directory.\r\n\r\n{code:java}\r\n{\r\n \"name\": \"6.0.0.v20160717220907\",\r\n \"version\": \"6.0.0\",\r\n \"moduleAPIVersion\": \"2\",\r\n \"timestamp\": \"7/18/2016 05:13\",\r\n \"githash\": \"e31eb5e\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\",\r\n \"mobileweb\"\r\n ]\r\n}\r\n{code}\r\n", "updateAuthor": { "name": "kkolipaka", "key": "kkolipaka", "displayName": "Kondal Kolipaka", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-07-18T06:49:40.000+0000", "updated": "2016-07-18T06:50:33.000+0000" }, { "id": "390869", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "Thank you for the findings.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-07-18T06:51:07.000+0000", "updated": "2016-07-18T06:51:16.000+0000" }, { "id": "390870", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "Exact location https://github.com/appcelerator/titanium_mobile/blob/02620f76c6fbcfb35f40eb2254380d90f3e81d02/package.json#L5", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-07-18T06:58:56.000+0000", "updated": "2016-07-18T06:58:56.000+0000" }, { "id": "390881", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "[~cwilliams] for your PR update here: https://github.com/appcelerator/titanium_mobile/commit/881c045d606d1da22a2264e60ce6c6c902181c50#diff-b9cfc7f2cdf78a7f4b91a753d10865a2R5\r\n\r\nYou also included {{\"moduleApiVersion\": 2,}}. With the new modules having apiversion 3, they aren't detected in studio. Is this something we need to update to 3? And if so, it would render modules with apiversion 2 (both iOS and Android I believe) to not be useable.\r\n\r\nPlease correct me if I'm wrong in understanding this.\r\n\r\nBasically right now, modules compiled in apiversion 3 aren't detected in Studio.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-07-18T08:10:17.000+0000", "updated": "2016-07-18T08:10:17.000+0000" }, { "id": "390906", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Ok, so I see the issue here. Studio is enforcing the moduleAPIVersion value in the SDK's manifest.json matches the moduleAPIVersion in the modules. The problem here is that Studio is the only one enforcing that, and that we need moduleAPIVersion to actually be platform-specific now - since the API didn't change for iOS, but did for Android.\r\n\r\nSee TIMOB-23550\r\n\r\nI think we should add an enhancement request to Studio to have it understand the old \"global\" moduleAPIVersion for the SDK, or a newer platform-specific listing, one that might look like this:\r\n\r\n{code:javascript}\r\n\r\n{\r\n \"name\": \"6.0.0.v20160717220907\",\r\n \"version\": \"6.0.0\",\r\n \"moduleAPIVersion\": {\r\n \"iphone\": \"2\",\r\n \"android\": 3,\r\n \"mobileweb\": \"2\"\r\n }\r\n \"timestamp\": \"7/18/2016 05:13\",\r\n \"githash\": \"e31eb5e\",\r\n \"platforms\": [\r\n \"iphone\",\r\n \"android\",\r\n \"mobileweb\"\r\n ]\r\n}\r\n{code}", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2016-07-18T13:50:02.000+0000", "updated": "2016-07-18T13:50:14.000+0000" }, { "id": "390912", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "https://github.com/appcelerator/titanium_mobile/pull/8140", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2016-07-18T15:18:52.000+0000", "updated": "2016-07-18T15:18:52.000+0000" }, { "id": "392379", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "To test this, use the latest Studio with the latest 6.0.0. Add this module to an Android project https://github.com/appcelerator-modules/ti.imagefactory/releases/tag/android-3.0.0\r\n\r\nThe v3.0.0 module should appear in the tiapp.xml overview modules when you click the add button and you should be able to add it.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-08-04T04:41:11.000+0000", "updated": "2016-08-04T04:41:11.000+0000" }, { "id": "392380", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "Just a note, not sure if it's me but after compiling latest master of TiSDK, the {{manifest.json}} file showed:\r\n{code}\r\n{\r\n \"name\": \"6.0.0\",\r\n \"version\": \"6.0.0\",\r\n \"moduleAPIVersion\": \"[object Object]\",\r\n \"timestamp\": \"8/4/2016 02:21\",\r\n \"githash\": \"6f132a1\",\r\n \"platforms\": [\r\n \"android\",\r\n \"iphone\",\r\n \"mobileweb\"\r\n ]\r\n}\r\n{code}\r\nwhich prevented any ApiVersion 3 module from being used. Instead, it should have shown something like this:-\r\n{code}\r\n{\r\n \"name\": \"6.0.0\",\r\n \"version\": \"6.0.0\",\r\n \"moduleAPIVersion\": {\r\n \"android\":\"3\",\r\n \"iphone\":\"2\",\r\n \"mobileweb\":\"2\"\r\n },\r\n \"timestamp\": \"8/4/2016 02:21\",\r\n \"githash\": \"6f132a1\",\r\n \"platforms\": [\r\n \"android\",\r\n \"iphone\",\r\n \"mobileweb\",\r\n ]\r\n}\r\n{code}\r\nAdding this comment because it seems to be just me for now facing this when compiling the master branch.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-08-04T04:43:14.000+0000", "updated": "2016-08-04T04:43:14.000+0000" }, { "id": "392382", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "[~cwilliams]\r\nChecked with Kondal, studio checks the values in {{manifest.json}}. The PR changes changed the {{package.json}}. From what I can see, {{package.json}}'s values for \"moduleApiVersion\" is being copied over to {{manifest.json}} but it is copying it wrongly. Instead of the correct key values, it's copied as {{[object Object]}}.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-08-04T04:47:48.000+0000", "updated": "2016-08-04T04:47:48.000+0000" }, { "id": "392383", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "[~cwilliams] I reopened the ticket. Please resolve back the ticket if I'm incorrect.", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-08-04T04:48:38.000+0000", "updated": "2016-08-04T04:48:38.000+0000" }, { "id": "392384", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "Perhaps this needs fixing: https://github.com/appcelerator/titanium_mobile/blob/cedf4838ac5dc7c9d7fcdb77b07ddb8a1f432271/build/packager.js#L104", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-08-04T04:53:21.000+0000", "updated": "2016-08-04T04:53:21.000+0000" }, { "id": "392388", "author": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "body": "PR for the fix: https://github.com/appcelerator/titanium_mobile/pull/8190\r\n[~cwilliams] for your review. :)", "updateAuthor": { "name": "msamah", "key": "msamah", "displayName": "Ashraf Abu", "active": false, "timeZone": "Asia/Singapore" }, "created": "2016-08-04T05:23:07.000+0000", "updated": "2016-08-04T05:30:44.000+0000" }, { "id": "440103", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Cleaning up older fixed issues. If this issue should not have been closed as fixed, please reopen.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-08-06T17:49:18.000+0000", "updated": "2018-08-06T17:49:18.000+0000" } ], "maxResults": 13, "total": 13, "startAt": 0 } } }