mitchellh / vagrant-rackspace

Use Vagrant to manage Rackspace Cloud instances.
MIT License
235 stars 155 forks source link

Drop Vagrant 1.1 support? #125

Closed maxlinc closed 9 years ago

maxlinc commented 9 years ago

The current plugin says it is a "Vagrant 1.1+ plugin". Vagrant 1.1 is fairly old now. The latest release is 1.6.5. In fact, Vagrant 1.1 is so old it's not even on the Old Versions page anymore.

Vagrant 1.5.0 came out in May and was "the biggest release of Vagrant since 1.1, with dozens of new features and improvements". In addition to all of the new features and improvements, it also moved a lot of logic that was to re-usable components in Vagrant core. I'd like to not just take advantage of the new features, but to remove code that now has an equivalent in Vagrant core.

I'd like to bump the minimum Vagrant version from 1.1 to 1.5 in the next release, so we can cleanup legacy code and use the helpers/middleware from core when possible. Any objections?

@smashwilson @mdarby

smashwilson commented 9 years ago

Personally, what I'd do is check the most-downloaded Vagrant plugins and do a survey of the minimum version requirements for the top maybe five or six, and if they were 1.5+ I'd go ahead and follow suit. I'd trust your judgement on this, though, I don't have a good sense of how often you'd hit a Vagrant installation that old in the wild.

maxlinc commented 9 years ago

It's hard to get good metrics. I don't think Ruby-Toolbox is accurate since Vagrant abandoned RubyGems, and it probably varies a lot by type of plugin. Provider plugins (like Rackspace, VirtualBox, Hyper-V, AWS, etc) are probably the most complex and would gain the most from upgrading.

The claimed versions for providers are all over the place: 1.1+, 1.2+, 1.5+, 1.6.3+.

And those are just README claims - likely not backed by tests. Most plugins have little testing, and those that do likely don't test all the way back to release 1.1. In fact, Vagrant 1.5 includes Plugin Development Improvements, and testing anything older than that is difficult and really needs to be done manually:

With Vagrant 1.1, we both helped and hurt plugin development. Plugin development improved because plugins became a first class supported concept with the vagrant plugin command and much of the core dogfooding the API.

But plugin development was hurt because Vagrant switched to an installer-only model, breaking many plugin development environments and causing some frustrating edge cases.

With Vagrant 1.5, we've made some big changes that should make the life of a plugin developer much more enjoyable.

I also suspect (but don't have stats):

Bottom-line: I think we should create a 1.1-stable branch (or 0.1-stable if you use our versions instead of Vagrant's) and then drop 1.1 support. If someone comes along with a critical bug and is not able to upgrade to Vagrant 1.5 than we can release a fix as 0.1.10 (as well as 0.2.x if it effect 1.5+ as well). I suspect the branch will be DOA but it'll be a useful marker just in case someone needs to send a PR.

smashwilson commented 9 years ago

I think we should create a 1.1-stable branch (or 0.1-stable if you use our versions instead of Vagrant's) and then drop 1.1 support. If someone comes along with a critical bug and is not able to upgrade to Vagrant 1.5 than we can release a fix as 0.1.10 (as well as 0.2.x if it effect 1.5+ as well). I suspect the branch will be DOA but it'll be a useful marker just in case someone needs to send a PR.

This sounds perfectly fine to me, then. :+1: