{ "id": "173558", "key": "TIMOB-27043", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": "20412", "name": "Release 8.1.0", "archived": false, "released": true, "releaseDate": "2019-08-13" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-06-06T21:35:53.000+0000", "created": "2019-04-30T08:52:17.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [ { "id": "19882", "name": "Release 8.0.0", "archived": false, "released": true, "releaseDate": "2019-03-14" } ], "issuelinks": [ { "id": "57614", "type": { "id": "10011", "name": "Includes", "inward": "is included by", "outward": "includes" }, "outwardIssue": { "id": "172906", "key": "TIMOB-26761", "fields": { "summary": "iOS: Checking every single file modification makes larger apps really slow", "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": "57679", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "173727", "key": "TIMOB-27135", "fields": { "summary": "Android: Broken incremental builds when using encrypted assets or referencing JS from HTML", "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": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "57609", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "173223", "key": "TIMOB-26917", "fields": { "summary": "iOS: App builds containing large amounts of JS files are extremely slow", "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 } } } } ], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2019-06-25T11:39:57.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": "The build times for apps was already increased in TIMOB-26917 by processing JS files in parallel. However, we still process JS on every build, ignoring wether they were changed or not.\r\n\r\nFurther improvements to the build time could be achieved by using the file change detection from [appc-tasks|https://github.com/appcelerator/appc-tasks]. This would only process the JS files that actually changed and avoid unnecessary transpilation and analyzation steps on every build.", "attachment": [], "flagged": false, "summary": "Cache JS processing between builds", "creator": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "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": 1129, "state": "closed", "name": "2019 Sprint 10", "startDate": "2019-04-28T22:06:00.000Z", "endDate": "2019-05-17T22:06:00.000Z", "completeDate": "2019-05-20T16:48:42.522Z", "originBoardId": 114 }, { "id": 1146, "state": "closed", "name": "2019 Sprint 13", "startDate": "2019-06-18T06:36:49.723Z", "endDate": "2019-07-01T06:36:00.000Z", "completeDate": "2019-07-01T16:45:24.126Z", "originBoardId": 114 }, { "id": 1136, "state": "closed", "name": "2019 Sprint 11", "startDate": "2019-05-18T17:39:52.830Z", "endDate": "2019-05-31T17:39:00.000Z", "completeDate": "2019-06-04T21:37:11.485Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "448147", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/10805", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-05-02T14:18:33.000+0000", "updated": "2019-05-02T14:18:33.000+0000" }, { "id": "448630", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~lchoudhary], this can be tested with any larger app, like our mocha test suite or KitchenSink for example. Compare the app build times against 8.0.1.GA and you should see significantly faster build times on incremental builds.\r\n\r\nThe following test cases should be considered:\r\n\r\n*Clean build*\r\nNo changes expected here. Clean build times should be roughly the same as prior.\r\n\r\n*Incremental build, no files changes*\r\nA subsequent build without any changes to JS files should be significantly faster. For the mentioned example projects it should be around 4 - 6 seconds.\r\n\r\n*Incremental build, files changed (modified, deleted)*\r\nThe build should only be marginally slower than the test case without any changes. Make sure that the changes are properly reflected in the app.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-05-23T22:16:25.000+0000", "updated": "2019-05-23T22:16:25.000+0000" }, { "id": "448722", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR Passed.\r\nWaiting for Jenkins to merge.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-05-29T21:05:27.000+0000", "updated": "2019-05-29T21:05:27.000+0000" }, { "id": "448810", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Can someone PLEASE merge this. CR approved, FR approved and we use it like 100 times each day. Cherry-picking this each time we update master is hell. It just needs 2 merge conflicts to be resolved and should be fine then.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-06-04T14:21:09.000+0000", "updated": "2019-06-04T14:21:09.000+0000" }, { "id": "448854", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "merged to master and 8_1_X.\r\n\r\nOnly open issue here I see is the arbitrary limit of 8 files in parallel that was used. I think this can be opened up to a much higher number. When I was testing the changes to improve build times on iOS (TIMOB-26917), I also tried various limits and found that using the \"default\" limit of 256 with async.eachLimit worked fine, and that lowering it just negatively impacted performance. I think I also tried higher limits and found that there were diminishing returns past the default that it wasn't worth trying to find some magic number, it's really more about trying to avoid the OS open file limit.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2019-06-05T13:47:33.000+0000", "updated": "2019-06-05T13:47:33.000+0000" }, { "id": "448856", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "For now, I've bumped to max up to 256 instead of 8.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2019-06-05T13:51:09.000+0000", "updated": "2019-06-05T13:51:09.000+0000" }, { "id": "448879", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~jquick], found that on android device builds the subsequent build fails with this improvement:\r\n{code}\r\n[ERROR] : Failed to compile Java source files:\r\n[ERROR] : \r\n[ERROR] : /Users/lchoudhary/Desktop/workspaces/workspace_2019/kitchensink-v2-master/build/android/gen/com/appcelerator/kitchensink/KitchensinkApplication.java:40: error: cannot find symbol\r\n[ERROR] : \t\tKrollAssetHelper.setAssetCrypt(new AssetCryptImpl());\r\n[ERROR] : \t\t ^\r\n[ERROR] : symbol: class AssetCryptImpl\r\n[ERROR] : location: class KitchensinkApplication\r\n[ERROR] : Note: /Users/lchoudhary/Desktop/workspaces/workspace_2019/kitchensink-v2-master/build/android/gen/com/appcelerator/kitchensink/KitchensinkApplication.java uses unchecked or unsafe operations.\r\n[ERROR] : Note: Recompile with -Xlint:unchecked for details.\r\n[ERROR] : 1 error\r\n[ERROR] Application Installer abnormal process termination. Process exit value was 1\r\n{code}\r\n\r\nThis issue is not seen on Android emulator.\r\n\r\nThis PR was not tested on Android device as I misread its for IOS only & not for android.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-06-05T22:40:50.000+0000", "updated": "2019-06-05T22:42:01.000+0000" }, { "id": "448882", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~gmathews] and I have written up a separate ticket regarding the Android build issues this PR is currently causing. Please see: [TIMOB-27135]", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-06-06T03:59:10.000+0000", "updated": "2019-06-06T03:59:10.000+0000" }, { "id": "448905", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-06-06T21:35:53.000+0000", "updated": "2019-06-06T21:35:53.000+0000" }, { "id": "449322", "author": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "body": "*Closing ticket*, improvement verified in SDK Version {{8.1.0.v20190619134801}} and SDK version {{8.2.0.v20190624144716}}\r\n\r\nTest and other information can be found at: \r\nhttps://github.com/appcelerator/titanium_mobile/pull/10945\r\nhttps://github.com/appcelerator/titanium_mobile/pull/10958", "updateAuthor": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-06-25T11:39:49.000+0000", "updated": "2019-06-25T11:39:49.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }