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
Branch
master
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 16132
Build 24817: arc lint + arc unit