Project

General

Profile

Actions

Feature #21863

closed

Investigate python3-cwltest package and remove it if possible

Added by Brett Smith about 2 months ago. Updated about 2 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Deployment
Story points:
-

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.


Subtasks 1 (0 open1 closed)

Task #21864: Review 21863-remove-cwltest-packageResolvedLucas Di Pentima06/06/2024Actions

Related issues

Related to Arvados - Idea #21363: Support ubuntu2404In ProgressBrett Smith06/06/2024Actions
Related to Arvados - Bug #21878: Package build time doubled after #21863NewActions
Actions #1

Updated by Brett Smith about 2 months ago

Actions #2

Updated by Brett Smith about 2 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.

Actions #3

Updated by Peter Amstutz about 2 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.

Actions #4

Updated by Peter Amstutz about 2 months ago

  • Assigned To set to Brett Smith
Actions #5

Updated by Brett Smith about 2 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)
Actions #6

Updated by Lucas Di Pentima about 2 months ago

This LGTM, thanks!

Actions #7

Updated by Brett Smith about 2 months ago

  • Status changed from In Progress to Resolved
Actions #8

Updated by Brett Smith about 1 month ago

  • Related to Bug #21878: Package build time doubled after #21863 added
Actions

Also available in: Atom PDF