{ "id": "117490", "key": "TIMOB-14661", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "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": [], "resolution": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2013-08-07T18:25:17.000+0000", "created": "2013-07-23T15:53:19.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "androidbuild", "cb-verified", "iOS", "plugin" ], "versions": [], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2017-03-23T22:45:59.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": "10202", "name": "Android", "description": "Android Platform" }, { "id": "10207", "name": "Tooling" } ], "description": "You effectively cannot have any plugin if the project is for both Android and iOS. Android currently requires python plugins. iOS currently requires js plugins.\r\n\r\nI ported an old python plugin to a new js plugin for iOS (thanks to the example at http://appersonlabs.com/2013/04/12/titanium-build-plugins-in-sdk-3-x-x/) and it worked great.\r\n\r\nThen I tried to build for Android, and it failed the build saying the plugin is missing. So I created a essentially empty python plugin in that folder:\r\n{code}\r\ndef compile(config)\r\n #don't do anything\r\n #when android gets on board with js plugins, delete me!\r\n myconfig = config\r\n{code}\r\nI then discovered that the Android build actually calls the new js plugin if present, but the function parameters aren't set. I was able to work around this in the js plugin by checking to make sure the parameters aren't null before proceeding. It then calls the empty python plugin as usual, as well as all of my other legacy python plugins (that don't have also .js files in them).\r\n\r\nBut then the iOS plugin silently ceased to be executed. The iOS build silently ignores a js plugin if it also has a python file present. The developer put a comment in the code at about line 292 of /titatium-sdk/lib/titanium.js:\r\n{code}// we don't support plugins that have both a plugin.py and new .js files{code}\r\n\r\nIt would have spared me the time of digging through titanium's code if the developer had put that comment into a log entry. But I digress.\r\n\r\nHopefully the easiest fix is also the best one (in my outside-looking-in opinion): the exact opposite of what is done in the js cli at line 292 above should be done here. Instead of ignoring the js plugin, it should ignore the python file with a debug or warn message. It should not be an error or fail the build. In fact, the js cli already ignores the python plugins, so perhaps all that needs to be done here is to not ignore a js plugin when a py plugin is present.\r\n\r\nI understand if you didn't have time to port android to js along with iOS, but you have effectively broken plugins for both platforms, and that is disappointing to me. It's been coming up on a year since the js cli was released. That's a long time for you to leave us hanging without a prior functionality, or documentation of the new plugin api.\r\n\r\nWhen will android be ported to the new js cli? When you will document the new js plugin api?\r\n", "attachment": [], "flagged": false, "summary": "Cannot have a plugin if the project is for both Android and iOS", "creator": { "name": "strautman", "key": "strautman", "displayName": "Steve Trautman", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "strautman", "key": "strautman", "displayName": "Steve Trautman", "active": true, "timeZone": "America/New_York" }, "environment": "Ti SDK 3.1.1.GA", "comment": { "comments": [ { "id": "265386", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "This is a non-issue. The Android rewrite is underway and is scheduled for release 3.2.0.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-08-07T18:25:17.000+0000", "updated": "2013-08-07T18:25:17.000+0000" }, { "id": "415493", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as Won't Fix with reference to the above comments.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-23T22:45:59.000+0000", "updated": "2017-03-23T22:45:59.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }