{ "id": "108615", "key": "ALOY-488", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [ { "id": "15909", "description": "Alloy 1.5.0", "name": "Alloy 1.5.0", "archived": false, "released": true, "releaseDate": "2014-09-29" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-08-19T04:52:51.000+0000", "created": "2013-01-26T22:14:34.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "qe-manualtest" ], "versions": [ { "id": "14634", "description": "Alloy 1.0.0", "name": "Alloy 1.0.0", "archived": false, "released": true, "releaseDate": "2013-02-19" } ], "issuelinks": [], "assignee": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "updated": "2014-08-25T22:06:55.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": "13604", "name": "Tooling", "description": "Items related to Alloy tooling and workflow" } ], "description": "During the compile process Alloy will attempt to remove files from the Resources directory that are no longer present anywhere in the \"app\" folder. Alloy searches a number of locations in the \"app\" folder to see if the file is an orphan or not. False negatives should be avoided as they will leave unused files in the project. False positives on the other hand are not really worrisome since those resources will be recreated on the next compile anyway. \r\n\r\nWith that in mind, there are currently false positives for orphan file deletion for builtins and widgets. Builtins and widgets will be pulled in fresh each time. Again, this will not negatively impact a developer's build process or app in any way, it would just be more true to the logic if these files were left alone during the orphan cleanup phase.", "attachment": [], "flagged": false, "summary": "Orphan file cleanup deletes builtins and widget assets", "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, "closedSprints": [ { "id": 180, "state": "closed", "name": "2014 Sprint 17 Alloy", "startDate": "2014-08-18T15:31:24.649Z", "endDate": "2014-09-01T15:31:00.000Z", "completeDate": "2014-09-02T07:53:26.447Z", "originBoardId": 124 } ], "comment": { "comments": [ { "id": "318653", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "PR https://github.com/appcelerator/alloy/pull/507\r\n\r\nFunctional test:\r\n\r\n1. Create a new Alloy project, then replace its app folder with that of the test/apps/testing/ALOY\\-488 test app (you can't use the jake scripts to test this PR)\r\n2. Build the app once. Examine the Resources/_platform_/alloy/ folder and you'll see the presence of two folders for the two widgets included in this app: starwidget & foo.\r\n3. Edit config.json to remove the dependency on the foo widget. (It's not actually used in the app)\r\n4. Build the app again. The Resources/_platform_/alloy/widgets/foo folder and contents are removed. The app will function properly with the starwidget, as it is correctly kept in the build.\r\n\r\nPrior to this PR, if you removed a widget from a project, its files would remain behind in the Resources directory. PR also includes comment fixes and a fix for a code error with an incorrect call to the die() function.", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-08-14T14:32:59.000+0000", "updated": "2014-08-14T14:32:59.000+0000" }, { "id": "319216", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "**APPROVED**", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2014-08-19T04:52:15.000+0000", "updated": "2014-08-19T04:52:15.000+0000" }, { "id": "319217", "author": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "body": "PR merged", "updateAuthor": { "name": "fmiao", "key": "fmiao", "displayName": "Feon Sua Xin Miao", "active": true, "timeZone": "America/Vancouver" }, "created": "2014-08-19T04:52:51.000+0000", "updated": "2014-08-19T04:52:51.000+0000" }, { "id": "320047", "author": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified working as expected. Widget folder is deleted if the widget is no more included in the dependencies.\r\n\r\nTiSDK 3.4.0.v20140820125714\r\nAppcelerator Studio 3.4.0.201408201526 \r\nCLI 3.4.0-dev\r\nAlloy 1.5.0-dev\r\nXcode6-beta5\r\n\r\nTest case added.\r\n\r\nClosing.", "updateAuthor": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-08-23T01:17:09.000+0000", "updated": "2014-08-23T01:17:09.000+0000" }, { "id": "320225", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "Closing as per Federico's comment.", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2014-08-25T22:06:23.000+0000", "updated": "2014-08-25T22:06:23.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }