{ "id": "108042", "key": "TIMOB-12419", "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": [ { "id": "14164", "description": "Release 3.0.2", "name": "Release 3.0.2", "archived": true, "released": true, "releaseDate": "2013-02-19" }, { "id": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" }, { "id": "14980", "description": "2013 Sprint 02 JS", "name": "2013 Sprint 02 JS", "archived": true, "released": true, "releaseDate": "2013-01-28" }, { "id": "14812", "description": "2013 Sprint 02", "name": "2013 Sprint 02", "archived": true, "released": true, "releaseDate": "2013-01-28" }, { "id": "14981", "description": "2013 Sprint 03 JS", "name": "2013 Sprint 03 JS", "archived": true, "released": true, "releaseDate": "2013-02-11" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-02-08T02:38:44.000+0000", "created": "2013-01-17T11:27:15.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "build", "cli", "cli-review", "qe-port" ], "versions": [], "issuelinks": [ { "id": "25629", "type": { "id": "10001", "name": "Cloners", "inward": "is cloned into", "outward": "is cloned from" }, "inwardIssue": { "id": "109404", "key": "TIMOB-12632", "fields": { "summary": "Backport: CLI: Provide option for full simulator builds", "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 } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2013-02-08T23:55:08.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": "By default Ti speeds up simulator builds by sym linking and not pre-compiling js, but for uploads to systems such as pieceable a \"full\" non-symlinked .app build is required.\r\n\r\nPieceable provided some patches for SDK 1.8 and 2.0. See: https://github.com/pieceable/titanium-patches but none since.\r\n\r\nI think it would be a useful option anyway and would avoid having to patch.\r\n\r\nPlease consider adding a \"buildfull\" option to the ti cmd line build options.\r\n\r\n\r\n", "attachment": [], "flagged": false, "summary": "CLI: Provide option for full simulator builds", "creator": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "subtasks": [ { "id": "109404", "key": "TIMOB-12632", "fields": { "summary": "Backport: CLI: Provide option for full simulator builds", "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 } } } ], "reporter": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "environment": "SDK 3+\r\nSimulator builds", "comment": { "comments": [ { "id": "235775", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Good idea! I'll see what I can do.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-01-24T21:57:22.000+0000", "updated": "2013-01-24T21:57:22.000+0000" }, { "id": "235863", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "While being able to force the copy of files instead of symlinking is a decent idea, we will not allow the deploy type to be set to \"production\" for anything other than a packaged build.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-01-25T11:03:51.000+0000", "updated": "2013-01-25T11:03:51.000+0000" }, { "id": "235864", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Also, the Titanium specific static libraries would continue to be symlinked. The libTiCore.a file is 250MB and it seems irresponsible to copy this file around.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-01-25T11:06:22.000+0000", "updated": "2013-01-25T11:06:22.000+0000" }, { "id": "235868", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "Thanks Chris for looking into this.\r\n\r\nI think for Pieceable to work everything needs to be in the simulator package. Even libTiCore etc. Because in essence you copy the package to another machine. My idea was that this is added as something only accessible from the CLI either build.py or titanium that way the responsibility of copy large files around is down to the dev and is used only when needed.", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2013-01-25T12:36:24.000+0000", "updated": "2013-01-25T12:36:24.000+0000" }, { "id": "235957", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Hmm, I see what you mean. Let me get back to you.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-01-25T18:38:29.000+0000", "updated": "2013-01-25T18:38:29.000+0000" }, { "id": "236015", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "Chris,\r\n\r\nInterestingly I don't think libTiCore comes into it. I did this inside the simulator dir for the app.\r\n\r\n{code}\r\nfind . -type l -exec bash -c 'FULLPATH=$(readlink \"{}\"); ORIGPATH=\"{}\"; echo \"Copying $FULLPATH onto $ORIGPATH\"; rm \"$ORIGPATH\"; cp -f \"$FULLPATH\" \"$ORIGPATH\"' \\;\r\n{code}\r\n\r\nThis works for upload to pieceable", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2013-01-25T21:47:22.000+0000", "updated": "2013-01-25T21:47:22.000+0000" }, { "id": "236020", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "libTiCore.a is symlinked into the build/iphone/lib directory.\n\nI added a --force-copy flag that will copy everything (no symlinks) EXCEPT libTiCore.a. I also added a --force-copy-all flag that does everything --force-copy does plus it copies libTiCore.a.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-01-25T22:04:26.000+0000", "updated": "2013-01-25T22:04:26.000+0000" }, { "id": "236032", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "Okay, but the simulator app bundle doesn't contain libTiCore.a. I assume it is linked into the binary.\r\n\r\nIs there a way I can test the new flag?", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2013-01-25T22:47:33.000+0000", "updated": "2013-01-25T22:47:33.000+0000" }, { "id": "236036", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Yes, it's linked into the binary. You can test the new flag once it's been committed. I'm still working things. I'll have something next week.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-01-25T23:00:50.000+0000", "updated": "2013-01-25T23:00:50.000+0000" }, { "id": "236039", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "Thank you. I assume you mean in the CLI update rather than a new SDK version", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2013-01-25T23:11:32.000+0000", "updated": "2013-01-25T23:11:32.000+0000" }, { "id": "236043", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "No, SDK update. iOS build scripts are bundled with the SDK.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-01-25T23:18:54.000+0000", "updated": "2013-01-25T23:18:54.000+0000" }, { "id": "236095", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Master pull request: https://github.com/appcelerator/titanium_mobile/pull/3796\n3.0.x pull request: https://github.com/appcelerator/titanium_mobile/pull/3797", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-01-26T01:53:42.000+0000", "updated": "2013-01-26T01:53:42.000+0000" }, { "id": "236104", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "To test:\n\n1) create a project\n2) build the project for ios simulator: titanium build -p ios\n3) inspect build/iphone/build/Debug-iphonesimulator/appname.app\n4) files such as app.js and appicon.png should be symlinked\n5) now build with --force-copy: titanium build -p ios --force-copy\n6) inspect build/iphone/build/Debug-iphonesimulator/appname.app\n7) files such as app.js and appicon.png should have been copied and are not links", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-01-26T02:15:03.000+0000", "updated": "2013-01-26T02:15:03.000+0000" }, { "id": "237579", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The --force-copy flag works as expected, except in cases where \"ti clean\" is not used. If you build, then rebuild without cleaning, the symlinks remain and the files are not copied.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-07T01:21:39.000+0000", "updated": "2013-02-07T01:21:39.000+0000" }, { "id": "237694", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Master pull request: https://github.com/appcelerator/titanium_mobile/pull/3850", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-02-07T23:18:06.000+0000", "updated": "2013-02-07T23:18:06.000+0000" }, { "id": "237868", "author": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing as fixed.\nTested and verified with:\nTitanium Studio, build: 3.0.2.201302041757\nTitanium SDK, build: 3.0.2.v20130207164659 \nCLI 3.0.24-cr\n", "updateAuthor": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-08T23:54:37.000+0000", "updated": "2013-02-08T23:54:37.000+0000" } ], "maxResults": 16, "total": 16, "startAt": 0 } } }