{ "id": "99918", "key": "TIMOB-10674", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" }, { "id": "14097", "description": "Sprint 2012-18 Core", "name": "Sprint 2012-18 Core", "archived": true, "released": true, "releaseDate": "2012-09-10" }, { "id": "14275", "description": "2012 Sprint 18", "name": "2012 Sprint 18", "archived": true, "released": true, "releaseDate": "2012-09-10" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-09-04T21:29:30.000+0000", "created": "2012-08-27T13:23:31.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "core", "qe-port" ], "versions": [ { "id": "13572", "description": "Release 2.1.1", "name": "Release 2.1.1", "archived": true, "released": true, "releaseDate": "2012-07-31" }, { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "20521", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "100401", "key": "TIMOB-10746", "fields": { "summary": "iOS: Tooling: building apps fails when adding a plug-in tag in the tiapp.xml", "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": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2012-11-19T09:48:33.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": "10207", "name": "Tooling" } ], "description": "Add a \"finalize\" hook to the plug-in build script so that a plug-in gets a chance to cleanup in case a plug-in build exits before post-build hook is invoked.", "attachment": [ { "id": "30918", "filename": "my.plugin-0.1.zip", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-30T17:45:33.000+0000", "size": 905, "mimeType": "application/zip" } ], "flagged": false, "summary": "Tooling: Add a Finalize Hook into the plugin build script", "creator": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "217110", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "h3. Testing Notes\r\n\r\n* Download the attached zip file, put it in the Titanium root dir (e.g., /Library/Application Support/Titanium in OSX), and unzip it.\r\n\r\n* Verify that Titanium/plugins/my.plugin exists.\r\n\r\n* Create a new Titanium Mobile app in Titanium Studio.\r\n\r\n* It doesn't matter what's in app.js.\r\n\r\n* Edit the tiapp.xml to include reference to the plugin:\r\n\r\n{code}\r\n\r\n my.plugin\r\n\r\n{code}\r\n\r\n* Build the app to Android Emulator. Watch the console to see that at the end of the build there is an INFO message indicating that the my.plugin finalize function has run.\r\n\r\n* Build the app to Android Device. Again look for that message.\r\n\r\n* Build the app to iPhone Simulator. After it launches, exit the simulator, check for the finalizer INFO message.\r\n\r\n* Build the app to iPhone device, and watch for the finalizer INFO message.\r\n\r\nh4. Verify the finalize runs on failures too\r\n\r\nh5. iPhone\r\n\r\n* I can't find a code path after the plugins are loaded in iPhone builder.py (circa line 1103) for which I can make a suggestion how to break the build easily. So _manually_ edit iphone/builder.py in the unzipped SDK folder and add {{raise NameError(\"Hi There\")}} right inside the {{try}} block that is circa line 1116. In case builder.py changes significantly by the time you run these tests, I mean the {{try}} block whose first executable statement is {{os.chdir(iphone_dir)}}.\r\n\r\n* Run the app to iPhone Simulator.\r\n\r\n* It should fail and you should still see the message that the plugin's finalize method is running.\r\n\r\nh5. Android\r\n\r\n* Create a file in the app's Resources/ folder named {{_test.js}} (note the leading underscore). Just put a line of Javascript in it, like maybe {{Ti.API.info(\"blah\");}}.\r\n\r\n* Run the app to Android Emulator.\r\n\r\n* The build will fail (files starting with underscores are not allowed) but the plugin's finalize method should still show that it's running.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-30T17:45:48.000+0000", "updated": "2012-09-04T10:19:27.000+0000" }, { "id": "217111", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Pull request ready:\r\n\r\nhttps://github.com/appcelerator/titanium_mobile/pull/2858", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-30T17:46:45.000+0000", "updated": "2012-08-30T17:46:45.000+0000" }, { "id": "227839", "author": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified on:\r\nTitanium Studio: 3.0.0.201211131839\r\nTitanium SDK:3.0.0.v20121113170203", "updateAuthor": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-19T09:48:11.000+0000", "updated": "2012-11-19T09:48:11.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }