yonaskolb / Mint

A package manager that installs and runs executable Swift packages
MIT License
2.28k stars 122 forks source link

Added support for installing gems #171

Closed acecilia closed 4 years ago

acecilia commented 4 years ago

I recently had one of those days in which after countless hours fighting gems, bundle 2.0.0, global gems, vendored gems, gemfile, gemfile.lock, RVM, rbenv, binstubs, ruby versions, the CI server... I gave up. I just wanted a a way to specify a group of gems with a fixed version, and install them in a globally accessible location of my machine or the CI server, without the need of prefixing their invocation with bundle exec! How complex can it be... 🤦‍♀️ At some point in the middle of my frustration I came up with the idea that maybe Mint is able to install binary gems, same way it installs swift command line tools.

It may be a bit mind cracking that Mint, the swift package manager, supports installing gems. But if you think about it:

yonaskolb commented 4 years ago

Hi @acecilia. I appreciate the effort here, but it's not really something I'd like to add at this stage. Mint is focused on installing Swift packages and doing that well. The amount of support and maintenance gems would bring is not something I want to deal with. If you'd like to start a new project using MintKit as a library then go for it! 😄 Hope you understand, thanks

acecilia commented 4 years ago

Hey @yonaskolb. I understand your point of view.

From my side, I believe that the feature that this PR introduces is something valuable, not only for swift devs, but for anybody that needs a gem installed globally. The extra support required is not that much: most of the job delegates on the command line tool, and what mint does, which is linking and managing the versions, is mostly independent on running swift or gem.

Anyway, thanks for the great tool!

acecilia commented 4 years ago

@yonaskolb do you think it is possible to include this functionality in mint as a plugin (or similar)? So I can maintain a repo with the plugin, and still allow mint users to opt-in to this functionality?