Having received a new car, I took the opportunity to try something new. RVM is great and I use gemsets, but after reading a few blog posts, I decided to use the switch for rbenv and use the middleware to manage my gems exclusively, as described in Ruby Rogue 45 .
I donβt collaborate much, and if I do, itβs usually with one or two other people.
The supplierβs documentation indicates how to pack gems into the vendor/cache directory by running:
$ bundle package $ bundle install --local
Great private gems that can be checked in the original management; I believe deployment on a clean server or collaboration is easier?
However, if you check your Gemfile and Gemfile.lock in the original control, then what does the bundle package need?
Ryan McGiry advocates this approach on this blog in early 2011 and on another blog on 2010, Yehuda Katz says:
You might want to install your associated gems in another location, such as a directory in the application itself. This ensures that each application has its own copy of gemstones and provides an additional level of isolation.
This isolation is like gemsets, I suppose, and I can imagine, when you have a huge list of system stones, it would be hard to know which ones are really used by your applications.
So, pack your gems using the app?
Does anyone do this? Is this practice obsolete?
What is the best practice and what are the advantages / disadvantages of linking gemstones in the application?