Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency conflict between membrane_vpx_plugin and membrane_webrtc_plugin #855

Open
lostbean opened this issue Aug 16, 2024 · 1 comment
Assignees

Comments

@lostbean
Copy link

When attempting to install dependencies, there's a conflict between membrane_vpx_plugin and membrane_webrtc_plugin. The version solver is unable to find a compatible set of dependencies due to conflicting requirements for membrane_vp8_format.

Resolving Hex dependencies...
Resolution completed in 0.738s
Because membrane_webrtc_plugin < 0.12.0 depends on bunch ~> 1.3.0 and membrane_webrtc_plugin >= 0.12.0 and < 0.15.0 depends on membrane_rtp_vp8_plugin ~> 0.7.1, membrane_webrtc_plugin < 0.15.0 requires bunch ~> 1.3.0 or membrane_rtp_vp8_plugin ~> 0.7.1.
And because membrane_webrtc_plugin >= 0.15.0 and < 0.17.0 depends on membrane_rtp_vp8_plugin ~> 0.8.0, membrane_webrtc_plugin < 0.17.0 requires bunch ~> 1.3.0 or membrane_rtp_vp8_plugin ~> 0.7.1 or ~> 0.8.0.
And because membrane_core >= 0.12.0 depends on bunch ~> 1.6, if membrane_core >= 0.12.0 and membrane_webrtc_plugin < 0.17.0 then membrane_rtp_vp8_plugin ~> 0.7.1 or ~> 0.8.0.
And because membrane_webrtc_plugin >= 0.17.0 and < 0.21.0 depends on membrane_rtp_vp8_plugin ~> 0.9.0, if membrane_core >= 0.12.0 and membrane_webrtc_plugin < 0.21.0 then membrane_rtp_vp8_plugin ~> 0.7.1 or ~> 0.8.0 or ~> 0.9.0.
And because membrane_webrtc_plugin >= 0.21.0 depends on membrane_rtp_vp8_plugin ~> 0.9.1, if membrane_core >= 0.12.0 and membrane_webrtc_plugin then membrane_rtp_vp8_plugin ~> 0.7.1 or ~> 0.8.0 or ~> 0.9.0.
And because membrane_rtp_vp8_plugin >= 0.4.0 depends on membrane_vp8_format ~> 0.4.0, if membrane_core >= 0.12.0 and membrane_webrtc_plugin then membrane_vp8_format ~> 0.4.0.
And because every version of membrane_vpx_plugin depends on membrane_core ~> 1.0, if membrane_vpx_plugin and membrane_webrtc_plugin then membrane_vp8_format ~> 0.4.0.
And because every version of membrane_vpx_plugin depends on membrane_vp8_format ~> 0.5.0, membrane_vpx_plugin is incompatible with membrane_webrtc_plugin.
And because your app depends on membrane_vpx_plugin >= 0.0.0, no version of membrane_webrtc_plugin is allowed.
So, because your app depends on membrane_webrtc_plugin >= 0.0.0, version solving failed.

Steps to Reproduce

  1. Create a new Elixir project
  2. Add both membrane_vpx_plugin and membrane_webrtc_plugin to the dependencies in mix.exs
Mix.install(
  [
    :membrane_core,
    :membrane_file_plugin,
    :membrane_webrtc_plugin,
    :membrane_realtimer_plugin,
    :membrane_matroska_plugin,
    :membrane_opus_plugin,
    :membrane_vpx_plugin,
    :kino,
    :kino_membrane
  ] 
)
  1. Run mix deps.get

Expected Behavior

The dependencies should resolve and install successfully.

Actual Behavior

The version solver fails to find a compatible set of dependencies.

Possible Solution

This issue might be resolved by updating one or more of the following packages to versions with compatible dependencies:

  • membrane_vpx_plugin
  • membrane_webrtc_plugin
  • membrane_vp8_format

Alternatively, it may require coordination between the maintainers of these packages to align their dependency requirements.

Environment

  • Elixir version: v1.16.0
  • Erlang/OTP version: Erlang/OTP 25 [erts-13.2.2.5]
  • Operating System: macOS (darwin)

Additional Context

This issue appears to stem from conflicting requirements for the membrane_vp8_format package between membrane_vpx_plugin and membrane_webrtc_plugin. Resolving this may require updating one or both of these packages to use compatible versions of membrane_vp8_format.

@varsill
Copy link
Contributor

varsill commented Sep 19, 2024

Hello @lostbean !
I've released new version of the membrane_rtp_vp8_plugin which allows for using both v0.4.0 and v0.5.0 version of the membrane_vp8_format. Now you should be able to install the dependencies.
Thanks for reporting!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Review
Development

No branches or pull requests

3 participants