{ "id": "162961", "key": "TIMOB-23859", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "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": "18253", "name": "Release 5.5.0", "archived": false, "released": true, "releaseDate": "2016-09-13" }, { "id": "18264", "name": "hyperloop 1.2.7", "archived": false, "released": true, "releaseDate": "2017-02-06" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-09-12T17:10:54.000+0000", "created": "2016-09-02T01:01:26.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "qe-6.0.0" ], "versions": [ { "id": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" } ], "issuelinks": [ { "id": "52653", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "outwardIssue": { "id": "163060", "key": "CLI-1097", "fields": { "summary": "Include Hyperloop \"version\" to plugin tag in the tiapp.xml", "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": "None", "id": "6" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "52667", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "163088", "key": "CLI-1101", "fields": { "summary": "Module permissions changed when unpackaged", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "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 } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2016-09-14T22:00:14.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": "10202", "name": "Android", "description": "Android Platform" }, { "id": "13715", "name": "Hyperloop", "description": "Hyperloop project" }, { "id": "10207", "name": "Tooling" } ], "description": "h5.Steps to reproduce:\r\n1. Create a default app with hyperloop enabled using SDK 6.0.0. (App will get created with hyperloop module 2.0.0).\r\n2. Now, change the SDK to 5.5.0 in the tiapp.xml, the hyperloop module to 1.2.6 & aca to 1.0.0.\r\n3. Make sure you have references for hyperloop in the app.js e.g {{var View = require('android.view.View');}}\r\n4. Build the app for android device/emulator.\r\n\r\nh5.Actual Result:\r\n1. The app fails to build with error:\r\n{code}\r\n[ERROR] : You cannot use the Hyperloop compiler with a version of Titanium older than 6.0.0\r\n[ERROR] : Set the value of to a newer version in tiapp.xml.\r\n[ERROR] : For example:\r\n[ERROR] : \t6.0.0.GA\r\n{code}\r\n\r\n2. My modules in tiapp.xml:\r\n{code}\r\n com.soasta.touchtest\r\n com.soasta.touchtest\r\n hyperloop\r\n hyperloop\r\n com.appcelerator.aca\r\n com.appcelerator.aca\r\n ti.cloud\r\n{code}\r\n\r\nh5.Expected Results:\r\n1. The app should build fine with 5.5.0 SDK & hyperloop 1.2.6, even if the app is created using SDK 6.0.0. ", "attachment": [], "flagged": false, "summary": "App created with 6.0.0 SDK & with hyperloop references fails to build with 5.5.0 SDK with error \"You cannot use the Hyperloop compiler with a version of Titanium older than 6.0.0\"", "creator": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Environment:\r\nAppc Studio : 4.8.0.201608221113\r\nTi SDK : 6.0.0.v20160901034311, 5.5.0.v20160831100821\r\nTi CLI : 5.0.9\r\nAlloy : 1.9.1\r\nMAC El Capitan : 10.11.6\r\nAppc NPM : 4.2.7\r\nAppc CLI : 6.0.0-31\r\nNode: 4.4.4\r\nNexus 6 - Android 6.0.1", "closedSprints": [ { "id": 708, "state": "closed", "name": "2016 Sprint 19 Tooling", "startDate": "2016-09-10T00:25:31.005Z", "endDate": "2016-09-24T00:25:00.000Z", "completeDate": "2016-09-26T05:33:10.846Z", "originBoardId": 199 } ], "comment": { "comments": [ { "id": "395191", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "ya this is a problem because the hyperloop module contains both a plugin and a module. For every new version of hyperloop module installed, the new plugin always overwrite the previous one. [~fmiao] I like to ask, I have seen for plugins like soasta, it actually maintains versions in the plugins folder. I wonder if this is applicable to the hyperloop module whereby we maintain multiple versions of the plugin as well, and use the appropriate one for every corresponding version? If this is doable, we should get this into 5.5.0.GA, hyperloop 1.2.7.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-09-02T09:10:46.000+0000", "updated": "2016-09-02T09:10:46.000+0000" }, { "id": "395206", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "[~cng] If we can bundle hyperloop plugin like this in the zip: {{plugins/hyperloop//}}, that should prevent the plugin being overwritten when CLI extracts it.", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2016-09-02T16:31:45.000+0000", "updated": "2016-09-02T16:31:45.000+0000" }, { "id": "395305", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~fmiao] Then it's probably a good idea to implement this asap while we have only released 1 version of hyperloop then. Do you think you can implement this please?", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-09-05T03:42:48.000+0000", "updated": "2016-09-05T03:42:48.000+0000" }, { "id": "395402", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "[~cng], I was under the impressing that this is going to be handled when you are creating the zip file that contains both hyperloop module and plugin. ", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2016-09-06T16:13:43.000+0000", "updated": "2016-09-06T16:13:43.000+0000" }, { "id": "395453", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Here is what I came up with so far. Add the following lines before {{echo \"Creating combined zip with iOS and Android\"}}:\r\n{code}\r\n# Move to version-based directory and clean-up old files\r\nmkdir plugins/hyperloop/1.2.7\r\ncp -r plugins/hyperloop/!(1.2.7) plugins/hyperloop/1.2.7\r\nrm -rf plugins/hyperloop/!(1.2.7)\r\n{code}\r\n\r\nIt basically creates a new directory \"1.2.7\", copied everything except itself into it and removes the old files from the old location afterwards. It works when used in the terminal, but using it in the shell-script and with the {{$VERSION}} variable does not seem to work. If we can figure that out, it shouldn't make any problems. [~fmiao] Can you confirm that having {{plugins/hyperloop//}} will be detected by the CLI properly?", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-09-06T22:51:13.000+0000", "updated": "2016-09-06T22:52:28.000+0000" }, { "id": "395461", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "[~hans123], I'm not sure how will the hyperloop plugin be called during project build, as far as I'm aware, putting the plugin in a version directory will work for appc cli.", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2016-09-07T00:14:20.000+0000", "updated": "2016-09-07T00:14:20.000+0000" }, { "id": "395499", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PR here: https://github.com/appcelerator/hyperloop.next/pull/70\r\nOne big issue with this is that it will only work if you do {{hyperloop}}\r\nIf you don't set a version, CLI will use \"latest\". But the problem is, CLI thinks that the content in the root folder (formally 1.2.6 since it didn't do this versioning stuff), it uses that instead.\r\n[~fmiao] Any idea what we can do about CLI's priority in finding the latest version? Let me know if it's something we can change on the CLI side, then I'll set the min sdk requirement on this 1.2.7 module to 5.5.0.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-09-07T10:07:24.000+0000", "updated": "2016-09-07T14:48:10.000+0000" }, { "id": "395501", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "compiled binary for testing here: https://github.com/appcelerator/hyperloop.next/releases/tag/1.2.7-beta.2\r\n\r\nPlus I'm having difficulty building hyperloop 2.0.0 fr Ti SDK 6.0.0 (due to android) but not urgent at this moment. will look into it later tomorrow.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-09-07T10:10:42.000+0000", "updated": "2016-09-07T10:10:42.000+0000" }, { "id": "395502", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~cng], [~fmiao] Can we ensure that all new versions of Hyperloop will automatically get the version-tag in the tiapp.xml when installing Hyperloop?", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-09-07T10:16:56.000+0000", "updated": "2016-09-07T10:16:56.000+0000" }, { "id": "395514", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Ok something strange happening here. I had it working earlier today but it's no longer working now. \r\nI have been testing with hyperloop-examples and I had tiapp.xml {{hyperloop}}\r\nif you look at the trace:\r\n{code}\r\n[INFO] : \b\b \b Found Titanium plugin id=hyperloop version=1.2.7 \r\n{code}\r\nThat is correct but further down the trace:\r\n{code}\r\n[TRACE] : \b\b \b[Hyperloop] running /Users/kiat/Library/Application Support/Titanium/plugins/hyperloop/node_modules/hyperloop-metabase/bin/metabase with -i /Users/kiat/titaniumModules/hyperloop-examples/build/hyperloop/ios/metabase-7.1-iphonesimulator-bfa58c933e7311ecbbb692308ba0316a.h -o /Users/kiat/titaniumModules/hyperloop-examples/build/hyperloop/ios/metabase-7.1-iphonesimulator-bfa58c933e7311ecbbb692308ba0316a.json -sim-sdk-path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk -min-ios-ver 7.1 -pretty\r\n{code}\r\nit should be running {{/Users/kiat/Library/Application Support/Titanium/plugins/hyperloop/1.2.7/node_modules/hyperloop-metabase/bin/metabase}} instead of {{/Users/kiat/Library/Application Support/Titanium/plugins/hyperloop/node_modules/hyperloop-metabase/bin/metabase}}\r\nNot sure what went wrong.\r\n\r\n*Important thing to note*: This is tested with 1.2.6 installed prior. That means, there's already 1.2.6 plugin in the root folder (without a version folder). So this will happen to people who installed 1.2.6 before installing 1.2.7.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-09-07T15:24:36.000+0000", "updated": "2016-09-07T15:49:03.000+0000" }, { "id": "395524", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "https://github.com/appcelerator/node-appc/blob/master/lib/tiplugin.js#L278-L290, looks like if there are plugin files in the root folder, plugin in detection will not loop through the versions.\r\n\r\nI think we should also re-package hyperloop@1.2.6 tarballs to include the version folder, and also put a note to inform developers that they should remove the hyperloop plugins folder so the next time hyperloop module installation kicks in, the plugin will be in the version folder.\r\n", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2016-09-07T17:49:26.000+0000", "updated": "2016-09-07T17:49:26.000+0000" }, { "id": "395587", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Master PR here for hyperloop versioning: https://github.com/appcelerator/hyperloop.next/pull/71 [~jvennemann]", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-09-08T07:58:17.000+0000", "updated": "2016-09-08T07:58:17.000+0000" }, { "id": "395593", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "Changes to the build script approved and merged for both 1.2.x and master branch.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-09-08T09:44:46.000+0000", "updated": "2016-09-08T09:44:46.000+0000" }, { "id": "395639", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "TiSDK master PR: https://github.com/appcelerator/titanium_mobile/pull/8327\r\nTiSDK 6_0_X PR: https://github.com/appcelerator/titanium_mobile/pull/8328\r\nTiSDK 5_5_X PR: https://github.com/appcelerator/titanium_mobile/pull/8329", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-09-08T23:48:43.000+0000", "updated": "2016-09-08T23:48:43.000+0000" }, { "id": "395642", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "h4. How to test for 5.5.0\r\nUse the latest environment on preproduction for 5_5_X, and test the following scenarios whereby someone previously on 5.4.0.GA just updated to 5.5.0.\r\n- *Create a brand new app after upgrade*\r\n# appc new --classic\r\n# appc run -p ios -I 10.0\r\n# App should build and run normally. Also to check in {{Library/Application Support/Titanium/plugins/hyperloop}} if there's both {{1.2.6}} and {{1.2.7}} folders, with no other files in the root.\r\n- *Changing the sdk in tiapp.xml and running a pre-existing hyperloop-enabled app*\r\n# Using hyperloop-examples, in tiapp.xml, change the sdk-version to the version that contains this fix, and make sure that plugin and module of hyperloop has no specific version number assigned.\r\n# appc run -p ios -I 10.0\r\n# App should build and run normally. Also to check in {{Library/Application Support/Titanium/plugins/hyperloop}} if there's both {{1.2.6}} and {{1.2.7}} folders, with no other files in the root.\r\n\r\nh4. Something to note for multiple Xcode installations and Hyperloop\r\nIf you have multiple Xcode installations, and you use the {{-I}} flag in appc cli, make sure that the Active Xcode is consistent with that flag. \r\n- {{sudo xcode-select --switch /Applications/Xcode8.app}} and {{appc run -p ios -I 10.0}}\r\n- {{sudo xcode-select --switch /Applications/Xcode731.app}} and {{appc run -p ios -I 9.3}}\r\nwill work well with Hyperloop.\r\nAnd if you switch between Xcodes, make sure to clean the project.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-09-09T01:40:27.000+0000", "updated": "2016-09-12T17:10:41.000+0000" }, { "id": "395649", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "CR and FT passed. PRs merged. \r\nHowever, to test this properly, this new ticket has to be addressed: CLI-1101", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-09-09T07:09:52.000+0000", "updated": "2016-09-11T20:13:19.000+0000" }, { "id": "396165", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix. We get version folders for both hyperloop plugin & module.\r\n\r\nFYI, when you have an app created with 6.0.0 SDK with hyperloop enabled & want to build it with 5.5.0.GA SDK with 1.2.7 hyperloop module you got to manually select the 1.2.7 plugin in the tiapp.xml.\r\n{code}\r\n \r\n hyperloop\r\n\r\n{code}\r\n\r\nClosing.\r\n\r\nEnvironment:\r\nAppc Studio : 4.8.0.201609061702\r\nTi SDK : 6.0.0.v20160913184210 , 5.5.0.GA\r\nTi CLI : 5.0.9\r\nAlloy : 1.9.1\r\nMAC El Capitan : 10.11.6\r\nAppc NPM : 4.2.8-6\r\nAppc CLI : 6.0.0-38\r\nNode: 4.4.4\r\nNexus 6 - Android 6.0.1", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2016-09-14T21:59:49.000+0000", "updated": "2016-09-14T21:59:49.000+0000" } ], "maxResults": 17, "total": 17, "startAt": 0 } } }