Skip to content

Conversation

@JWhitleyWork
Copy link

@JWhitleyWork JWhitleyWork commented Oct 6, 2022

With most ROS-supported operating systems and their default package managers, major version changes will usually not be automatically introduced. This avoids major incompatibilities being introduced within a given, supported operating system version for packages installed through the default package manager. As PyPi retains Python modules which are not tied to operating system versions, major, breaking changes can be introduced unexpectedly. Therefore, there exists a need for rosdep to be able to handle version management of pip-installed modules. This PR introduces version checking to rosdep when verifying pip package installation.

Since rosdep passes package requirements directly from a keys YAML file to pip without modification, the installation of packages with version requirements was already possible. However, if a package with a version requirement was specified and installed, rosdep did not understand how to verify that the version requirement had been met. This PR adds this functionality.

Since this PR uses the packaging module, it automatically complies with https://peps.python.org/pep-0440/ and https://peps.python.org/pep-0508/.

Covers the version-checking requirement (but not the extras-checkig one) of #900.

@JWhitleyWork
Copy link
Author

This ended up generating a few unexpected issues so I'm closing this PR. I'll keep the fork/branch in case anyone wants to try to complete the implementation in the future but we founmd other work-arounds for our use-case.

@peci1
Copy link
Contributor

peci1 commented Jan 12, 2023

Continuation in #909. @JWhitleyWork could you please chime in and leave some comments on the things #901 broke for you?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants