{ "id": "91682", "key": "TIMOB-9086", "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": "13271", "description": "Release 2.1.0", "name": "Release 2.1.0", "archived": false, "released": true, "releaseDate": "2012-06-29" }, { "id": "13404", "description": "Sprint 2012-12 Core", "name": "Sprint 2012-12 Core", "archived": true, "released": true, "releaseDate": "2012-06-17" }, { "id": "14097", "description": "Sprint 2012-18 Core", "name": "Sprint 2012-18 Core", "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-04T16:49:23.000+0000", "created": "2012-05-09T17:16:51.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "core", "qe-and040912" ], "versions": [ { "id": "13273", "description": "Release 2.0.2", "name": "Release 2.0.2", "archived": false, "released": true, "releaseDate": "2012-05-31" }, { "id": "13272", "description": "Release 2.0.1", "name": "Release 2.0.1", "archived": true, "released": true, "releaseDate": "2012-04-16" } ], "issuelinks": [ { "id": "20283", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "88077", "key": "TIMOB-8056", "fields": { "summary": "Android: Error when resolving modules in Linux", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "20203", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "98540", "key": "TIMOB-10290", "fields": { "summary": "Android: Modules with upper case in project name fails to create with internal error.", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "20204", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "99265", "key": "TIMOB-10478", "fields": { "summary": "Tooling: Module packaging does not maintain upper-case letters in the module name", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "20205", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "99400", "key": "ALOY-188", "fields": { "summary": "Remove toLowerCase() in installModule() when linked ticket is resolved", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "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 } } } }, { "id": "17206", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "91683", "key": "TISTUD-1648", "fields": { "summary": "Titanium Studio: Modules: android modules created on command line cannot be packaged in studio", "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": "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": "2017-03-06T22:34:58.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": "When creating a new module from either the command line or studio, the specified name is not respected. It is replaced by \"titanium-\". However, the project is initially created with a correct project directory name.\r\n\r\nSteps to Reproduce:\r\n\r\n1. Create an android module (remove it from the project explorer if created in studio).\r\n2. Import the module into studio (note: the module may have to be removed from the workspace directory first).\r\n\r\nExpected Result:\r\n\r\nThe project name should be the one specified during creation (and the module directory name).\r\n\r\nActual Result:\r\n\r\nThe project name is \"titanium-\".", "attachment": [ { "id": "27625", "filename": "import android module from workspace.png", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-09T17:49:12.000+0000", "size": 190146, "mimeType": "image/png" }, { "id": "27622", "filename": "project name not respected.png", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-09T17:16:51.000+0000", "size": 28628, "mimeType": "image/png" } ], "flagged": false, "summary": "Android: Tooling: project name not respected when creating new module", "creator": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "SDK: 2.0.1.GA2, 2.0.2.v20120505151714\r\nStudio: 2.0.1, 2.0.2.201205081556\r\nOS: Windows 7, Snow Leopard", "comment": { "comments": [ { "id": "194357", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This also creates problems when a module is created in studio and saved to the workspace, then reimported from the workspace. The import will fail due to the name conflict, screenshot attached.", "updateAuthor": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-09T17:49:00.000+0000", "updated": "2012-05-09T17:49:00.000+0000" }, { "id": "197747", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "for latest status see also linked issue (TISTUD-1648)", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-06-07T13:06:26.000+0000", "updated": "2012-06-07T13:06:26.000+0000" }, { "id": "197748", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "for latest status see also linked issue (TISTUD-1648)", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-06-07T13:06:27.000+0000", "updated": "2012-06-07T13:06:27.000+0000" }, { "id": "197858", "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/2355", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-06-08T09:56:48.000+0000", "updated": "2012-06-08T09:56:48.000+0000" }, { "id": "216057", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Reopening, this is not completely fixed.\r\n\r\nIf a new android module is created with uppercase characters, only lowercase characters exist in the module directory and project name.\r\n\r\nTitanium Studio: 2.1.2.201208201549\r\nTitanium SDK: 2.1.2.v20120821160113\r\nOS: Mountain Lion 10.8.1\r\nXcode: 4.4\r\nAndroid SDK: r20.0.3\r\nAndroid NDK: r8b\r\nBrowser: Safari 6.0\r\n\r\nThis is both a parity and usability issue with related consequences.", "updateAuthor": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-08-24T13:45:54.000+0000", "updated": "2012-08-25T22:08:56.000+0000" }, { "id": "216137", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Just ran across this today in fact. The reason is because module.py (which is called from titanium.py) says:\r\n\r\n{code}\r\nself.project_name = config['name'].lower()\r\n{code}\r\n\r\nSo, it would seem this was done by design.\r\n", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2012-08-25T21:56:08.000+0000", "updated": "2012-08-25T21:56:08.000+0000" }, { "id": "216352", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "TIMOB-8056 forced lower-case for android. Any fix for this item will need to test the fail case in TIMOB-8056.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-27T16:55:07.000+0000", "updated": "2012-08-27T16:55:07.000+0000" }, { "id": "216790", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "h2. Testing Notes\r\n\r\n*IMPORTANT NOTE*: Make sure you use the titanium.py in the PR branch! (Some people have titanium.py aliased in their shell (e.g., BASH) -- just make sure you're really using mine when you test.)\r\n\r\nThe command-line invocations in these instructions specify just \"titanium.py\". If that's not in your PATH (or not aliased somehow) you'll need to adjust the command-line appropriately so that you run the titanium.py in the PR branch.\r\n\r\nh3. Module Creation and Build on Command Line\r\n\r\nh4. iOS\r\n\r\n* Enter the following in a terminal window:\r\n\r\n{code}\r\ntitanium.py create --type=module --platform=iphone --name=IphoneModule --id=ti.test\r\n{code}\r\n\r\n* Make sure no errors occur when you enter that.\r\n\r\n* Make sure the created module directory is named IphoneModule.\r\n\r\n* Go into the module directory and run {{python build.py}}.\r\n\r\n* There should be no errors and the file ti.test-iphone-0.1.zip should appear in the directory.\r\n\r\nh4. Android\r\n\r\n*NOTE*: Must test on OSX, Linux, Windows!!\r\n\r\n* Enter the following in a terminal window / command-prompt:\r\n\r\n{code}\r\ntitanium.py create --type=module --platform=android --name=AndroidModule --id=ti.test\r\n{code}\r\n\r\n* Make sure no errors occur when you enter that.\r\n\r\n* Make sure the created module directory is named AndroidModule.\r\n\r\n* Go into the module directory and run {{ant}}.\r\n\r\n* It should end with \"BUILD SUCCESSFUL\" and in the dist/ directory you should see androidmodule.jar and ti.test-android-0.1.zip.\r\n\r\nh4. MobileWeb\r\n\r\n*NOTE*: Must test on OSX, Linux, Windows!!\r\n\r\n* Enter the following in a terminal window / command-prompt:\r\n\r\n{code}\r\ntitanium.py create --type=module --platform=mobileweb --name=MobileWebModule --id=ti.test\r\n{code}\r\n\r\n* Make sure no errors occur when you enter that.\r\n\r\n* Make sure the created module directory is named MobileWebModule.\r\n\r\n* Go into the module directory and run {{python build.py}}.\r\n\r\n* You should get no errors, and the file ti.test-mobileweb-0.1.zip should be created.\r\n\r\nh3. Module Project Import into Titanium Studio\r\n\r\nh4. iOS\r\n\r\n* In Titanium Studio import the IphoneModule project you created above and accept the default project name it suggests to you.\r\n\r\n* The project name should be \"IphoneModule\".\r\n\r\n* Use Studio's Package menu (in the App Explorer view) to re-package the module.\r\n\r\n* When it finishes, you should end up with a ti.test-iphone-0.1.zip in whichever directory you told Studio to put it.\r\n\r\nh4. Android\r\n\r\n*NOTE*: Must test on OSX, Linux, Windows!!\r\n\r\n* In Titanium Studio import the AndroidModule project you created above and accept the default project name it suggests to you.\r\n\r\n* The project name should be \"AndroidModule\".\r\n\r\n* Use Studio's Package menu (in the App Explorer view) to re-package the module.\r\n\r\n* When it finishes, you should end up with a ti.test-android-0.1.zip in whichever directory you told Studio to put it.\r\n\r\nh4. MobileWeb\r\n\r\n*NOTE*: Must test on OSX, Linux, Windows!!\r\n\r\n* In Titanium Studio import the MobileWebModule project you created above and accept the default project name it suggests to you.\r\n\r\n* The project name should be \"MobileWebModule\".\r\n\r\n* Use Studio's Package menu (in the App Explorer view) to re-package the module.\r\n\r\n* When it finishes, you should end up with a ti.test-mobileweb-0.1.zip in whichever directory you told Studio to put it.\r\n\r\nh3. Creation and Build of Module Project in Titanium Studio\r\n\r\nh4. iOS\r\n\r\n* In Studio, create a Titanium Mobile Module Project.\r\n\r\n* Enter \"NewIphoneModule\" as the project name and \"ti.test2\" as the id.\r\n\r\n* Be sure \"iOS\" is selected as the deployment target.\r\n\r\n* Be sure \"Titanium SDK Version\" points to the build and release of my branch (i.e., be sure you're testing my changes.)\r\n\r\n* When you're finished, the project name as it appears in the App Explorer (or Project Explorer) should indeed be \"NewIphoneModule\".\r\n\r\n* Use Studio's Package menu (in the App Explorer view) to package the module.\r\n\r\n* When it finishes, you should end up with a ti.test2-iphone-0.1.zip in whichever directory you told Studio to put it.\r\n\r\nh4. Android\r\n\r\n*NOTE*: Must test on OSX, Linux, Windows!!\r\n\r\n* In Studio, create a Titanium Mobile Module Project.\r\n\r\n* Enter \"NewAndroidModule\" as the project name and \"ti.test2\" as the id.\r\n\r\n* Be sure \"Android\" is selected as the deployment target.\r\n\r\n* Be sure \"Titanium SDK Version\" points to the build and release of my branch (i.e., be sure you're testing my changes.)\r\n\r\n* When you're finished, the project name as it appears in the App Explorer (or Project Explorer) should indeed be \"NewAndroidModule\".\r\n\r\n* Use Studio's Package menu (in the App Explorer view) to package the module.\r\n\r\n* When it finishes, you should end up with a ti.test2-android-0.1.zip in whichever directory you told Studio to put it.\r\n\r\nh4. MobileWeb\r\n\r\n*NOTE*: Must test on OSX, Linux, Windows!!\r\n\r\n* In Studio, create a Titanium Mobile Module Project.\r\n\r\n* Enter \"NewMobileWebModule\" as the project name and \"ti.test2\" as the id.\r\n\r\n* Be sure \"Mobile Web\" is selected as the deployment target.\r\n\r\n* Be sure \"Titanium SDK Version\" points to the build and release of my branch (i.e., be sure you're testing my changes.)\r\n\r\n* When you're finished, the project name as it appears in the App Explorer (or Project Explorer) should indeed be \"NewMobileWebModule\".\r\n\r\n* Use Studio's Package menu (in the App Explorer view) to package the module.\r\n\r\n* When it finishes, you should end up with a ti.test2-mobileweb-0.1.zip in whichever directory you told Studio to put it.\r\n\r\nh3. Testing All the Built Modules\r\n\r\n*NOTE* Must test on OSX, Linux and Windows!!\r\n\r\n* Install all 6 of the module zips you built above as you normally would any module zip. (I.e., on OS X, copy up to /Library/Application Support/Titanium and unzip). When testing on Linux and Windows it will be only 4 zips, of course.\r\n\r\n* Create a new Titanium Mobile application project in Titanium Studio. Be sure to target the SDK built from the pull request.\r\n\r\n* Change the tiapp.xml to include the modules. Use either the GUI interface in Studio for it or edit tiapp.xml manually like this:\r\n\r\n{code}\r\n\r\n\tti.test\r\n\tti.test2\r\n\tti.test\r\n\tti.test2\r\n\tti.test\r\n\tti.test2\r\n\r\n{code}\r\n\r\n(Remove the iphone lines on Windows and Linux, of course.)\r\n\r\n* Replace app.js with this:\r\n\r\n{code:title=\"app.js\"}\r\nTitanium.UI.setBackgroundColor('#444');\r\nvar win = Titanium.UI.createWindow({ \r\n title:'Test',\r\n backgroundColor:'#444',\r\n\texitOnClose: true\r\n});\r\n\r\nvar logLabel;\r\n\r\nwin.add(logLabel = Ti.UI.createLabel({\r\n\t backgroundColor: \"#444\", text: \"\",\r\n\t left: 16, right: 16, top: 16, bottom: 16,\r\n\t verticalAlign: Ti.UI.TEXT_VERTICAL_ALIGNMENT_TOP\r\n}));\r\n\r\nvar log = function(s) {\r\n\tTi.API.info(s);\r\n\tlogLabel.text += s + \"\\n\";\r\n};\r\n\r\nvar testMod = function(id) {\r\n\tlog(\"From \" + id + \": \" + require(id).example());\r\n};\r\n\r\ntestMod(\"ti.test\");\r\ntestMod(\"ti.test2\");\r\n\r\nwin.open();\r\n{code}\r\n\r\n* Run the app on iOS, Android and MobileWeb (when testing on Windows and Linux, of course you don't need to run on iOS). You should get output that looks like:\r\n\r\n{code}\r\nFrom ti.test: hello world\r\nFrom ti.test2: hello world\r\n{code}\r\n", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-08-29T09:18:23.000+0000", "updated": "2012-08-29T15:23:13.000+0000" }, { "id": "217375", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Pull request\r\n\r\nhttps://github.com/appcelerator/titanium_mobile/pull/2854", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-09-04T03:55:19.000+0000", "updated": "2012-09-04T03:55:19.000+0000" }, { "id": "409423", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket due to time passed.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-06T22:34:58.000+0000", "updated": "2017-03-06T22:34:58.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }