{ "id": "155145", "key": "TIMOB-20512", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": "2016-03-15T16:29:58.000+0000", "created": "2016-02-25T21:20:00.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-23T22:29:43.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": "13103", "name": "CLI", "description": "Node-based command line interface" } ], "description": "{quote}As a developer,\r\nI want to be able to be able to use a different version (or custom build) of Alloy when using the Appcelerator CLI,\r\nSo that I can be able to patch urgent issues and critical defects while waiting for a new version of Alloy{quote}.\r\n\r\nWith the old build system (Titanium or Ti), I could simply run `npm install -g alloy@versionx` to get a different or custom build of Alloy used with a build. Now with the new build system (Appcelerator or Appc), A specific version of Alloy is bundled with the Appcelerator Platform and there is not a simple way to change it on all our developer and build machines.\r\n\r\nIf there is known way of doing this already, please let us know!\r\n\r\n{color:#d04437}We have an Enterprise license and this is critical for us right now as we have a memory leak that we need to patch in Alloy and get it into production quickly.{color}\r\n", "attachment": [], "flagged": false, "summary": "Need to be able change version of Alloy that is used with Appc CLI", "creator": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "environment": null, "comment": { "comments": [ { "id": "378629", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello, I have tried to test the issue. This command seems to work \" sudo npm install -g alloy@versionx\". Could you try it out? I tested with 1.7.16. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2016-03-03T20:26:44.000+0000", "updated": "2016-03-03T20:27:47.000+0000" }, { "id": "378634", "author": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "body": "That will install alloy to the npm default location which works for a regular \"ti build\" but when doing an \"appc ti build\", it uses a version of alloy that ships with the Appcelerator Platform in the ~/.appcelerator folder structure (depending on which version).", "updateAuthor": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-03T20:38:52.000+0000", "updated": "2016-03-03T20:38:52.000+0000" }, { "id": "378635", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Yes, I see your point. This seems to be a regression in the platform. Forwarding to engineer's to decide it's future. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2016-03-03T20:43:11.000+0000", "updated": "2016-03-03T20:43:11.000+0000" }, { "id": "378729", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "This is not a regression, as deciding to whether or not install with a -g flag is a developer decision.\r\n[~brentonhouse] you can do this.\r\n1. Go to {{~/.appcelerator/install//package}}\r\n2. *npm install alloy@versionx*\r\n\r\nThat's it. To verify, you can look at package.json in {{/.appcelerator/install/5.2.1-3/package/node_modules/alloy}} to see if the correct version was installed.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-03-04T01:10:15.000+0000", "updated": "2016-03-04T01:10:15.000+0000" }, { "id": "378730", "author": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "body": "I would not say this is a very robust solution. For one, we now have no control over what version of Alloy is installed by Appc. Every time Appc updates (major or minor), it may or may not be changing the version of Alloy. If this happened on one of our machines, we could be potentially building the app with the memory leak defect in it, without being clearly aware of the situation. Also, for myself, this might be fine, but Alloy has to be patched on every developer's machine, every build machine, etc. and these instructions might be lead to other problems if followed incorrectly.\r\n\r\nI would recommend building something into the appc cli that allows you to select or install a custom version of Alloy. ", "updateAuthor": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-04T01:22:17.000+0000", "updated": "2016-03-04T01:22:17.000+0000" }, { "id": "378732", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Point taken. But we want the most stable version of alloy installed together with appc updates. If there's any patch needed or bugs found on alloy, it is still best to file a JIRA so we can look into it and ensure the stable version goes out, without the need for users to manually select or install a custom version.\r\n\r\n", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-03-04T02:45:23.000+0000", "updated": "2016-03-04T02:45:23.000+0000" }, { "id": "378733", "author": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "updateAuthor": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-04T02:49:25.000+0000", "updated": "2016-03-04T02:49:25.000+0000" }, { "id": "378735", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "I see that ticket has already been assigned to the next sprint so it shouldn't take long.\r\nIn fact, will appreciate very much if you could include a test case for it, as mentioned in earlier alloy tickets.\r\nThanks for bringing this up.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-03-04T02:55:19.000+0000", "updated": "2016-03-04T02:55:19.000+0000" }, { "id": "379728", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "[~cbarber] this might be an interesting user story to consider for the refactored build process?", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2016-03-15T09:20:19.000+0000", "updated": "2016-03-15T09:20:19.000+0000" }, { "id": "379757", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Thanks for the suggestion, but we're heading down the road of pulling Alloy into the Titanium SDK. This is slated for Titanium SDK 6. There will be no more standalone Alloy releases once Titanium SDK 6 ships.\r\n\r\nDuring this integration, Alloy's tooling will be overhauled. Many bugs and inconsistencies will be fixed and hopefully no new bugs will be introduced. :) Alloy will be able to take advantage of the build state and hook system. This will improve Alloy's performance and expose Alloy to new features that we couldn't add before because it would break backwards compatibility. Trust me, it's going to be awesome.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-15T16:29:58.000+0000", "updated": "2016-03-15T16:29:58.000+0000" }, { "id": "379775", "author": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "body": "OK. obviously, I don't know the architecture of the new system but I *really* hope it is still relatively painless to augment alloy features the way it is now. Modifying, building and deploying the current Titanium SDK is a much bigger task than I have time to go through on a regular basis.", "updateAuthor": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-15T19:53:32.000+0000", "updated": "2016-03-15T19:53:32.000+0000" }, { "id": "379776", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "I don't see how you use Alloy changing. From a tooling perspective, you'll be able to hook into it and modify things.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-15T19:57:02.000+0000", "updated": "2016-03-15T19:57:02.000+0000" }, { "id": "379780", "author": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "body": "Using existing hooks, I can implement *some* of the features but many I cannot unless I can get into other parts of Alloy. Also, I then have a crazy big alloy.jmk based system that patches everything and holds it together with duct tape. :) Right now, I can get rid of a lot of that and just install a fork of Alloy that is synced downstream from Alloy.", "updateAuthor": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-15T20:17:20.000+0000", "updated": "2016-03-15T20:17:20.000+0000" }, { "id": "379781", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "The Alloy.jmk will be one of the things getting cut, but don't worry, you'll be able to do whatever you want with the hook system.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-15T20:20:25.000+0000", "updated": "2016-03-15T20:20:25.000+0000" }, { "id": "380920", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "[~brentonhouse] as a workaround you can create a global or project [Titanium CLI|http://docs.appcelerator.com/platform/latest/#!/guide/Titanium_CLI_Plugins-section-37549163_TitaniumCLIPlugins-FunctionandEventHooks] hook where all you do is:\r\n\r\n{code:js}\r\ndelete process.env.ALLOY_PATH;\r\n{code}\r\n\r\nThis will make it use the global installed Alloy CLI instead.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2016-03-29T12:48:55.000+0000", "updated": "2016-03-29T12:48:55.000+0000" }, { "id": "380922", "author": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "body": "Thanks [~fokkezb]!! I will try that!", "updateAuthor": { "name": "brentonhouse", "key": "brentonhouse", "displayName": "Brenton House", "active": true, "timeZone": "America/Chicago" }, "created": "2016-03-29T13:06:13.000+0000", "updated": "2016-03-29T13:06:13.000+0000" }, { "id": "381448", "author": { "name": "falko", "key": "falko", "displayName": "Andrey Tkachenko", "active": true, "timeZone": "Europe/Moscow" }, "body": "How to https://gist.github.com/falkolab/da74a5fab2a7226090e357ab68426bf6", "updateAuthor": { "name": "falko", "key": "falko", "displayName": "Andrey Tkachenko", "active": true, "timeZone": "Europe/Moscow" }, "created": "2016-04-04T12:22:53.000+0000", "updated": "2016-04-04T12:22:53.000+0000" }, { "id": "381452", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Excellent [~falko] - will tweet.", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2016-04-04T12:57:07.000+0000", "updated": "2016-04-04T12:57:07.000+0000" }, { "id": "415439", "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:29:43.000+0000", "updated": "2017-03-23T22:29:43.000+0000" } ], "maxResults": 19, "total": 19, "startAt": 0 } } }