{"action":"created","issue":{"url":"https://api.github.com/repos/capistrano/capistrano/issues/1655","repository_url":"https://api.github.com/repos/capistrano/capistrano","labels_url":"https://api.github.com/repos/capistrano/capistrano/issues/1655/labels{/name}","comments_url":"https://api.github.com/repos/capistrano/capistrano/issues/1655/comments","events_url":"https://api.github.com/repos/capistrano/capistrano/issues/1655/events","html_url":"https://github.com/capistrano/capistrano/issues/1655","id":151837214,"number":1655,"title":"New dependencies in 3.5","user":{"login":"arteezy","id":192247,"avatar_url":"https://avatars.githubusercontent.com/u/192247?v=3","gravatar_id":"","url":"https://api.github.com/users/arteezy","html_url":"https://github.com/arteezy","followers_url":"https://api.github.com/users/arteezy/followers","following_url":"https://api.github.com/users/arteezy/following{/other_user}","gists_url":"https://api.github.com/users/arteezy/gists{/gist_id}","starred_url":"https://api.github.com/users/arteezy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arteezy/subscriptions","organizations_url":"https://api.github.com/users/arteezy/orgs","repos_url":"https://api.github.com/users/arteezy/repos","events_url":"https://api.github.com/users/arteezy/events{/privacy}","received_events_url":"https://api.github.com/users/arteezy/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-04-29T10:30:07Z","updated_at":"2016-04-29T12:23:13Z","closed_at":"2016-04-29T12:23:12Z","body":"Today I was updating my project's gems and I've noticed something new: `airbrussh` and `capistrano-harrow`. Turns out that the latest version of Capistrano gem (3.5.0) [added 2 new dependencies](https://rubygems.org/gems/capistrano/versions/3.5.0).  First of all, adding new dependencies is considered a kinda bad thing to do, especially in such wide used project as Capistrano. We should make effort to shrink them, not blow them up. \r\n\r\n![harrow](https://cloud.githubusercontent.com/assets/192247/14913723/e2bbd6a0-0e26-11e6-9374-f68d01f8bac2.png)\r\n\r\nSo I thought, maybe these gems were absolutely required to make new version of Capistrano more awesome? What are they doing?\r\n- [airbrussh](https://github.com/mattbrictson/airbrussh) - adds a new way to format Capistrano output. OK, that's a little bit useful, but totally not worth a whole extra dependency. Should be an external plugin or just a part of basic Capistrano gem.\r\n- [capistrano-harrow](https://github.com/harrowio/capistrano-harrow) - integrates Capistrano with [Harrow.io](https://harrow.io) CI web-service. What? So, if I don't use Harrow, this gem does nothing for me? And this dud is installed on _**every machine**_ along with Capistrano gem? \r\n\r\nHarrow doesn't even have a free plan. Everyone is being pushed to use this service and pay money.\r\n\r\nWorst thing is to disable this gem I have to make actions. I have to spent my time and clog my git config. Unbelievable!\r\n\r\nI understand that maintainers of Capistrano are allowed to do anything with their own project. I also understand that their work is often unrewarded and non paid. They've probably created Harrow to support and fund further development of Capistrano. But the way this situation is handled is morally wrong and goes against open source principles. \r\n\r\nImagine if Yehuda Katz added his commercial web-service [Skylight.io](https://www.skylight.io) as a dependency for `bundler` gem, which he also created? Or if DHH added Basecamp as a dependency for Rails? Just, you know, for _easier integration_ in case you'll need it sometime?\r\n"},"comment":{"url":"https://api.github.com/repos/capistrano/capistrano/issues/comments/215697384","html_url":"https://github.com/capistrano/capistrano/issues/1655#issuecomment-215697384","issue_url":"https://api.github.com/repos/capistrano/capistrano/issues/1655","id":215697384,"user":{"login":"leehambley","id":18952,"avatar_url":"https://avatars.githubusercontent.com/u/18952?v=3","gravatar_id":"","url":"https://api.github.com/users/leehambley","html_url":"https://github.com/leehambley","followers_url":"https://api.github.com/users/leehambley/followers","following_url":"https://api.github.com/users/leehambley/following{/other_user}","gists_url":"https://api.github.com/users/leehambley/gists{/gist_id}","starred_url":"https://api.github.com/users/leehambley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leehambley/subscriptions","organizations_url":"https://api.github.com/users/leehambley/orgs","repos_url":"https://api.github.com/users/leehambley/repos","events_url":"https://api.github.com/users/leehambley/events{/privacy}","received_events_url":"https://api.github.com/users/leehambley/received_events","type":"User","site_admin":false},"created_at":"2016-04-29T12:23:12Z","updated_at":"2016-04-29T12:23:12Z","body":"> First of all, adding new dependencies is considered a kinda bad thing to do, especially in such wide used project as Capistrano.\r\n\r\nUnnecessary dependencies maybe, but Airbrussh is a complex project in it's own right with an existing user base, and bundling it into Capistrano and forcing the maintainer to maintain two versions would be unreasonable. The recent trend about trying to strip the number of gem dependencies is a valiant one, but don't make the mistake of assuming *all* dependencies are bad, it's about sizing and making it *worth it*. Airbrussh is a separate gem for the reasons I outlines, and `capistrano-harrow` because it would be unreasonable to bump Capistrano versions every time there was a tweak in the harrow plugin.\r\n\r\n> Harrow doesn't even have a free plan. Everyone is being pushed to use this service and pay money.\r\n\r\nIt has a free plan, and the paid plans directly support the continued work on Capistrano which supports an ever broader range of Ruby and Rails versions, not to mention countless gems, plugins and other languages and frameworks, all of which have to be tested for. I'll make sure to update the pricing page and make that clearer, I'm also surprised, you've picked up `0.4.0` which displays the following message, the first bullet point mentions that it's free:\r\n\r\n<img width=\"508\" alt=\"screenshot 2016-04-29 14 20 01\" src=\"https://cloud.githubusercontent.com/assets/18952/14915754/931dbf98-0e15-11e6-94b1-060100e733c3.png\">\r\n\r\n> I understand that maintainers of Capistrano are allowed to do anything with their own project. I also understand that their work is of...snip...o. But the way this situation is handled is morally wrong and goes against open source principles.\r\n\r\nIf you no longer agree with the terms under which the software is made available there are plenty of options. If you examine the `capistrano-harrow` integration you'll notice it's not even *loaded* unless you are running `cap install` which happens once, and you can answer `no` to the prompt. Morally wrong is also a rather large overstatement. By your standards I might equally accuse you of expecting me to produce software for you without recompense as being morally wrong, but that's neither fair nor accurate. Please avoid personal insults when opening Github issues, it's against Github's code of conduct.\r\n\r\nThe Harrow platform is designed to help me as a maintainer better help people who are running into problems. I had to quit supporting people in IRC and StackOverflow because it's impossible to quickly help people when you can't see what environment they're working in, and you can't assume anything about what they are doing, have done, or are not doing. \r\n\r\nMaking it commercial so that I can dedicate my working life completely to FOSS is a side effect which should lead to more, better, sustainable software for everyone in the long run."}}