Feature #21863
closedInvestigate python3-cwltest package and remove it if possible
Description
In source:build/run-build-packages.sh we get a specific version of cwltest from PyPI and turn it into a distro-packaged virtualenv:
fpm_build_virtualenv cwltest "==2.3.20230108193615" "$FORMAT" "$ARCH"
This version does not run on Python 3.12:
Traceback (most recent call last): File "/usr/bin/cwltest", line 5, in <module> from cwltest.main import main File "/usr/lib/python3-cwltest/lib/python3.12/site-packages/cwltest/main.py", line 15, in <module> from cwltest.argparser import arg_parser File "/usr/lib/python3-cwltest/lib/python3.12/site-packages/cwltest/argparser.py", line 5, in <module> import pkg_resources ModuleNotFoundError: No module named 'pkg_resources'
It's not clear why we build this package. Peter thinks it used to be Jenkins support but is no longer necessary, we now run the conformance tests by installing from pip. Check if there's anything else in our infrastructure using this package. If not, remove the package build and supporting code.
Updated by Brett Smith 7 months ago
- Related to Idea #21363: Support ubuntu2404 added
Updated by Brett Smith 7 months ago
For the record, the problem is that this version of cwltest depends on setuptools but doesn't declare that. So there is an easy workaround by installing setuptools yourself:
xps9310 % python3.12 -m venv cwltest xps9310 % ./cwltest/bin/pip install 'cwltest==2.3.20230108193615' […] Successfully installed CacheControl-0.14.0 certifi-2024.6.2 charset-normalizer-3.3.2 cwltest-2.3.20230108193615 defusedxml-0.7.1 filelock-3.14.0 idna-3.7 iniconfig-2.0.0 isodate-0.6.1 junit-xml-1.9 mistune-3.0.2 msgpack-1.0.8 mypy-extensions-1.0.0 packaging-24.0 pluggy-1.5.0 pyparsing-3.1.2 pytest-7.4.4 rdflib-7.0.0 requests-2.32.3 ruamel.yaml-0.18.6 ruamel.yaml.clib-0.2.8 schema-salad-8.5.20240503091721 six-1.16.0 typing-extensions-4.12.1 urllib3-2.2.1 xps9310 % ./cwltest/bin/cwltest -h Traceback (most recent call last): File "/home/brett/Scratch/./cwltest/bin/cwltest", line 5, in <module> from cwltest.main import main File "/home/brett/Scratch/cwltest/lib/python3.12/site-packages/cwltest/main.py", line 15, in <module> from cwltest.argparser import arg_parser File "/home/brett/Scratch/cwltest/lib/python3.12/site-packages/cwltest/argparser.py", line 5, in <module> import pkg_resources ModuleNotFoundError: No module named 'pkg_resources' xps9310 % ./cwltest/bin/pip install setuptools […] Successfully installed setuptools-70.0.0 xps9310 % ./cwltest/bin/cwltest -h [it works]
I would still rather remove the package if possible but this is a fine plan B.
Updated by Peter Amstutz 7 months ago
Thinking about this a little more, I think it is this (there are similar disabled jobs for other decommissioned test clusters)
https://ci.arvados.org/view/CWL/job/run-cwl-test-tordo-old-unused/
This would log into the shell node, pull the CWL test suite, and run it (functioning as a full integration test of launching workflows on cloud). So, at the time, Ward decided to package cwltest so it would just run cwltest and arvados-cwl-runner automatically installed in $PATH.
At some point we stopped doing this, I don't recall why. The current test is based on a different script, and that script installs a specific version of cwltest using pip.
For the record, the reason we use a specific version of cwltest is that following the pinned version, cwltest started checking that file in the output parameters actually existed on disk, but because Arvados returned keep identifiers, it wouldn't know how to resolve them correctly and fail. A better fix would be to do the work of adding an optional module to cwltest that properly supports checking for the existence of files in Keep.
Updated by Brett Smith 7 months ago
- Status changed from New to In Progress
21863-remove-cwltest-package @ 144fe348cdd944cfcc383c3e4f84d98aeeb270f7 - build-packages-multijob: #4219
- All agreed upon points are implemented / addressed.
- Yes
- Anything not implemented (discovered or discussed during work) has a follow-up story.
- N/A
- Code is tested and passing, both automated and manual, what manual testing was done is described
- See above
- Documentation has been updated.
- N/A. This package was intended for internal use, not to be installed by users, so it's already undocumented and there's nothing to update.
- Behaves appropriately at the intended scale (describe intended scale).
- No change in scale
- Considered backwards and forwards compatibility issues between client and server.
- No change
- Follows our coding standards and GUI style guidelines.
- N/A (no coding standards for shell)
Updated by Brett Smith 7 months ago
- Status changed from In Progress to Resolved
Applied in changeset arvados|1f3825cf342222545150d3c399e3d84b3e1ff80c.
Updated by Brett Smith 7 months ago
- Related to Bug #21878: Package build time doubled after #21863 added