{ "id": "120176", "key": "TIMOB-15275", "fields": { "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": "17608", "name": "Release 6.1.0", "archived": false, "released": true, "releaseDate": "2017-05-26" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-01-30T19:52:11.000+0000", "created": "2013-09-18T22:24:28.000+0000", "epic": { "id": 82102, "key": "TIMOB-5909", "name": "iOS: Convert codebase to ARC", "summary": "iOS: Convert codebase to ARC", "color": { "key": "color_1" }, "done": false }, "priority": { "name": "High", "id": "2" }, "labels": [ "move-to-arc" ], "versions": [], "issuelinks": [ { "id": "52562", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "82102", "key": "TIMOB-5909", "fields": { "summary": "iOS: Convert codebase to ARC", "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": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false } } } }, { "id": "32009", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "109059", "key": "TIMOB-12558", "fields": { "summary": "iOS: Allow external modules to use ARC", "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": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-02-01T22:24:48.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": "Based on the request as part of TIMOB-12558, this is to enable ARC by default in all newly-created Titanium Mobile Module projects. The current workflow is that a user must manually tweak the project to enable it.", "attachment": [], "flagged": false, "summary": "iOS: Enable ARC by default in Titanium Mobile Module projects", "creator": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 796, "state": "closed", "name": "2017 Sprint 02 SDK", "startDate": "2017-01-15T00:00:41.845Z", "endDate": "2017-01-29T00:00:00.000Z", "completeDate": "2017-01-30T21:10:44.640Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "304425", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "It's possible to use ARC (and really - the whole project will be much better off if converted), but some macros generate warnings when ARC is turned on for a module project.\r\nFor example: ENSURE_UI_THREAD_0_ARGS . ", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-05-12T18:51:04.000+0000", "updated": "2014-05-12T18:51:04.000+0000" }, { "id": "405170", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "The migration is pretty straight forward. The above macro is causing the (typical ARC) warning {{PerformSelector may cause a leak because its selector is unknown}} because we call {{performSelector}} without knowing what the selector is. But hand over the responsibility of the selector to the developer, it's normal to mute this LLVM diagnostic warning by using the {{-Warc-performSelector-leaks}} statement for that specific macro. \r\n\r\nAfter all, we could consider this change for 6.2.0 as a preparation of the 7.0.0 changes coming with the ARC core migration.\r\n\r\n*EDIT*: The above warning can be addressed as the following:\r\n{code:objc}\r\n#define ENSURE_UI_THREAD_1_ARG(x)\t\\\r\nif (![NSThread isMainThread]) { \\\r\n\tSEL callback = _cmd;\\\r\n_Pragma(\"clang diagnostic push\") \\\r\n_Pragma(\"clang diagnostic ignored \\\"-Warc-performSelector-leaks\\\"\") \\\r\n\tTiThreadPerformOnMainThread(^{[self performSelector:callback withObject:x];}, NO);\\\r\n_Pragma(\"clang diagnostic pop\") \\\r\n return; \\\r\n} \\\r\n{code}\r\nlike suggested in the Apple forums and StackOverflow - by leaving the responsibility of the usage to the dev, just like before.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-01-24T13:47:37.000+0000", "updated": "2017-01-24T14:08:20.000+0000" }, { "id": "405376", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/8795", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-01-26T13:50:44.000+0000", "updated": "2017-01-26T13:50:44.000+0000" }, { "id": "406076", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Can verify that these changes have been implemented however testing will need to be done for this in a separate ticket.\r\nTested with;\r\nMacOS 10.11.6 (15G31)\r\nStudio 4.8.1.201612050850\r\nTi SDK 6.0.2.20161221155621 and 6.1.0.v20170131132207\r\nAppc NPM 4.2.8\r\nAppc CLI 6.2.0-12\r\nTi CLI 5.0.11\r\nAlloy 1.9.6\r\nArrow 1.10.2\r\nXcode 8.2 (8C38)\r\nNode v4.6.0\r\nJava 1.7.0_80", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-02-01T22:24:24.000+0000", "updated": "2017-02-01T22:24:24.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }