Skip to content

package: Harmonize the way package versions are sorted

Instead of implementing the versions sorting in each package loader prefer to have a base implementation in swh.loader.package.PackageLoader class through the get_sorted_versions method. It relies on the looseversion module enabling to interact with heterogeneous version schemes which works pretty well with a large majority of package loaders.

The get_default_version method of the PackageLoader class now also has a base implementation returning the last element from the list returned by the get_sorted_versions method. As a consequence, each snapshot produced by a package loader contains a HEAD alias branch targeting the branch for the highest version number of a package.

Both methods can be reimplemented in package loaders for special cases like debian for instance.

Also remove the use of the packaging module to parse versions as it is only dedicated to parse Python package versions.

Related to swh-lister#4711.

Edited by Antoine Lambert

Merge request reports