# Gem dependency version conflict among logstash plugins

**URL:** <https://discuss.elastic.co/t/gem-dependency-version-conflict-among-logstash-plugins/55590>\
**Category:** Logstash\
**Created:** [July 15, 2016, 6:39am UTC](https://discuss.elastic.co/t/gem-dependency-version-conflict-among-logstash-plugins/55590 "2016-07-15T06:39:11Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kaung](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kaung/32/11165_2.png) [@kaung](https://discuss.elastic.co/u/kaung)\
**Post date:** [July 15, 2016, 6:39am UTC](https://discuss.elastic.co/t/gem-dependency-version-conflict-among-logstash-plugins/55590/1 "2016-07-15T06:39:11Z")

</div>

I am pretty new to ruby ecosystem; so apologies first if I am missing something basic 🙂

I understand that plugins are maintained and released separately from logstash-core. Furthermore, plugins are maintained by different people. (correct me if Iam wrong with those assumptions)  
When there is a version conflict between gems that are included by different plugins, what is the recommended way to resolve?

My case is the following. I am adding rufus-scheduler version ~\>3.2 dependency but when I install my plugin to logstash, it fails because another plugin already included rufus with a conflicting version  
logstash-output-cloudwatch (2.0.4)  
rufus-scheduler (~\> 3.0.9)

I can resolve it by either downgrading my version, or if I cannot afford to do so, I must uninstall the conflicting plugin (it seems). Are there other ways?

--Thanks

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [July 17, 2016, 6:18am UTC](https://discuss.elastic.co/t/gem-dependency-version-conflict-among-logstash-plugins/55590/2 "2016-07-17T06:18:18Z")

</div>

I've shifted this to the main LS category, you may get a few more hits 🙂

---

<div class="post-metadata">

**Author:** ![kaung](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kaung/32/11165_2.png) [@kaung](https://discuss.elastic.co/u/kaung)\
**Post date:** [July 17, 2016, 6:46am UTC](https://discuss.elastic.co/t/gem-dependency-version-conflict-among-logstash-plugins/55590/3 "2016-07-17T06:46:56Z")

</div>

@warkolm, thanks. For my case, I don't have specific need for that version. So, I down-versioned my gem to match old campers. But I can easily imagine scenarios when that is not possible or not desirable (security patches, breaking changes, etc).

So, just as a side interest, how are those gem versions decided in LS? Is there a moderator group or is it more or less first come first serve?

---

<div class="post-metadata">

**Author:** ![kaung](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kaung/32/11165_2.png) [@kaung](https://discuss.elastic.co/u/kaung)\
**Post date:** [July 23, 2016, 9:58pm UTC](https://discuss.elastic.co/t/gem-dependency-version-conflict-among-logstash-plugins/55590/4 "2016-07-23T21:58:27Z")

</div>

I am still curious how the dependency conflicts are managed. Would appreciate if someone from LS team can comment on this topic.

---

<div class="post-metadata">

**Author:** ![jordansissel](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jordansissel/32/44957_2.png) [@jordansissel](https://discuss.elastic.co/u/jordansissel)\
**Post date:** [July 24, 2016, 5:28am UTC](https://discuss.elastic.co/t/gem-dependency-version-conflict-among-logstash-plugins/55590/5 "2016-07-24T05:28:39Z")

</div>

> I am still curious how the dependency conflicts are managed

A conflict is is annoying, but may be resolvable. The best way to resolve this is to file issues against one of the affected plugins so we can discuss how to resolve.

> how are those gem versions decided in LS

Individual plugins can be authored freely. The consequence of this is these rare dependency conflicts. The authors of each plugin individually decides what dependencies are necessary.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 4:46am UTC](https://discuss.elastic.co/t/gem-dependency-version-conflict-among-logstash-plugins/55590/6 "2017-07-06T04:46:41Z")

</div>

Closed on July 6, 2017, 4:46am UTC


