{ "id": "82102", "key": "TIMOB-5909", "fields": { "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "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": [], "resolution": null, "resolutiondate": null, "created": "2011-10-28T13:29:31.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "ARC" ], "versions": [ { "id": "11971", "description": "iOS5 and select Android fixes", "name": "Release 1.7.3", "archived": true, "released": true, "releaseDate": "2011-10-18" } ], "issuelinks": [ { "id": "25438", "type": { "id": "10001", "name": "Cloners", "inward": "is cloned into", "outward": "is cloned from" }, "inwardIssue": { "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 } } } }, { "id": "40007", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "133961", "key": "TIMOB-17438", "fields": { "summary": "OpenSky Security Concerns - (Security Configuration) ARC not enabled", "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 } } } }, { "id": "52562", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "120176", "key": "TIMOB-15275", "fields": { "summary": "iOS: Enable ARC by default in Titanium Mobile Module projects", "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": null, "updated": "2018-10-03T11:08:20.000+0000", "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" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "h6.Feature Request\r\nIt would be nice if we could convert Titanium Mobile codebase for iOS to use ARC.\r\n{quote}\r\nAutomatic Reference Counting (ARC) for Objective-C makes memory management the job of the compiler. By enabling ARC with the new Apple LLVM compiler, you will never need to type retain or release again, dramatically simplifying the development process, while reducing crashes and memory leaks. The compiler has a complete understanding of your objects, and releases each object the instant it is no longer used, so apps run as fast as ever, with predictable, smooth performance.\r\n{quote}\r\n\r\nh6.Transitioning to ARC Release Notes\r\nAutomatic Reference Counting (ARC) is a compiler feature that provides automatic memory management of Objective-C objects. Rather than having to think about retain and release operations, ARC allows you to concentrate on the interesting code, the object graphs, and the relationships between objects in your application.\r\n\r\n!ARC_Illustration.jpg|thumbnail!\r\n\r\nApple docs: [here|https://developer.apple.com/library/ios/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html].", "attachment": [ { "id": "56819", "filename": "ARC_Illustration.jpg", "author": { "name": "egomez", "key": "egomez", "displayName": "Eduardo Gomez", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-09-25T22:31:44.000+0000", "size": 66021, "mimeType": "image/jpeg" } ], "flagged": false, "summary": "iOS: Convert codebase to ARC", "creator": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "subtasks": [], "reporter": { "name": "mofle", "key": "mofle", "displayName": "Sindre Sorhus", "active": true, "timeZone": "Europe/Oslo" }, "environment": null, "comment": { "comments": [ { "id": "315363", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Yes, valid. Though we need to scope it.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-22T22:09:01.000+0000", "updated": "2014-07-22T22:09:01.000+0000" }, { "id": "315384", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "A quick scan suggests that there are hundreds of quick fixes to remove 'autorelease' and RELEASE_TO_NIL references. After that, there seem to be some issues that probably will take longer to test/fix, but nothing really hard stands out to me.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-22T23:14:55.000+0000", "updated": "2014-07-22T23:14:55.000+0000" }, { "id": "315431", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "I'm guessing some JIRA issues will automagically be fixed once we update to ARC, and lots of future issues prevented. Well worth the effort.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-07-23T06:13:52.000+0000", "updated": "2014-07-23T06:13:52.000+0000" }, { "id": "315603", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "Can I just check that an assessment of impact on pre-existing 3rd party ios modules has been done. I don't know enough about the Ti build chain, but just wanted to make sure this had been thought about. Thanks", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2014-07-24T09:47:24.000+0000", "updated": "2014-07-24T09:47:24.000+0000" }, { "id": "315607", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~ndastur] Is your concern that a 3rd party module would need to be updated in order to continue working with a ARC-converted SDK?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-07-24T12:55:39.000+0000", "updated": "2014-07-24T12:55:39.000+0000" }, { "id": "315608", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "Yes. And support for various modules varies so it might have quite an impact. \r\n\r\nIt might be that as modules are compiled into a static library it doesn't matter and xcode will happily link. I think the option to use arc or not occurs at the source build level", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2014-07-24T13:35:46.000+0000", "updated": "2014-07-24T13:35:46.000+0000" }, { "id": "315613", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2014-07-24T14:35:05.000+0000", "updated": "2014-07-24T14:35:05.000+0000" }, { "id": "341689", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2015-02-02T19:14:03.000+0000", "updated": "2015-02-02T19:14:03.000+0000" }, { "id": "344140", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "I guess not using ARC is not an option anymore :) https://developer.apple.com/news/?id=02202015a", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-02-23T12:38:59.000+0000", "updated": "2015-02-23T12:38:59.000+0000" }, { "id": "344142", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "The announcement from Apple pertains to Mac OS X apps, not iOS apps. Still, it probably indicates what Apple will require for iOS apps in the future. Thanks for making us aware of the new policy.", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2015-02-23T14:19:52.000+0000", "updated": "2015-02-23T14:19:52.000+0000" }, { "id": "344152", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Whoops, you're right, I missed to notice that. And yeah, it's good indicate it'll come to iOS too. Cheers.", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-02-23T17:08:59.000+0000", "updated": "2015-02-23T17:08:59.000+0000" }, { "id": "344156", "author": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "This should not be a difficult ticket, most of the changes are fairly mechanical to do. It will magically fix many existing bugs, I'm sure.... e.g. the example above with the nav buttons.", "updateAuthor": { "name": "mokesmokes", "key": "mokesmokes", "displayName": "Mark Mokryn", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2015-02-23T17:45:11.000+0000", "updated": "2015-02-23T17:45:11.000+0000" } ], "maxResults": 19, "total": 19, "startAt": 0 } } }