Closed douglowe closed 10 months ago
I don't think there's a new flag, and 5.11 passed the CWL conformance tests that test whether workflows can run, so at least in some places it can run a CWL workflow.
This sounds like a thing that could possibly happen if the leader node and the worker nodes are not using the exact same version of cwltool
; is it possible that that is the case for you?
I just checked, and I was able to run a CWL workflow on Toil 5.11 like this:
virtualenv test_venv
. test_venv/bin/activate
pip install 'toil[cwl]==5.11.0'
curl -O https://raw.githubusercontent.com/DataBiosphere/toil/master/src/toil/test/cwl/conditional_wf.cwl
curl -O https://raw.githubusercontent.com/DataBiosphere/toil/master/src/toil/test/cwl/echo.cwl
echo '{"sleep": 3, "message": "hello"}' >conditional_wf.yaml
toil-cwl-runner conditional_wf.cwl conditional_wf.yaml
This runs a simple workflow with a conditional and with one CommandLineTool task that actually executes.
Are you able to run that workflow @douglowe? Is there anything importantly different about your environment versus the one I set up when I do this?
Thanks for getting back to me Adam.
I have tried your workflow - it gives me the same error for my (mamba / conda) installed version of toil 5.11.0.
I've tried installing toil using virtualenv and pip, however, and the workflow is fine. So perhaps there is something in the conda install process which is messing things up - if something is precompiled on the conda platform, maybe there's a clash with the package which is installed locally for me?
FYI - this is my installed conda/pip environment:
(test_venv) (pip) lowe@ln02:~/test_toil> conda list
# packages in environment at /work/n02/n02/lowe/miniconda3/envs/pip:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
bzip2 1.0.8 h7f98852_4 conda-forge
ca-certificates 2023.5.7 hbcca054_0 conda-forge
distlib 0.3.6 pyhd8ed1ab_0 conda-forge
filelock 3.12.2 pyhd8ed1ab_0 conda-forge
ld_impl_linux-64 2.40 h41732ed_0 conda-forge
libexpat 2.5.0 hcb278e6_1 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-ng 13.1.0 he5830b7_0 conda-forge
libgomp 13.1.0 he5830b7_0 conda-forge
libnsl 2.0.0 h7f98852_0 conda-forge
libsqlite 3.42.0 h2797004_0 conda-forge
libuuid 2.38.1 h0b41bf4_0 conda-forge
libzlib 1.2.13 hd590300_5 conda-forge
ncurses 6.4 hcb278e6_0 conda-forge
openssl 3.1.1 hd590300_1 conda-forge
pip 23.1.2 pyhd8ed1ab_0 conda-forge
platformdirs 3.8.0 pyhd8ed1ab_0 conda-forge
python 3.11.4 hab00c5b_0_cpython conda-forge
readline 8.2 h8228510_1 conda-forge
setuptools 68.0.0 pyhd8ed1ab_0 conda-forge
tk 8.6.12 h27826a3_0 conda-forge
typing-extensions 4.7.1 hd8ed1ab_0 conda-forge
typing_extensions 4.7.1 pyha770c72_0 conda-forge
tzdata 2023c h71feb2d_0 conda-forge
virtualenv 20.23.1 pyhd8ed1ab_0 conda-forge
wheel 0.40.0 pyhd8ed1ab_0 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
(test_venv) (pip) lowe@ln02:~/test_toil> pip list
Package Version
----------------------- ------------------
addict 2.4.0
argcomplete 3.1.1
attrs 23.1.0
bagit 1.8.1
bleach 6.0.0
blessed 1.20.0
boltons 23.0.0
CacheControl 0.13.1
certifi 2023.5.7
charset-normalizer 3.1.0
coloredlogs 15.0.1
conda_package_streaming 0.8.0
cwl-upgrader 1.2.8
cwl-utils 0.28
cwltool 3.1.20230425144158
dill 0.3.6
docker 5.0.3
docutils 0.20.1
enlighten 1.11.2
filelock 3.12.2
future 0.18.3
galaxy-tool-util 23.0.4
galaxy-util 23.0.4
humanfriendly 10.0
idna 3.4
importlib-resources 5.12.0
isodate 0.6.1
lxml 4.9.2
MarkupSafe 2.1.3
mistune 2.0.5
msgpack 1.0.5
mypy-extensions 1.0.0
networkx 2.8.8
packaging 21.3
pip 23.1.2
prefixed 0.7.0
prov 1.5.1
psutil 5.9.5
py-tes 0.4.2
pydantic 1.10.10
pydot 1.4.2
pyparsing 3.1.0
Pypubsub 4.0.3
python-dateutil 2.8.2
pytz 2023.3
PyYAML 6.0
rdflib 6.3.2
repoze.lru 0.7
requests 2.31.0
Routes 2.5.1
ruamel.yaml 0.17.21
ruamel.yaml.clib 0.2.7
schema-salad 8.4.20230606143604
setuptools 67.8.0
shellescape 3.8.1
six 1.16.0
sortedcontainers 2.4.0
toil 5.11.0
typing_extensions 4.7.1
urllib3 1.26.16
wcwidth 0.2.6
webencodings 0.5.1
websocket-client 1.6.1
wheel 0.40.0
zipstream-new 1.1.8
zstandard 0.21.0
We don't actually do any Conda packaging for Toil as part of the Toil project, and I don't think I have enough experience using Conda to be much help here. Maybe @mr-c knows something about how Conda packages cwltool? Or maybe @DailyDreaming knows of something we did for the 5.10 release that we didn't do for the 5.11 release that makes Conda work? Maybe something to do with the deprecated egg that uploaded for 5.11?
Or is Conda getting the package straight from PyPI and still getting a broken envrionment? @douglowe how specifically are you managing to set up the broken environment?
Yes, I updated the Toil packaging for 5.11.0 over at https://github.com/bioconda/bioconda-recipes/pull/41533/files
I can confirm the error using a fresh install mamba create -n toil-5.11-test2 toil==5.11.0 enlighten
and then the test case in https://github.com/DataBiosphere/toil/issues/4520#issuecomment-1618804096
Okay, in conda we are making a binary wheel for cwltool
; and Workflow
was not set to be pickle-able. Additionally bioconda
doesn't run tests when building packages, so this was missed. I'll see about moving the toil
conda package to https://github.com/conda-forge/ where they do run more tests
It looks like this was fixed on the Conda/cwltool side.
I'm trying to run a workflow with Toil 5.11.0, which ran previously with an older version of Toil, but am getting an error I can't work out:
Toil 5.11.0 will run a single tool, described by a CWL tool descriptor, but doesn't seem to want to run a full workflow. Is there a new flag I'm missing?
My conda environment is:
┆Issue is synchronized with this Jira Story ┆Issue Number: TOIL-1364