{ "id": "104045", "key": "ALOY-351", "fields": { "issuetype": { "id": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true }, "parent": { "id": "112795", "key": "ALOY-620", "fields": { "summary": "Reduce compile time", "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": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [ { "id": "15403", "description": "Alloy 1.3.0", "name": "Alloy 1.3.0", "archived": false, "released": true, "releaseDate": "2013-12-20" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-08-07T20:59:07.000+0000", "created": "2012-10-29T18:47:31.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [], "versions": [], "issuelinks": [], "assignee": null, "updated": "2018-03-07T22:25:45.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": "13605", "name": "Models" }, { "id": "12329", "name": "Runtime", "description": "Generic bucket for uncategorized runtime issues" } ], "description": "Currently all Alloy builtin sync adapters are included in built applications. We should inspect the application's models and include only the sync adapters which are necessary to run the app. This will reduce both compile time and the overall size of the app.", "attachment": [], "flagged": false, "summary": "Only include sync adapters when necessary", "creator": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "226299", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The only reasonable to do this now would be to inspect the model files and look for the adapters used. Unfortunately since models are defined as JS and not JSON, we'd need to parse the file into AST and look for the adapter type that way. That would defeat the purpose of this ticket which is decreasing the amount of JS files processed as AST. We'll defer this ticket until we can come up with a more creative, faster way to determine which adapters to include.\n\nOne thought would be to add an *adapters* field to the config.json where the developer could specify which adapters the app will use. If the *adapters* field is absent, import all adapters just as we do now.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-06T14:40:08.000+0000", "updated": "2012-11-06T14:40:08.000+0000" }, { "id": "265446", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/alloy/pull/213\r\ntest app: https://github.com/appcelerator/alloy/tree/master/test/apps/testing/ALOY-351\r\n\r\nFunctional testing should be confirmed on all supported platform. Follow these steps with the given test app.\r\n\r\n# Run the test app\r\n# Inspect the compile log. Make sure that no sync adapters were copied into the project or optimized.\r\n# Add one more sync adapters to the \"adapters\" array in the config.json file\r\n{code:javascript}\r\n{\r\n \"adapters\": [\"sql\",\"properties\"]\r\n}\r\n{code}\r\n# Compile the app again. Ensure that only the \"sql\" and \"properties\" adapter were copied into the project, and that those were the only adapters optimized.\r\n# Remove \"properties\" from the config.json\r\n{code:javascript}\r\n{\r\n \"adapters\": [\"sql\"]\r\n}\r\n{code}\r\n# Ensure that the \"properties\" adapter was removed from the project, that the \"sql\" adapter remains in it, and that the \"sql\" adapter is the only adapter that gets optimized.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-07T20:59:07.000+0000", "updated": "2013-08-07T20:59:07.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }