Skip to content

(CTTC) Fix websockets incompatible dependency versions

Reporters

  • Javier Mateos (NAUDIT)
  • Rafael Leira (NAUDIT)
  • Lluis Gifre (CTTC)

Description

There is an incompatibility issue when preparing development environment for TeraFlowSDN; in particular, components E2E Orch, VNTM, and NBI use websockets==12.0 while Device uses websockets==10.4. Upgrading to version 12.0 as features used in Device are compatible with that version also.

Deployment environment

  • Operating System (include version): any
  • MicroK8s (include version and add-ons): any
  • TeraFlowSDN (include release/branch-name/commit-id): develop

TFS deployment settings

Preparation of development environment.

Sequence of actions that resulted in the bug

Preparation of development environment.

Document the explicit error

Run:

$ ./install_requirements.sh

Output log:

Creating integrated requirements file...

Collecting requirements from components...

Compiling requirements...
   ERROR: Cannot install websockets==10.4 and websockets==12.0 because these package versions have conflicting dependencies.
Traceback (most recent call last):
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 397, in resolve
     self._add_to_criteria(self.state.criteria, r, parent=None)
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 174, in _add_to_criteria
     raise RequirementsConflicted(criterion)
pip._vendor.resolvelib.resolvers.RequirementsConflicted: Requirements conflict: SpecifierRequirement('websockets==10.4'), SpecifierRequirement('websockets==12.0')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
     result = self._result = resolver.resolve(
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
     state = resolution.resolve(requirements, max_rounds=max_rounds)
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py", line 399, in resolve
     raise ResolutionImpossible(e.criterion.information)
pip._vendor.resolvelib.resolvers.ResolutionImpossible: [RequirementInformation(requirement=SpecifierRequirement('websockets==10.4'), parent=None), RequirementInformation(requirement=SpecifierRequirement('websockets==12.0'), parent=None)]

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/bin/pip-compile", line 8, in <module>
     sys.exit(cli())
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
     return self.main(*args, **kwargs)
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/click/core.py", line 1078, in main
     rv = self.invoke(ctx)
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
     return ctx.invoke(self.callback, **ctx.params)
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/click/core.py", line 783, in invoke
     return __callback(*args, **kwargs)
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/click/decorators.py", line 33, in new_func
     return f(get_current_context(), *args, **kwargs)
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/piptools/scripts/compile.py", line 470, in cli
     results = resolver.resolve(max_rounds=max_rounds)
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/piptools/resolver.py", line 604, in resolve
     is_resolved = self._do_resolve(
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/piptools/resolver.py", line 636, in _do_resolve
     resolver.resolve(
   File "/home/XXXXXX/.pyenv/versions/3.9.20/envs/tfs/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 104, in resolve
     raise error from e
pip._internal.exceptions.DistributionNotFound: ResolutionImpossible: for help visit https://urldefense.com/v3/__https://pip.pypa.io/en/latest/topics/dependency-resolution/*dealing-with-dependency-conflicts__;Iw!!D9dNQwwGXtA!WGqw2hDh9_I-dJNlk-l7sj3oUrjeVodsjKuE_bBE6OqOvKu0IIvH_vUrYfD7zRrtzTRe1ffUz6Mmrw5C0Urx7IpmwFw$ 

Installing requirements...
ERROR: Could not open requirements file: [Errno 2] No such file or
directory: 'requirements.txt'

rm: cannot remove 'requirements.txt': No such file or directory ```

Expected behaviour

Deployment environment to be properly configured.

References

None