{ "id": "91516", "key": "TIMOB-9037", "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": [], "resolution": null, "resolutiondate": null, "created": "2012-05-07T17:25:32.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "core", "ft", "ios7", "notable", "planning-3.3.0" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "17143", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "outwardIssue": { "id": "91500", "key": "TIMOB-9022", "fields": { "summary": "CLI: Write initial frontend support", "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": "5", "description": "The sub-task of the issue", "name": "Sub-task", "subtask": true } } } }, { "id": "20587", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "outwardIssue": { "id": "89765", "key": "TIMOB-8652", "fields": { "summary": "Core: Create a new Titanium Command Line Interface", "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": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false } } } }, { "id": "29336", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "115289", "key": "TIMOB-14070", "fields": { "summary": "Implement old transport.py into node based Titanium CLI/SDK", "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": "Low", "id": "4" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "34380", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "outwardIssue": { "id": "124991", "key": "TIDOC-1475", "fields": { "summary": "Document CLI \"export\" command", "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": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "30597", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "117470", "key": "TIMOB-14626", "fields": { "summary": "iOS: Verify compatibility of transport.py and iOS 7(Xcode 5)", "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": "Low", "id": "4" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": null, "updated": "2018-02-28T20:03:41.000+0000", "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" } }, "components": [ { "id": "13103", "name": "CLI", "description": "Node-based command line interface" } ], "description": "Exports a project to a standalone project without any dependencies on Titanium. The arguments will be similar to the build command.", "attachment": [], "flagged": false, "summary": "CLI: Implement \"export\" command", "creator": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "environment": null, "comment": { "comments": [ { "id": "331772", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Current suggested requirements. Feedback appreciated:\r\n\r\n1. Start with implementing for iOS (to replace transport.py), but then implement Android afterwards.\r\n2. -Project exported would need to be able to be modified. Thus, you can edit the JavaScript or other assets.-\r\n3. The resulting project _cannot_ be directly re-imported, so exporting is a one-way street. You could manually copy the modified files back into the original project.\r\n4. The recipient _should_ not need to install any software or tooling to use the resulting project in Xcode. Transport.py appears to have copied the build process (Python files) into a single Python file. Since Python comes pre-installed on OS X, not an issue. Our current process involves Node. I don't believe we can ask recipients to install Node, so we'd need to do something in Python or Bash or ?\r\n5. The Project should be able to run in development or production modes. This means allowing the user to switch the deploy type. This currently is baked into an Objective-C file. We could do this as #defines and allow the user to switch between those using pre-defined targets in Xcode. However, we already have 3 targets in a project (iPhone, iPad , universal). Do we create 9 total targets (3 flavors x 3 deploy types)?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-11-12T07:45:18.000+0000", "updated": "2014-11-12T15:08:37.000+0000" }, { "id": "331773", "author": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I think this covers it as I have seen the requirements from customers.", "updateAuthor": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-11-12T07:48:56.000+0000", "updated": "2014-11-12T07:48:56.000+0000" }, { "id": "331774", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Regarding #2, I think we should NOT allow this. If you want to edit JavaScript files, then you need the original project and Titanium. Once you export, you should not be able to edit the JavaScript, nor can you debug it.\r\n\r\nThere's too much tooling that would need to be packaged up in order to be able to build an app. We'd basically need to ship Node.js, the iOS build script (with changes), titanium_prep, all of the modules, Node dependencies such as Uglify, etc. Rewriting the iOS build process in Python is a really, really bad idea.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2014-11-12T07:54:13.000+0000", "updated": "2014-11-12T07:54:13.000+0000" }, { "id": "331781", "author": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The primary purpose of this is enterprises often have a build master that controls all of the builds that are submitted tot the app store. They usually do not have titanium, so the developer needs to be able to send them an Xcode project they can sign and distribute.", "updateAuthor": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-11-12T08:25:02.000+0000", "updated": "2014-11-12T08:25:02.000+0000" }, { "id": "331795", "author": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "body": "{quote}2. Project exported would need to be able to be modified. Thus, you can edit the JavaScript or other assets.{quote}\r\n\r\nNo, they don't need to be editing. Simply checking entitlements and signing.\r\n\r\n", "updateAuthor": { "name": "sfeather", "key": "sfeather", "displayName": "Stephen Feather", "active": true, "timeZone": "America/New_York" }, "created": "2014-11-12T10:10:58.000+0000", "updated": "2014-11-12T10:10:58.000+0000" }, { "id": "331810", "author": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "body": "Yeh I don't see why editing needs to be a requirement. My only experience with transport.py is so someone else that doesn't have Titanium can package and distribute.", "updateAuthor": { "name": "rblalock", "key": "rblalock", "displayName": "Rick Blalock", "active": false, "timeZone": "America/Havana" }, "created": "2014-11-12T13:05:30.000+0000", "updated": "2014-11-12T13:05:30.000+0000" }, { "id": "331815", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Okay, removed item #2. Two questions:\r\n\r\n1) When we discussed this feature, _another_ goal was to replace scripts like: https://github.com/billdawson/tidevtools/blob/master/ti_eclipsify.py. The issue being that internal developers needed to export the project to open it up in ADT. In this case, It's not clear to me if they need to edit JavaScript.\r\n2) Deployment type. When we export the project--we have two choices:\r\n2a) Do we export it for a specific deployment type, i.e. development (no encryption), test, or production (encryption)\r\n2b) Or we export it encrypted (production) and allow the user to choose a deployment type via Xcode targets (or editing an Objective C file)\r\n2c) Or something else?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-11-12T15:13:59.000+0000", "updated": "2014-11-12T15:13:59.000+0000" }, { "id": "345937", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We've decided that the concept of export will need to change based on the new platform structure. Closing this valiant PR, and we will revisit this in a subsequent reincarnation.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-03-13T05:41:13.000+0000", "updated": "2015-03-13T05:41:13.000+0000" } ], "maxResults": 18, "total": 18, "startAt": 0 } } }