membrane_core
membrane_core copied to clipboard
Dependency conflict between membrane_vpx_plugin and membrane_webrtc_plugin
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
- Create a new Elixir project
- Add both
membrane_vpx_plugin
andmembrane_webrtc_plugin
to the dependencies inmix.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
]
)
- 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
.