Gem dependency version conflict among logstash plugins

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

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?


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

@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?

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

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.