{ "id": "173717", "key": "DAEMON-279", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false }, "project": { "id": "12519", "key": "DAEMON", "name": "Appcelerator Daemon" }, "fixVersions": [ { "id": "20774", "description": "", "name": "Appc Daemon 2.3.0", "archived": false, "released": true } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-07-01T18:33:50.000+0000", "created": "2019-06-05T03:08:12.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2019-07-01T18:33:50.000+0000", "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" } }, "components": [ { "id": "15804", "name": "node-ios-device" } ], "description": "{{node-ios-device}} uses nan (Native Abstractions for Node.js) and whenever there's a new major version of Node, something breaks.\r\n\r\n To future-proof {{node-ios-device}}, we need to adopt Node's N-API.", "attachment": [], "flagged": false, "summary": "node-ios-device: Refactor to use N-API", "creator": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "environment": null, "closedSprints": [ { "id": 1141, "state": "closed", "name": "2019 Sprint 12", "startDate": "2019-06-03T22:00:37.435Z", "endDate": "2019-06-14T22:00:00.000Z", "completeDate": "2019-06-15T03:44:20.826Z", "originBoardId": 114 }, { "id": 1149, "state": "closed", "name": "2019 Sprint 14", "startDate": "2019-07-01T16:55:04.813Z", "endDate": "2019-07-14T16:55:00.000Z", "completeDate": "2019-07-15T15:41:02.311Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "449255", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "PR: https://github.com/appcelerator/node-ios-device/pull/47\r\n\r\nh4. Testing Prerequisites\r\n\r\nXcode, Node, npm, and iOS devices, lots of iOS devices.\r\n\r\nh4. Testing Steps\r\n\r\n1. Check out the source and build:\r\n\r\n{code}\r\ngit clone https://github.com/appcelerator/node-ios-device.git\r\ncd node-ios-device\r\ngit checkout -b v2 origin/v2\r\nnpm i\r\n{code}\r\n\r\n2. You should probably manually open {{test/TestApp/TestApp.xcodeproj}} and build it to make sure the provisioning profiles are in order.\r\n\r\n3. Run the unit tests:\r\n\r\n{code}\r\nnpm test\r\n{code}\r\n\r\nThe tests will install the TestApp. Midway through the tests, it will print a message to launch the TestApp on device. You have 15 seconds. Go!\r\n\r\n4. Run the CLI:\r\n\r\n{code}\r\nnode bin/node-ios-device\r\n\r\nnode bin/node-ios-device ls\r\n\r\nnode bin/node-ios-device watch\r\n\r\nnode bin/node-ios-device install test/TestApp/build/Release-iphoneos/TestApp.app\r\n\r\nnode bin/node-ios-device syslog \r\n\r\nnode bin/node-ios-device forward 12345 \r\n{code}\r\n\r\nh4. Testing Cases\r\n\r\n* Node.js ^8.12.0 and >= 10.2.0\r\n* macOS Mojave and Catalina\r\n* 0 to 2 devices\r\n* iPhones, iPads, whatever you have\r\n* Unplug device while performing an action\r\n\r\nKeep an eye out for fatal errors: seg faults, mutex lock fails, libuv close errors, deadlocks, and other nasty issues.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2019-06-21T06:49:19.000+0000", "updated": "2019-06-21T14:25:03.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }