{ "id": "121821", "key": "ALOY-866", "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" }, { "id": "15753", "description": "2013 Sprint 22", "name": "2013 Sprint 22", "archived": true, "released": true, "releaseDate": "2013-11-01" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-10-30T19:33:32.000+0000", "created": "2013-10-30T15:53:14.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [], "issuelinks": [], "assignee": null, "updated": "2018-03-07T22:26:02.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": "12329", "name": "Runtime", "description": "Generic bucket for uncategorized runtime issues" }, { "id": "13604", "name": "Tooling", "description": "Items related to Alloy tooling and workflow" } ], "description": "app.js is recompiled on every build now. We should only rebuild when changes occur to the app.js, or alloy is compiled for a platform for which is has not already compiled (meaning it has not already generated a platform-specific app.js).\r\n\r\nNOTE: We also need to consider source maps when doing this.", "attachment": [], "flagged": false, "summary": "Only recompile app.js 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": "277393", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/alloy/pull/265\r\n\r\nFunctional testing:\r\n\r\n# Create a default alloy app\r\n# compile the app for ios with {{alloy compile --platform ios}}\r\n# Make sure you see the following line in the alloy log:\r\n{code}\r\n[INFO] [app.js] Titanium entry point processing...\r\n[TRACE] - Processing \"builtins\" module...\r\n[TRACE] - Processing \"optimizer\" module...\r\n[TRACE] - Processing \"compress\" module...\r\n[INFO] created: \"Resources/iphone/app.js\"\r\n[DEBUG] map: \"build/map/Resources/iphone/app.js.map\"\r\n{code}\r\n# After the compile completes, run it again. This time you should see the following instead in the log:\r\n{code}\r\n[INFO] [app.js] using cached app.js...\r\n{code}\r\n# Now, compile for a different platform, {{alloy compile --platform android}}\r\n# You should see a log similar to step 3, citing the android folders this time\r\n# Compile again for android, and you should see a log like step 4\r\n# GO back and compile again for ios. It should still use the cached app.js, since it is contained in the platform-specific folder and was not overwritten by our android testing. \r\n# Make a change to the alloy.js and then compile for both android and ios. Both should generate a log as in step #3 the first time, then the log in step #4 on all subsequent builds.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-10-30T19:33:32.000+0000", "updated": "2013-10-30T19:33:32.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }