# Bootstrap fails when plugin file specifies gem version range

**URL:** https://meta.discourse.org/t/bootstrap-fails-when-plugin-file-specifies-gem-version-range/82896
**Category:** Development
**Created:** [13 maart 2018 om 13:06 UTC](https://meta.discourse.org/t/bootstrap-fails-when-plugin-file-specifies-gem-version-range/82896 "2018-03-13T13:06:32Z")
**Posts on this page:** 1
**Showing post:** 7

<div class="post-metadata">

### Author: ![jonathon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathon/32/265865_2.png) [@jonathon](https://meta.discourse.org/u/jonathon)
#### Post date: [19 maart 2018 om 11:55 UTC](https://meta.discourse.org/t/bootstrap-fails-when-plugin-file-specifies-gem-version-range/82896/7 "2018-03-19T11:55:27Z")

</div>

We’re obviously talking at cross-purposes here.

I want to be able to specify a gem version range in my plugin, as is legal, as subversion/point releases of gems should maintain backwards-compatibility and only introduce bugfixes.

Attempting to install a plugin which includes a (legal) gem version range fails and does not generate an explicit error message.

Without wanting to put words in your mouth, you appear to be saying this is not supported because you (by policy rather than a technical reason) use explicit gem versions in plugins, and so this should be detected during plugin development.

_The following questions are rhetorical._

* * *

So - at what point is it made clear that plugins should only use explicit gem versions because of your (internal?) development methodology?

For example, it’s not in [https://github.com/discourse/discourse/blob/master/docs/VAGRANT.md](https://github.com/discourse/discourse/blob/master/docs/VAGRANT.md) or in [https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md](https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md), or following the links from [discourse/CONTRIBUTING.md at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/master/CONTRIBUTING.md) to [Contributing to Discourse development](https://meta.discourse.org/t/discourse-development-contribution-guidelines/3823) and from there to [Developing Discourse Plugins - Part 1 - Create a basic plugin](https://meta.discourse.org/t/beginners-guide-to-creating-discourse-plugins-part-1/30515) this isn’t - as far as I can see - mentioned at any point.

Hence my question - why should this fail?

* * *

My take-away from this is that as a “beginning” plugin developer I must adapt my normal practices to match how you write Discourse, much in the same way Rails isn’t really Ruby. It appears the barrier for entry is higher than I had originally thought and so needs more work on my part to create a development environment (with all its moving parts) that matches as closely as possible those in use by others, rather than developing on a “production mirror” (which, for example, normally makes sure that any changes I make will be _exactly_ reflected when deployed).

---

_[View the full topic](https://meta.discourse.org/t/bootstrap-fails-when-plugin-file-specifies-gem-version-range/82896)._
