Page MenuHomeSoftware Heritage

bin/py-depgraph: Use more robust way to remove dep version pin
ClosedPublic

Authored by anlambert on Oct 9 2020, 4:01 PM.

Details

Summary

I noticed the swh-environment Jenkins job now fails to execute each test suite.
https://jenkins.softwareheritage.org/job/DENV/job/tests/174/console

Reading the logs, we see that line:

ERROR: swh-model>=0-7-0[testing] is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with svn+, git+, hg+, or bzr+).

The issue comes from the bin/py-depgraph script which do not remove pinned version info
when there is no spaces between the dependency name and its pinned version.
The addition of swh-fuse repository triggered the issue as dependencies are formatted
the way described above (https://forge.softwareheritage.org/source/swh-fuse/browse/master/requirements-swh.txt).
Thus, the following ouput is provided as pip arguments which raises the error:

15:58 $ ./bin/pip-swh-packages --with-testing
-e swh-core[testing]
-e swh-model[testing]
-e swh-core[db,http,testing]
-e swh-objstorage[testing]
-e swh-storage[testing]
-e swh-scheduler[testing]
-e swh-journal[testing]
-e swh-model>=0-7-0[testing]
-e swh-web-client>=0-2-1[testing]
-e swh-loader-core[testing]
-e swh-indexer[testing]
-e swh-search[testing]
-e swh-vault[testing]
-e swh-deposit[testing]
-e swh-fuse[testing]
-e swh-graph[testing]
-e swh-lister[testing]
-e swh-loader-git[testing]
-e swh-loader-mercurial[testing]
-e swh-loader-svn[testing]
-e swh-objstorage-replayer[testing]
-e swh-scanner[testing]
-e swh-web[testing]
-e swh-web-client[testing]
-e swh-icinga-plugins[testing]
-e swh-docs[testing]
-e swh-dataset[testing]

That diff ensures pinned version will be correctly removed for all formats.

Diff Detail

Repository
rDENV Development environment
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.