Gemfile.dev.rb is moving

plugins

#1

Since ManageIQ started using bundler for dependency management years ago, people have had the need to bring their own dependencies. On January 4, 2012 @jrafanie added Gemfile.dev.rb with the goal of being a single place to simply declare additional dependencies just for yourself. Now the Gemfile could shed some of its conditionals and contain only the dependencies that the application should ship with.
Since then we’ve had the requirement to support something more than just a developer patch. Something that can allow you to drop in multiple files, each adding their own dependencies. Something that can be used in production allowing deployments to easily productize, quickly drop in extra features or add customer dependencies. On March 26, 2015 Ian Page Hands added support for loading additional dependencies from bundler.d/*.rb. This support goes all the way back to the botvinnik branch.
This brings me to the future of Gemfile.dev.rb. It has bothered me that we have duplicate code (and a huge comment) in the Gemfile for loading additional dependencies (Gemfile.dev.rb and bundler.d/*.rb). So, I created a PR to deprecate Gemfile.dev.rb with the intent to remove it in early July. Until then, you will receive a warning as long as the file exists. To continue using the functionality provided by Gemfile.dev.rb, simply move it into the bundler.d directory. You can even get creative and rename it to something more fun (as long as it ends in .rb) or split its content into several files.

If you have any questions, please reply here and I’ll be happy to answer them.


#2

2 things … there’s similar logic for Gemfile.dev.rb in manageiq-ui-classic too (and possibly other plugins?), so we may want to get rid of both…

Another thing (mostly because I think this may trip a few people up…) … simply moving Gemfile.dev.rb to bundler.d doesn’t work when you have relative paths in there.


#3

@bdunne, @himdel makes a good point and we should try to be consistent in the 2 repos. This is why I like the “deprecate for a few months” strategy as we can vet out these potential inconsistencies.