{ "id": "155175", "key": "TIMOB-20469", "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": "17706", "name": "Release 5.4.0", "archived": false, "released": true, "releaseDate": "2016-08-11" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-05-10T17:21:38.000+0000", "created": "2016-02-27T00:33:29.000+0000", "epic": { "id": 154964, "key": "TIMOB-20416", "name": "Support Hyperloop modules", "summary": "Support Hyperloop modules in Titanium Mobile", "color": { "key": "color_8" }, "done": false }, "priority": { "name": "Critical", "id": "1" }, "labels": [ "hyperloop", "hyperloop-metabase", "ios" ], "versions": [ { "id": "16997", "name": "Release 5.2.0", "archived": false, "released": true, "releaseDate": "2016-02-23" } ], "issuelinks": [ { "id": "52291", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "159315", "key": "TIMOB-23154", "fields": { "summary": "Hyperloop: iOS: Delegate issue crashes app", "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 } } } } ], "assignee": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2016-07-28T22:13:22.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": "13715", "name": "Hyperloop", "description": "Hyperloop project" }, { "id": "10206", "name": "iOS", "description": "iOS Platform" }, { "id": "10207", "name": "Tooling" } ], "description": "I posted this first (at length) with all the info and how to reproduce over on SO here : \r\n\r\nhttp://stackoverflow.com/questions/35663301/hyperloop-is-re-writing-source-js-then-failing-subsequent-clean-builds\r\n\r\nI've just updated to the latest 5.2.0.GA and am trying a simple Hyperloop test app.\r\n\r\nBuilding the app causes references to hyperloop code in the source JavaScript to be re-written. Then it will fail the next rebuild due to Skipping Hyperloop compile, no usage found ... error, since JS code was re-written...\r\n\r\n", "attachment": [], "flagged": false, "summary": "Hyperloop is re-writing source JS then failing subsequent clean builds", "creator": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "subtasks": [], "reporter": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "environment": null, "closedSprints": [ { "id": 628, "state": "closed", "name": "2016 Sprint 10 Tooling", "startDate": "2016-05-07T00:55:11.479Z", "endDate": "2016-05-21T00:55:00.000Z", "completeDate": "2016-05-23T02:09:17.953Z", "originBoardId": 121 } ], "comment": { "comments": [ { "id": "378065", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "This issue is related to the Hyperloop metabase, updating labels accordingly.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-02-28T12:49:31.000+0000", "updated": "2016-02-28T12:49:31.000+0000" }, { "id": "382931", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "I think it's an expected behavior for Hyperloop to rewrite the JS files in the Resource folder. I would suggest that you can stick to the alloy format, and edit files in the app folder instead so that hyperloop can work it's magic in the Resource folder. [~hansknoechel] Am i right?\r\n\r\nHowever, there is definitely a bug with regards to building after a ti clean. This PR will address that\r\nhttps://github.com/appcelerator/hyperloop.next/pull/18\r\n\r\nh4. Steps to test\r\n1. *appc new*\r\n2. install the hyperloop module locally\r\n3. *appc ti build -p ios*\r\n4. *appc ti clean*\r\n5. *appc ti build -p ios*\r\n6. repeat step 5\r\n\r\nh4. Expected result\r\napp will build with no error for all the steps above.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-04-18T05:23:16.000+0000", "updated": "2016-04-18T05:23:16.000+0000" }, { "id": "382958", "author": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "body": "*Nothing* should be permanently modifying my (Re)*source* JavaScript files at all. It renders them useless for the next build. \r\n\r\nI do not use Alloy at all. Always 'classic'. I do not want or intend to use Alloy. And if anything, Hyperloop will make it even easier for me to avoid having to do so. \r\n\r\nI have yet to get Hyperloop to work as demonstrated and instructed. Has anyone? \r\n\r\nThe docs are in a PDF (seriously?).\r\nThe link on the main Labs page links to a version 1.1.0 Beta : http://labs.appcelerator.com/project/55f74a9f421c44837717716b/Hyperloop-Module \r\nThe Example Application contains version 1.0.1. \r\n\r\nSo what's going on? What version should people be trying to use? Why is this even a discussion? It's not working as expected. \r\n\r\n\r\n", "updateAuthor": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "created": "2016-04-18T09:13:13.000+0000", "updated": "2016-04-18T09:13:13.000+0000" }, { "id": "382959", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~kosso] I haven't been active in the hyperloop project, which is why i asked and addressed the rest of the team about the re-writing just to check. \r\n\r\nPlease understand that hyperloop hasn't productised and is still in the labs, so things aren't completely functional and documenting is not up to par. But our team is actively working hard on the project, and soon it will be much more stable and documents will be clearer when it GAs.\r\n\r\nThank you for your patience, and these reports are of great help to us, and we greatly appreciate it.\r\n", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-04-18T09:28:13.000+0000", "updated": "2016-04-18T09:28:13.000+0000" }, { "id": "382960", "author": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "body": "Hi. I totally understand that it's not released yet. Please clarify, document and link to a *working* version for those us who spend our own time trying to help get these projects to a state of productisation. Or we just waste our time. :)\r\n\r\nI've watched a couple of video demonstrations of the features of Hyperloop and neither of them had their actual source JavaScript re-written after building the apps. \r\n\r\n\r\n\r\n\r\n", "updateAuthor": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "created": "2016-04-18T09:35:47.000+0000", "updated": "2016-04-18T09:35:47.000+0000" }, { "id": "382961", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hi [~kosso], thanks for your feedback! The fact that we have a 1.0.0 in labs and 1.0.1 in hyperloop-examples is my fault, you can blame me for that ;-). We will update both this week after one outstanding blocker and this ticket are resolved. Thank you!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-04-18T10:01:27.000+0000", "updated": "2016-04-18T10:01:27.000+0000" }, { "id": "382965", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Agreed. Hyperloop should NOT modify any files that aren't in the {{build}} directory. This includes the {{Resources}} directory and {{tiapp.xml}}.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-04-18T11:22:57.000+0000", "updated": "2016-04-18T11:22:57.000+0000" }, { "id": "383164", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Just tested the latest version and it does not seem to work with classic projects:\r\n1. ti create\r\n2. install the hyperloop module + plugin locally \r\n3. Copy the required tiapp flags:\r\n{code:xml}\r\ntrue\r\n\r\n true\r\n\r\n{code}\r\n5. Insert one Hyperloop component e.g. app.js:\r\n{code:javascript}\r\nvar UIView = require(\"UIKit/UIView\");\r\n{code}\r\n4. Run the project: {{ti build -p ios}}\r\n5. Inspect the error:\r\n{code}\r\n[INFO] Starting Hyperloop assembly\r\n[DEBUG] Using Hyperloop library -> libhyperloop-jscore.a\r\n[DEBUG] [Hyperloop] No CocoaPods file found\r\n[DEBUG] No change, skipping /Users/hans/Desktop/test/Resources/app.js\r\n[DEBUG] No change, skipping /Users/hans/Desktop/test/Resources/colorpicker.js\r\n[INFO] Skipping Hyperloop compile, no usage found ...\r\n[TRACE] Forcing regeneration of wrappers\r\n[DEBUG] Generating stubs\r\nCaught exception: TypeError: Cannot convert undefined or null to object\r\n{code}\r\n6. Run the project again: {{ti build -p ios}}\r\n7. Watch the logs:\r\n{code}\r\n[WARN] Hyperloop is currently available in Beta and should not be used for production applications.\r\n[INFO] Starting Hyperloop assembly\r\n[DEBUG] Using Hyperloop library -> libhyperloop-jscore.a\r\n[DEBUG] [Hyperloop] No CocoaPods file found\r\n[DEBUG] No change, skipping /Users/hans/Desktop/test/Resources/app.js\r\n[DEBUG] No change, skipping /Users/hans/Desktop/test/Resources/colorpicker.js\r\n[INFO] Skipping Hyperloop compile, no usage found ...\r\n[TRACE] Symbol references up-to-date\r\n[DEBUG] Skipping stub generation\r\n[INFO] Finished Hyperloop assembly in 0.98 seconds\r\n{code}\r\n8. The build now succeeds, but throws a new error:\r\n{code}\r\nCouldn't find module \"hyperloop/uikit/uiview for architecture ...\r\n{code}\r\n9. Inspect the above app.js and notice, that the contents have been rewritten to:\r\n{code:javascript}\r\nvar UIView = require(\"hyperloop/uikit/uiview\");\r\n{code}", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-04-19T17:00:42.000+0000", "updated": "2016-04-19T17:34:31.000+0000" }, { "id": "383169", "author": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "body": "Now, when you look at your app.js, has it changed \r\n\r\n{{require('UIKit/UIView')}} \r\n\r\nto \r\n\r\n{{require('hyperloop/uikit/uiview')}} \r\n\r\n?\r\n", "updateAuthor": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "created": "2016-04-19T17:29:26.000+0000", "updated": "2016-04-19T17:29:26.000+0000" }, { "id": "383171", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~kosso] Just updated my comment, yes it does.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-04-19T17:34:45.000+0000", "updated": "2016-04-19T17:34:45.000+0000" }, { "id": "383967", "author": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "body": "I think we made a business decision early on to only support Alloy projects. We'll need to make changes to support classic which I think is ok", "updateAuthor": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-04-26T18:02:41.000+0000", "updated": "2016-04-26T18:02:41.000+0000" }, { "id": "383974", "author": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "body": "For this to work with both classic and alloy, i'm going to need to re-write a bit of the plugin... not too bad, but will take me a few hours. i'm working on it now.", "updateAuthor": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-04-26T18:54:52.000+0000", "updated": "2016-04-26T18:54:52.000+0000" }, { "id": "384984", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/hyperloop.next/pull/27", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-05-06T10:47:03.000+0000", "updated": "2016-05-06T10:47:03.000+0000" }, { "id": "385131", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "h4. Steps to test\r\n1. With the latest PR, do *./build.sh*\r\n2. Using latest 5.4.0 master(i used *5.4.0.v20160508201414*), create a new classic project *appc new --t titanium --classic*\r\n3. in tiapp.xml, include these properties:\r\n{code}\r\n true\r\n \r\n \ttrue\r\n \r\n \t\r\n\t\thyperloop\r\n\t\r\n\t\r\n\t\thyperloop\r\n\t\r\n{code}\r\n4. install the built hyperloop module in hyperloop.next/dist into this new project\r\n5. overwrite app.js with https://gist.github.com/hansemannn/3ea14512f894bc507a5cea57336b7f77\r\n6. *appc run -p ios*\r\n\r\nh4. Expected Result\r\napp.js content does not change.\r\n\r\nHere's the environment i used:\r\nappc cli core 5.3.0-43\r\nappc npm 4.2.5-5\r\nxcode 7.3\r\n", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-05-09T11:50:46.000+0000", "updated": "2016-05-09T11:50:46.000+0000" }, { "id": "385132", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "h4. Steps to test\r\n1. With the latest PR, do *./build.sh*\r\n2. Using latest 5.4.0 master(i used *5.4.0.v20160508201414*), create a new classic project *appc new --t titanium --classic*\r\n3. in tiapp.xml, include these properties:\r\n{code}\r\n true\r\n \r\n \ttrue\r\n \r\n \t\r\n\t\thyperloop\r\n\t\r\n\t\r\n\t\thyperloop\r\n\t\r\n{code}\r\n4. install the built hyperloop module in hyperloop.next/dist into this new project\r\n5. overwrite app.js with https://gist.github.com/hansemannn/3ea14512f894bc507a5cea57336b7f77\r\n6. *appc run -p ios*\r\n\r\nh4. Expected Result\r\napp.js content does not change. on device and on simulator.\r\n\r\nHere's the environment i used:\r\nappc cli core 5.3.0-43\r\nappc npm 4.2.5-5\r\nxcode 7.3\r\ndevice: iPhone 6s plus iOS 9.3.1", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-05-09T11:53:10.000+0000", "updated": "2016-05-09T11:57:35.000+0000" }, { "id": "385209", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "After building Hyperloop 1.2.0 from PR https://github.com/appcelerator/hyperloop.next/pull/27, I was able to:\r\n* Install a Classic and Alloy app to an iOS device/simulator.\r\n* Install a Classic and Alloy app to an Android device/emulator.\r\n* Install multiple times from a clean and dirty builds i.e. {{appc ti clean}}.\r\n\r\nTested on:\r\n\r\nHyperloop: 1.2.0\r\nAppc CLI NPM: 4.2.5-5\r\nAppc CLI Core: 5.3.0-44\r\nArrow: 1.7.31\r\nSDK: 5.4.0.v20160509073931\r\nNode: v4.4.0\r\nOS: El Capitan (10.11.4)\r\nXcode: 7.3\r\nDevices: iphone simulator (9.3), iphone 6 plus (9.1), Nexus S (6.0), Android Emulator (5.0)", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-05-09T22:58:50.000+0000", "updated": "2016-05-09T22:58:50.000+0000" }, { "id": "385242", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~wluu] Just to be sure, you added Hyperloop-related content in your app, e.g. {{var UIView = require(\"UIKit/UIView\");}}?", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-05-10T06:29:08.000+0000", "updated": "2016-05-10T06:29:08.000+0000" }, { "id": "385246", "author": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "body": "If someone can provide a link to a pre-built 1.2.0 hyperloop module I can try this too. \r\nI'm updated everywhere else. \r\n\r\nThanks. I'm excited to get this working. ;)", "updateAuthor": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "created": "2016-05-10T07:16:06.000+0000", "updated": "2016-05-10T07:16:06.000+0000" }, { "id": "385303", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~hansknoechel], Yep. Used your gist here for iOS: https://gist.github.com/hansemannn/3ea14512f894bc507a5cea57336b7f77. And, used the Hyperloop label example for Android; this part:\r\n{code}\r\n\tvar TextView = require('android.widget.TextView'),\r\n\t\tActivity = require('android.app.Activity'),\r\n\t\tColor = require('android.graphics.Color'),\r\n\t\tView = require('android.view.View'),\r\n\t\tTypedValue = require('android.util.TypedValue'),\r\n\t\tTypeface = require('android.graphics.Typeface'),\r\n\t\tactivity = new Activity(Ti.Android.currentActivity);\r\n{code}", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-05-10T17:14:22.000+0000", "updated": "2016-05-10T17:14:22.000+0000" }, { "id": "385305", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Thanks Wilson, just merged! [~kosso]: As we are near code-freeze for 5.4.0, there will probably not be another public beta before GA release in mid-june.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-05-10T17:22:42.000+0000", "updated": "2016-05-10T17:22:42.000+0000" }, { "id": "385312", "author": { "name": "bgarcia", "key": "bgarcia", "displayName": "Brian García", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@hansKnoechel so no chance of testing the bug fixes? I've a few ones that I would like to test. Thanks!", "updateAuthor": { "name": "bgarcia", "key": "bgarcia", "displayName": "Brian García", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2016-05-10T17:44:06.000+0000", "updated": "2016-05-10T17:44:23.000+0000" }, { "id": "385313", "author": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "body": "Thanks @Hans. \r\n\r\nDo you have a link to the 1.2.0 Hyperloop module zip? I'm on the 5.4.0+ SDK. \r\n", "updateAuthor": { "name": "kosso", "key": "kosso", "displayName": "kosso", "active": true, "timeZone": "Europe/London" }, "created": "2016-05-10T17:55:06.000+0000", "updated": "2016-05-10T17:55:06.000+0000" }, { "id": "391555", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as fixed. Verified that if you use Hyperloop in your classic or Alloy project, then JS will not fail on subsequent clean/dirty builds.\r\n\r\nNote: Applied the workaround from TIMOB-23629 first in order to verify the fix.\r\n\r\nTested on:\r\n\r\nAppc CLI NPM: 4.2.7\r\nAppc CLI Core: 5.4.0-35\r\nArrow: 1.8.2\r\nSDK: 5.4.0.v20160725003348\r\nNode: v4.4.7\r\nOS: Mac OS X (10.11.6)\r\nXcode: 7.3.1\r\nDevices: iphone 6 plus (9.1), iphone 6s simulator (9.3)", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-07-26T20:41:47.000+0000", "updated": "2016-07-26T20:41:47.000+0000" } ], "maxResults": 23, "total": 23, "startAt": 0 } } }