-
-
Notifications
You must be signed in to change notification settings - Fork 231
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] Tool Dependencies for CWL #93
[RFC] Tool Dependencies for CWL #93
Conversation
Hey @jmchilton , thanks for opening this PR and restarting this conversation!
P.S.: environment modules aren't typically shared between sites; package names aren't standardized at all; and they rarely work at other sites let alone cross platform :-) |
This is perfect. I'd love to switch bcbio CWL usage over to use this plus mulled to create custom Docker containers for each step instead of having one giant container with everything. No comments other than I can't wait to use this. |
👍 from me as well. This and the embedded interpreter in the spec is imho the largest weakness of CWL. So I'm really in favour of this change. Especially if we can share code between Galaxy and CWL. As a side note to mulled: Mulled container names are predictable so we can use the normal |
I'm very much in favor of incorporating a feature like this, and if there is an existing, well developed solution from Galaxy we can base it on, all the better. I'll respond on technical specifics once I've had some time to completely digest the proposal. |
I'm a developer on Homebrew-Science and Linuxbrew. What features does Conda have that Homebrew is missing? No animosity intended, I'm just curious. Sounds like a great idea. I usually implement my pipelines in Make and always have a |
My (possibly uninformed) understanding is that conda distributes binary packages, while brew builds from source? More to the point, this proposal shouldn't try to get the community to settle on a particular packaging system, because the ecosystem is far too diverse. |
@sjackman The conda dependency resolver implementation here supports options that are not yet implemented with the homebrew resolver implementation (installing tools on demand instead of just using existing installs for instance). Certainly there are nods and hooks in the implementation and pull requests would be very much welcome to bring the functionality on par - the use of this library means such PRs would benefit cwltool, Galaxy, and Homebrew-science - it would be fantastic to see. But ultimately, the increased maturity of the conda resolver here is a reflection of factors that are both technical and social in my opinion.
I am fully committed to merging and commenting on the Homebrew resolver and seeing its functionality increased if there is community demand and work on it - but I just cannot justify actively developing it myself when most of the Galaxy community is more excited about conda. |
I don't think that is true - many tools or at least some tools - if they are going to play well in Galaxy-land at least - are going to depend on multiple underlying packages. For instance, nearly every Galaxy mapper tool uses samtools to sort output BAM files are the initial command. Your own (formerish) khmer tools for instance have multiple dependencies - https://github.com/galaxyproject/tools-iuc/blob/master/tools/khmer/macros.xml. If we say that CWL will never be the implementation for stuff like this - then I cannot really make the argument that CWL will someday replace Galaxy tools.
As a... lets call it dependency injection technique it works on CentOS derived things, Debian derived things, FreeBSD derived things. It is far more cross platform than There is work that could be done - and will be done - to make this more easy within galaxy-lib - namely allowing site-specific remapping of requirement names and versions. We have more of a blue-sky scenario to get it right with CWL but even in the Galaxy landscape this technique has proven feasible (ping @pvanheus has deployed tools this way I believe for instance).
Discussed on gitter - it can be done if needed - I can't think of a technical reason to do it however. |
Thanks for the explanation, John. I myself would like to see support for installing a older versions of software. You're correct that there's not much interest in that feature by the upstream Homebrew developers, but it would be a really useful feature for Homebrew-Science. The installation of older versions is pretty easy if there'e a binary bottle available for that version: curl -LO http://linuxbrew.bintray.com/bottles-science/bwa-0.7.13.x86_64_linux.bottle.tar.gz
brew install ./bwa-0.7.13.x86_64_linux.bottle.tar.gz It would only need a dash of syntactic sugar to expand |
Yep @jmchilton we have a historic environment modules installation that is slowly being migrated to Galaxy dependency manager naming compatibility. Its really not a hard thing to do. We have a newer conda environment and have experimented with manually installing conda packages so that Galaxy detects them. Our cluster is a multi-interface environment: sometimes things are run via Galaxy, other times via traditional scripts. If CWL can emulate Galaxy's dependency manager setup it would make deploying the CWL runner SO much easier! |
2492977
to
b3f03a6
Compare
This is a great discussion and I am very excited about the broad agreement on the design and usefulness of this proposal; thanks all! Here are some specific thoughts from me:
|
Michael -- I use multiple independent tools within each CWL step for bcbio so would appreciate a way to be able to manually specify what is used in a step instead of/in addition to trying to define it from baseCommand. I agnostic about using hints versus explicit definitions but wanted to chime up for the non-just-one-tool-per-step crowd. |
@chapmanb Thank you for sharing your user story. My understanding is that any installation of bcbio would by necessity pull in all dependencies. Is that correct? |
@mr-c package names are often prefixed, suffixed or heavily modified so I think we need to annotate it independently from the baseCommand. |
@bgruening Yep, in case of ambiguity or unparsability the ID field can be used. A key difference between CWL and Galaxy tool definitions is that we only run one command within a single CWL tool description. The common Galaxy idiom of many commands is not possible in CWL without a separate wrapper. This was done on purpose and I think it is the source of some confusion in this discussion. That command may be a script with its own dependencies, but you can't |
So why not have a more explicit annotation in the first place. I'm still a fan of explicit over implicit and CWL is already so verbose that this probably does not matter, isn't it?
So if I write such a script to call |
I agree that explicit is better, and I bet that specifying a tool ID will be apart of various best practice guides,
Right, CWL doesn't aim to solve tool delivery. Either the program is already installed, the user installs it themselves (and tells the CWL implementation about it by specifying Here is a summary of my current thinking. Thank you @bgruening @chapmanb @jmchilton for challenging me :-)
Thoughts? |
How is |
Hello all, @jmchilton and I had a phone chat, here is a summary:
@sjackman If the packaging system has its own mappings for identifiers to package names then those can be used. For example, the Debian Med team is integrating the EDAM & bio.tools identifiers into their infrastructure. Alternatively the CWL implementation can maintain their own mappings, or users could provide these mappings in their job input objects. This is likely useful for systems that have no standardization (environment modules). Alternatively the packaging system can cross reference its own index of "binary" application names against the |
This remains a false dichotomy and a misstatement of my position. The proposed solution works fine in 95% of cases - it should surprise no one to learn that Homebrew, Conda, MSI's enviornment modules, Debian, and Nix all call bwa... bwa. Small variations will of course pop up - but those can be solved with site or package-manager specific mappings on the backend - small tweaks - there is no need for long lists of IDs in tools. If you are using environment modules - you may need to map snap to snap-aligner locally - for Debian we can even build community mappings. I'm arguing for one ID per component not long lists. If you feel it needs a namespace fine - if you feel some service needs to do the mapping - I'm fine with that too - go work with bio.tools on that and this can leverage that work. But it should be a goodie, an add-on, a best practice - I don't think CWL tools should require registration of their components in biotools to work - it should just work. This just works. You are imaging a potential system for these things - Galaxy is a real and existing system that supports multiple package managers today and this problem hasn't really materialized - and we have concrete ideas for how to address it in a lightweight way. |
Obligitory xkcd https://xkcd.com/1654/ |
I have prefixed the two command-line options with |
4d073ea
to
61142f5
Compare
61142f5
to
4ab6082
Compare
Partial upgrade to mypy v0.501 --strict
0d75172e Refactor to fix secondaryFiles on record fields, consolidate fields, use new subscope feature. 005c9c91 Spec clarification for #331 9ce6f8c8 Add explicit defaults for some fields. fd9861b0 Synchronize with v1.0.2 e239d5b8 Merge pull request #647 from common-workflow-language/dnanexus 81f1bb98 Add Geet's ORCID 5d980b1f Add DNAnexus to supporting organizations list 1b71ddc7 Merge pull request #646 from wtsi-hgi/array-of-strings-job-files-input ebd63119 Make array-of-strings-job.yml take in an array of files 83650a5b Merge pull request #645 from common-workflow-language/fix_run_test_help 83e899d9 fix help formatting 0ca7e798 Merge pull request #642 from common-workflow-language/IBM 839ec690 Add IBM to the supporting organizations list 47fe0f2c Merge pull request #639 from common-workflow-language/enhancement/test-dyn-iwdr cfbc7b8e Merge pull request #638 from common-workflow-language/fix/valuefrom-constant 9c2c4fee Do not assume output file is present in dynamic iwdr test 89b2b782 Add DockerRequirement for `python` command in valueFrom-constant.cwl 000a889d Merge pull request #623 from common-workflow-language/new-test/valuefrom-constant b5f0f5b7 Merge pull request #625 from common-workflow-language/new-test/any-compatibility fb520d21 Merge pull request #612 from common-workflow-language/multInpReq 76b9b775 Merge pull request #620 from common-workflow-language/new-test/empty-array-input 155fdc45 Merge pull request #634 from common-workflow-language/new-test/concat-vf 6bb22505 Merge branch 'master' of github.com:common-workflow-language/common-workflow-language into new-test/valuefrom-constant 06c54e04 copy test for empty array input to v1.0 ec9cf54d Add test for empty array input 068c1ad5 Merge pull request #611 from common-workflow-language/step-level-resourcereq-test f734e8d1 remove unneeded linkMerge to match Rabix behaviour e8d3f6ae Merge branch 'master' of github.com:common-workflow-language/common-workflow-language into step-level-resourcereq-test a4b1bf84 Add test for two concatenated expressions in valueFrom c101119a Merge pull request #626 from common-workflow-language/workflow_with_dynreq af9e0736 Merge branch 'master' into workflow_with_dynreq 06cd7d33 Merge pull request #628 from common-workflow-language/exit_code_tests 791886b8 don't use path for false 8d2a2977 test for alternative success exit codes 9c398386 test having a dynamics resoure requirement as part of a workflow e22e0523 Testing Any type compatibility in outputSource ffe52883 Add test for valueFrom with constant value overriding array inputs 91f108df Merge pull request #618 from common-workflow-language/test_with_classname 63dbb6d3 explain EXTRA a33e9eee Merge pull request #607 from common-workflow-language/clarify_basename-fields-job.yml 31c68fde fix non v1.0 testing e7a3e568 Merge branch 'master' into step-level-resourcereq-test 2889ba91 Add test for step-level ResourceRequirement for v1.0 1ea31342 Allow passing --classname to cwltest, improve --help a8728791 Merge pull request #615 from common-workflow-language/avoid_unstrictjs 56776751 Merge pull request #610 from common-workflow-language/boolean-empty-inputbinding-test e9d559bc Merge branch 'master' into boolean-empty-inputbinding-test e21ee6ee Merge pull request #616 from common-workflow-language/new-test/staging-optional-file b9c52371 Merge pull request #613 from common-workflow-language/wc-test-portability 8b4e1eb7 Merge pull request #614 from common-workflow-language/staging-writable-dir 74261a6d Test for expression engine with self reference to null input e14a5d29 Add test for empty not-null boolean inputBinding c0984113 Add test for MultipleInputFeatureReq if source is a single-item list ecd8e2bd Ensure the staged directory is writable 62f74816 modify template use to avoid with(), which violates strict mode 619fdad9 Add test for staging a writable directory inside Docker 2141724c Replace `wc` with `cat` for test of command execution with standard streams redirection 42d37d04 Add test for step-level ResourceRequirement 9c34c2a5 Update basename-fields-job.yml 3b747ab9 Merge pull request #601 from common-workflow-language/hmenager-patch-1 4a0a558c Merge pull request #603 from cjfields/patch-1 e0309c49 Add PBS/Torque support for Toil 7b831fe0 Merge pull request #602 from common-workflow-language/cwl-emacs 0bff6183 Add links to blog post about cwl-emacs 89b5390d correct typo in travis file 103006b3 Merge pull request #598 from mdmiller53/patch-2 7b7ea1cf Update README.md 35a371d7 Merge pull request #594 from common-workflow-language/recursive-input-directory-test-fix 49b503ca basename not required to be in output 2a393205 Merge pull request #589 from common-workflow-language/nested-dir-test-fix b3b9d1f5 Fix conformance test, directory needs to be marked writable in order to write to it! 2ee358c7 Merge pull request #580 from common-workflow-language/cease_building_old_userguide 85009292 Merge pull request #586 from common-workflow-language/cwl_output_singular 10a3ddf0 cwl.output.json is singular 0814764e Merge pull request #585 from bmeg/workflow-default d728efde Adding conformance test for #592 cd93e026 stop building old user guide c4a3085f Merge pull request #578 from common-workflow-language/cromwell_ci 1ad1276e link to CI testing of Cromwell 77ef9829 Merge pull request #570 from common-workflow-language/IWDR_nested 74d6f3a5 Test InitialWorkDirRequirement with a nested directory structure from another step c2489659 Merge pull request #577 from common-workflow-language/test_glob_order 9111c888 Merge pull request #557 from otiai10/master 739d3d6d Merge pull request #576 from common-workflow-language/biostars_tag 1687baae fix capitalization of 'post' daca82a1 Merge pull request #574 from common-workflow-language/citation_update 8ca65e26 test for POSIX glob behavior ea485c46 Explicitly link to the Biostars post form fb4f92fe synchronize with http://www.commonwl.org/#Citation 1fe86e5b Merge pull request #573 from common-workflow-language/reana 41a69b2c Add REANA to the list dd0813f3 CWL files under `v1.0/examples` are no longer to be tested 97173a98 Merge pull request #542 from common-workflow-language/mr-c-patch-1 504fb7e3 Merge pull request #544 from common-workflow-language/jp_link 97c7e362 clarify JP link 7a7d27a7 Merge pull request #549 from common-workflow-language/embl_abr 53c52230 Merge pull request #567 from common-workflow-language/intelliJ 95fcd1df Correct links to IntelliJ/JetBrains CWL plugin 3e98cab3 Merge pull request #560 from common-workflow-language/mv_Hello 9ccd71c9 Move Hell.java 8b99a846 Merge pull request #558 from manabuishii/move_test_files 915d49f8 Move files under v1.0/ for conformance test fcb4ed86 re-arrange c6e3f151 Add status badge of itself 21de641b Test myself by using schema_salad c888cb48 Add EMBL-ABR a83ab96d Merge pull request #548 from otiai10/master 4e28adab Enable testing without cd to the repository 7bd0d7ea Add JP link 6d77fa69 Removed extraneous baseCommand d126e152 Merge pull request #536 from common-workflow-language/mr-c-patch-1 702afe31 Merge pull request #539 from stellargo/patch-1 b04007b2 remove link to user guide, add link to stable ver. 2482b66f draft-3/README.md: Link address changed 6bc4368c Clarify citation, link to citeulike c6bc1288 Merge pull request #535 from common-workflow-language/remove_draft3_userguide 26d650b8 Remove draft-3 userguide and link to the new URL ffe182e8 Merge pull request #534 from common-workflow-language/cwl-software 8433a910 Prepopulate github/google links with search query d08e37b2 Add tricks for searching Github / Google for CWL. b49f7bc4 Merge pull request #533 from common-workflow-language/cwl-software af2eedb7 Remove language column whoops d5125033 remove spurious [ b6e47a23 Remove 'language' column. Make explicit SDK section. 811deca0 Fix links bfdde7ff Swap columns 6a91db53 Separate language/platform support columns. 96a0c9ae Add note about github searching trick. Add yacle and cerise. eb1e0cdc Add Cromwell, CWL libraries for various languages. f2031e4a Update and rearrange software section 612414eb Merge pull request #528 from cure/master 43d67d0d Run all v1.0 tests that use a Debian Docker image with the debian:stretch-slim image instead of a debian:8 or debian:wheezy. 0c8f9ddf Merge pull request #524 from jmchilton/fix_dir3 8b0a8905 Merge pull request #526 from tom-tan/fix-typo 33603758 Fix indent in the example of stdout 92ee6abc Merge pull request #512 from common-workflow-language/update_contribs 2100e7f6 Fix doc for dir3.cwl test. 0e1ac178 Merge pull request #520 from michael-kotliar/master 9cbe3743 Update link for Airflow 55208187 Merge pull request #509 from common-workflow-language/typo42 a66b295b ORCID for John Kern 01fc1084 ORCIDs: Josh Randall, Mark Robinson, & Tom Morris 51a5b048 add Marc Fiume's ORCID; https for orcid.org links f253f3a2 ORCIDs for Ward & James a3e9d38c Merge pull request #511 from common-workflow-language/link_new_userguide ca83f2d6 ORCID for Gaurav e3862128 add CWL advisors, leadership team, some ORCIDS 813bf044 remove old user guide, link to the new one d53c4983 XDF_DATA_HOME -> XD**G**_DATA_HOME 1eb152b4 Merge pull request #508 from common-workflow-language/full-citation f7be9835 Provide full citation details 76bd4fd4 Merge pull request #506 from common-workflow-language/broken-valueFrom 67567438 Fix merge conflict. 15252f40 Merge pull request #507 from common-workflow-language/literal-without-docker 18e902ac remove Docker mention in docstring c04b2c6f Test file literal as input without Docker e2fa9668 Merge pull request #505 from common-workflow-language/broken-valueFrom 9c0d75bc Add conformance test for valueFrom on a scatter parameter, from https://github.com/dleehr/broken-valueFrom 165b5130 Merge pull request #503 from mccalluc/patch-1 e142260c missing back-tick causes misformatting 7f510ec7 Merge pull request #498 from common-workflow-language/no-location-secondary 67b4d608 Merge pull request #499 from common-workflow-language/fix-dynresreq 5351b234 Tweak dynresreq test, remove 'basename' check and remove newline from special_file. ba99368e Bump couple additional references to v1.0.2 08c09893 Merge pull request #496 from common-workflow-language/no-location-secondary d7732801 Merge pull request #497 from common-workflow-language/dynresreqs e1ab24bc test for dyn res reqs e9a869f2 Bump spec to v1.0.2. Expand secondaryFile tests to include expressions returning lists and directories in secondaryFiles. 66ef5a09 Fix conformance test entry. 1ed4f764 Specify that nameroot and nameext must be present for secondaryFile eval as well. 28ce0407 Update spec. 95001104 Revise secondaryFile conformance test to use basename and path instead of location. ffd2dbf Merge pull request #487 from common-workflow-language/1.0.1-text 6a28a1a Update text to v1.0.1. 2674c57 Merge pull request #410 from common-workflow-language/v1.0-errata 351d032 Merge remote-tracking branch 'origin/clarify-package' into v1.0-errata a4e9eb6 Adjust core request in bwa command line test from 4 to 2. a5b1032 Merge branch 'empty-writable-dir' into v1.0-errata 28cdbec Clarify behavior of `entryname` 1c57443 Add note that command line arguments must not be shell intepreted except when shellQuote: false. d0420dd Merge branch 'StarvingMarvin-empty-scatter' into v1.0-errata f6a71a0 Merge branch 'empty-scatter' of https://github.com/StarvingMarvin/common-workflow-language into StarvingMarvin-empty-scatter 0ad5a58 Merge branch 'shellchar' into v1.0-errata ab4a189 Merge branch 'michael-kotliar-master' into v1.0-errata 0e225b5 Merge branch 'master' of https://github.com/michael-kotliar/common-workflow-language into michael-kotliar-master 9026a00 Merge branch 'michael-kotliar-static_checker_bug' into v1.0-errata 4294b6d Merge branch 'static_checker_bug' of https://github.com/michael-kotliar/common-workflow-language into michael-kotliar-static_checker_bug eb12fae Update to v1.0.1 version in text. Update release notes. e0bf631 Merge remote-tracking branch 'origin/output-format-fix' into v1.0-errata 444d892 Expanded discussion of File and Directory types. 4a8215c Merge pull request #481 from kapilkd13/container-correction b8e57da clarify the format field on outputs a486e91 Add conformance test that files in initialworkdir have $(inputs) in $(outdir). cb782b7 Merge branch 'undu-basename-fields' into v1.0-errata 8526423 Merge branch 'basename-fields' of https://github.com/undu/common-workflow-language into undu-basename-fields 1166ea4 Clarify interpretation of secondaryFiles on inputs. c645e3b Add test executing compound document with absolute identifiers. 13f35aa Add clarification about scattering over empty arrays. 1234c09 Update generation of documentation for schema salad. cc78562 Merge schema salad commit '7ea7dcf92e5782c4aca844f1e98d2d9550e07aae' into v1.0-errata 4e24494 Test that missing parameters are explicitly set to null. 0b31629 Merge branch 'gijzelaerr-recursive_directory' into v1.0-errata 71efb7b Merge branch 'recursive_directory' of https://github.com/gijzelaerr/common-workflow-language 51a5dd6 Test use default value on step input parameter with empty source. 7751643 Conformance tests for default value behavior. 345c449 Clarify that default values apply prior to scattering and evaluating valueFrom. d200b3f Typo fix EMACScript -> ECMAScript 619314b Clarify that all input parameters must be `null` if not assigned. Clarify that `default` applies when the paramater value is `null`. 19e53aa List v1.0.1 errata. 0829bd0 Fix mistake in discussion of extracting field names from workflow step ids. cdc31b5 Add note that writable: true applies recursively. 4afaff7 Add note that files in InitialWorkDir must have path in output directory. 05c11fa Add note that recursive subworkflows is not allowed. 0477abc Bump to version 1.0.1. Add change of treatment `default` field as errata. e287937 adding docker container: test 52, rev command is not posix compliant 13d31ae adding docker container: test 51, rev command is not posix compliant c50c150 Merge pull request #480 from kapilkd13/gitattributes d94a88f adding .fasta file to gitattributes 30bc3d7 Merge pull request #479 from kapilkd13/container-correction 62fac93 Docker container added: test 89 inlinejs.cwl e18a107 Merge pull request #477 from common-workflow-language/yank-last-draft-ref 9da1f4b Merge pull request #474 from kapilkd13/gitattributes 0d859c8 Merge pull request #478 from common-workflow-language/correct-softreq-usage 68bce59 remove unused test file a2a8a08 remove last unneeded draft-N ref in v1.0 docs 1c24a42 Merge pull request #469 from common-workflow-language/cwltest-j b83f419 fix: change nameext test to include the dot 66296ad new: add conformance test for nameroot and nameext 557bd4f Merge pull request #475 from kapilkd13/container-correction f30c103 adding docker container hint, test 72: stagefile.cwl 739562c adding docker container hint, test 42: search.cwl 68d85c8 adding Docker Container, test 4:cat1-testcli.cwl 3125ddf added docker container, test no 3: tmap-tool.cwl b1ac8d7 added python conatiner as hints in test 2: binding-test.cwl d11bf77 adding git attributes file to keep LF line endings for correct sha on windows system instead of CRLF 8f26c9b Merge pull request #460 from common-workflow-language/expr-tests 88df8ef Merge pull request #473 from common-workflow-language/fix-v1.1-path ef1c87b fix path to conformance tests for optional default File 9e003bc Add support for cwltest -j to run_test.sh 7ea7dcf Merge pull request #118 from common-workflow-language/manu-chroma-patch-1 bde8dfb pin upper version of ruamel.yaml package 4d1c3ff Merge pull request #117 from common-workflow-language/better-bump a8c3fde oops b3c579f a better bump of the version (mea culpa) fa93acc Merge pull request #109 from manu-chroma/modernize 52c054e 3.6 too! a8903de setup.py: change version, uncomment classifiers for py3 d9bdc8b setup.py: cleanup 7748526 schema.py: fix some types, remove redundant str b2a5a26 bump ruamel version, put upper bound on ruamel in setup.py 3d60033 mypy_requirements.txt: bump mypy version a1f697b ref_resolver.py: mypy: use Text instead of unicode 669ebfc remove redundant condition with typing package 6b3d068 typeshed/3: add stubs(autogen) for avro-python3 8672a5c sourceline.py: replace AnyStr with Text type 740e235 mypy: turn off warn for unused ignore in --py3 4f0ad4f tox: separate out mypy targets for py2 and py3 d16c0e5 move cachecontrol stub files to typshed/2and3/ ad05e61 minor changes in rdflib stub files to make them compatible with mypy in py3 mode and move to typshed/2and3/ directory 65e583c mypy: some improvements in type annotations f051f49 typesheds/2.7: remove stub files which already come with mypy==0.511 1d11190 Makefile: add target for mypy without --py2 flag c6c88f1 add mypy.ini and ignore all ruamel.yaml package errors 2850043 makedoc.py: pass unicode string mintune markdown function 963ea3f mypy: add typeshed/2and3 in mypypath 62cbece add stub file for mistune package author = "Aleksandr Slepchenkov" email = "[email protected]" 4958ebf use Text type where ever Union[str, unicode] is expected d16a308 mypy: remove redundant ignore type annotations 090c1ba mypy: use latest stable version of mypy - use update ruamel.yaml package which includes more mypy annotations 67d7481 use same import pattern for six.urllib accross the codebase - also, re-ogranise six lib imports 150730c py3 fix: use six StringIO import 0773e44 fix urlparse using six in tests and schema_salad core; no automated fixers 6a11b16 mypy type annotations fix: replace unicode -> Text 8b6f9b3 Apply Python3 modernize transforms 1eb19b6 use typing>=3.5.3 b0b1f14 disable git version tagging to avoid testing conflicts with cwltool ff000db setup.py: add six as explicit dependency c66a3f9 tests: remove redundant parentheses in print statements b1605e3 fix: use six integer_types and string_types in place of int and basestring 29dcb7f tox.ini: fix bugs, enable flake8 linting for all python versions 5efed90 tox.ini: re-write file, include unit tests for all supported versions of python - enable more python3 versions on travis for unit testing 508c8d3 setup.py: bump version to '3.0' 9874d11 use same import pattern for six.urllib accross the codebase - also, re-ogranise six lib imports d23c804 tests: use assertEqual() inplace assertEquals() 3095597 fix: use six.integer_types to handle int, long incompatibles 965378f .tox.ini: turn on python3 unit testing 7ee4848 .gitignore: add more local folders 4d3c6de fix: use list of dict keys to iterate, fix flake8 warnings - py3 compatibility 916aaa1 py3: use six.moves.urllib instead of urllib 9108c7b fix: minor: py3 compatibility wrt avro cec0213 setup.py: install different version of avro in case of py3 runtime 3704c98 py3 fix: use six StringIO import e795ac9 fix: make regex command python3 compatible b4273f2 fix urlparse using six in tests and schema_salad core; no automated fixers df685ea modernize tests e9bb3ec mypy type annotations fix: replace unicode -> Text 3080c69 Apply Python3 modernize transforms caec629 Merge pull request #116 from manu-chroma/master 5a76bb6 create mypy_requirements.txt for mypy related deps ba88f5e add mypy, typed-ast dependency in requirements.txt b61311c Makefile: pin mypy, typed-ast version for jenkins make target 9d9317e Merge pull request #114 from manu-chroma/master 8372fe2 Merge branch 'master' into master d370602 Merge pull request #115 from common-workflow-language/skip_schemas e39018a Optional skip_schemas 99eae75 Add conformance test for static_checker 9bcc4f1 Add tests for $(null) and .length on arrays. 961986b cleanup 6a582c3 refactor flatten function. move to utils.py 3bba34e minor refactor: create utils.py 1acdac4 Add test for MultipleInputFeatureRequirement 5b3863a Merge pull request #112 from common-workflow-language/tweak-cov ffc3367 exclude tests from coverage report f4fe77f added v1.0 jobs, and fixed v1.1 paths 35dc6c5 spec clarification and tests for empty scatter fefed51 Merge remote-tracking branch 'upstream/master' 5b0b019 Validation fix. Must raise exception when raise_ex is true and record class (#107) 424ad78 Fix for self-colliding ids on $import (#102) 8a6eaff Validating Ids for duplicate Issue#56 (#98) a560ef3 Pass through logger to capture warnings. (#101) c3cd5b5 Merge remote-tracking branch 'upstream/master' ca9218e Merge pull request #99 from manu-chroma/master a63f75f schema_salad/tests: add tests for cli args testing: --version, empty args - fix return condition in main() 04c6784 schema_salad/main.py: --version now correctly prints version 61c2203 Merge pull request #100 from manu-chroma/test_patch a082ab5 schema_salad/tests: use print() in tests 00ad407 Merge branch 'master' of https://github.com/common-workflow-language/common-workflow-language 0114153 In vocab flag (#97) 39516e5 Add map and typedsl resolution documentation. (#96) 0b76655 Merge pull request #92 from kapilkd13/master c00ad4c Merge branch 'master' into master 2114715 Merge pull request #93 from common-workflow-language/mypy-0.501 f1d824d Don't switch to mypy v0.501 yet 8ab39f9 Upgrade to mypy v0.501 --strict 4f4fe73 added instalation from source instructions d2d7b1e added a warning message when error is being ignored a808742 Add tests that ShellCommandRequirement quote properly. 4573403 Add test to ensure that arguments containing shell directives are not interpreted and that `shellQuote: false` has no effect when ShellCommandRequirement is not in effect. 1e05b44 Set publicID when passing plain data to RDF parser. (#91) 2b98c03 Test case for creating empty writable directory using InitialWorkDirRequirement 15c0ab8 Relax strict checking foreign properties (#90) 3a7cf29 Merge pull request #89 from tjelvar-olsson/master f16c1a8 Add more directory fallbacks Loader session 50d0361 Make ref_resolver.Loader more fault tolerant 7522a24 Make split_frag optional in converting fileuri. (#88) d736a0e capture stdout and write to file c9fd6b9 write test result to file 878a74f Merge pull request #87 from common-workflow-language/release-update 6209496 newer pip dependency 05b82f1 add link and writable check 0347b8e Merge pull request #85 from chapmanb/debug-fixes 5c4ef60 Merge branch 'master' into debug-fixes 286001f Merge pull request #86 from common-workflow-language/mypy-470 9676ea8 track mypy rename e47f4e6 Improve debugging: missing filename and bad lists 2c6f26b implement feedback e334b74 first try bee8bf1 Merge pull request #84 from common-workflow-language/mypy0.470 822c8c1 upgrade to mypy 0.470 42f4bdd Fix performance regression in schema loading by stripping ruamel.yaml metadata, (#83) d21fa84 Expand uris in $schemas in resolve_all(). (#82) 55018dd Bump version to 2.2 (#81) b883526 Bugfix to uri_file_path. (#80) 0c7cc02 Remove pathlib2 because it is only used for one thing but creates dependency issues. (#79) f31369c Merge pull request #78 from common-workflow-language/explict-include f34d4ac explicitly include MD files & fix release test c1cf3e9 Merge pull request #77 from common-workflow-language/simplify-manifest a2e4236 simply the manifest 5d04ddb Merge pull request #76 from common-workflow-language/ensure-test-paths a37b623 ensure all test data is loaded flexibly 6a02920 Merge pull request #75 from common-workflow-language/adjust-manifest cefb22e Merge branch 'master' into adjust-manifest dd496a1 Include all relevant files so tests work post installation 8edfbc2 Bugfix resolving references to document fragments. (#74) a3ba891 Relax ruamel.yaml version pin. (#73) a5bbb36 Ensure keys are sorted when generated CommentedMap from a regular dict. (#72) ebdf27d Merge pull request #71 from common-workflow-language/pip-conflict-checker 2aecb05 Merge branch 'master' into pip-conflict-checker 999d689 Merge pull request #70 from psafont/win32 01af23d Fix typing 7a793ac drop html5lib pin, add pip-conflict-check 0e616d1 Fix types ad742f3 Manage pathlib and pathlib2 for all python versions cb754df Make url2pathname args compatible with python3 da751f7 Don't assume the type of ref f302f5f Fix a couple of test cases 0c0e4cc Added pathlib2 requirement 159541c Paths and URIs conversions are more generalized 9a9d639 Tweak cmap to better propagate filename down. (#69) 5a15c58 merge 1.21 changes into salad 2.0 (#68) a1db0ac Merge pull request #67 from common-workflow-language/mr-c-patch-1 56ac12b Link to v1.0 specs beed46d Merge pull request #65 from common-workflow-language/mobile-friendly 1e0f6a5 set the meta viewport tag f0b88d0 Bump major version number, because of backwards-incompatible changes. (#63) 8ac4540 Provide line numbers in error messages (#62) c045684 make example IRIs links; update v1.1 text 419fed3 link to IRI wikipage; update example modules IRI. 68c53bf Clarify SoftwareRequirement spec fields 8454546 Bugfix for validating "class" field. (#61) 01dd303 Optimize validate (#60) 423e48b Merge pull request #58 from common-workflow-language/quiet-external-schema f2d86c1 Merge branch 'master' into quiet-external-schema f6744ad Merge pull request #53 from common-workflow-language/check-file-support-http 1728fd4 fix types 823f378 Merge remote-tracking branch 'origin/master' into check-file-support-http 9b6a6be demote log about external schema b1d7b69 Support http/https existence check (using HTTP HEAD) in check_file. git-subtree-dir: cwltool/schemas git-subtree-split: 0d75172ee6e5951dda7a3f8b5d84eb8f9749c9a5
721aa892 Remove "Workspace", "BatchQueue" and "acceptList" based on feedback. 146f545d be more precise and use a briefer name 4a36b4b7 Add Workspace, TimeLimit, BatchQueue, WorkReuse and NetworkAccess to schema. 46091d30 Merge pull request #665 from common-workflow-language/new_rabix_lead eebceefd Update to the new Rabix lead f96bca69 Merge pull request #633 from wtsi-hgi/parameter-like-reference-parsing e1308521 Merge pull request #624 from common-workflow-language/new-test/trailing-newline 46b40226 Merge pull request #660 from common-workflow-language/v1.1.0-fix-wf-bindings 9f979e91 break out Changlogs into seperate sections and cross-link them. e7b87b5e descriptions for {in,out}putBinding c30b27a1 diverse CLT changelog updates 566a735c Changelog: the `doc` field may be an array of strings. ea9faa89 Fix userguide. Fix schema table of contents ordering (a bit). 0bc210a9 sync some fixes 28218d9f Fix doc for CommandInputParameter.inputBinding c373b9fc Be more specific that loadContents in inputBinding (and inputBinding on WorkflowInputParameter) will go away in v2.0 1646a398 Merge pull request #659 from common-workflow-language/cern 40086a12 Add CommandLineBindable 2bf64e89 Add inputBinding to CommandInputRecordField. e1e3cc1a Add Tibor Simko; CERN dfdb1467 Merge pull request #656 from common-workflow-language/mr-c-patch-1 9cb8f9c8 Revert accidental change f9d95cbd Refactor loadContents to be available on InputParameter, WorkflowStepInput, CommandOutputBinding. Note that InputBinding on WorkflowInputParameter is deprecated. Add conformance tests. d6780795 More cleanup to deprecate inputBinding and remove outputBinding from Workflow parameters. e1091653 Merge commit '9c21375acac04407b672f3e3c55e5ea7eca0b591' into v1.1.0-fix-wf-bindings 9c21375a Squashed 'v1.1.0-dev1/salad/' changes from 98a5bea..27c20e8 2346c52d Deprecate inputBinding from Workflow and ExpressionTool 9cb4d3c2 Merge pull request #636 from common-workflow-language/v1.1.0-wip e86e8e5b Refactor 'format' field so array can only be used to describe input, not output. 1ab449b0 * Add negative conformance tests for file format checking. 0e98c3d4 Added changelog summary for changes so far in this branch. 0313fae2 Add test format field on output. 26482cc7 Add 'doc' field to InputSchema b38788cb Add doc field to record 2f8906d1 Conformance tests for secondaryFiles on input and output record fields. 54ef74ee Conformance tests for secondaryFiles on record fields. 42132253 Merge pull request #278 from common-workflow-language/v1.0-cwl-runner-proposal c055af45 Fix site generation ca7cba78 rename conflicting steps 836187e9 drop --user from Travis 9b111b59 misc 53ad516b Restore stdin shortcut test. 4e307e36 Sync with v1.0 tests aee2fbbe Refactor to fix secondaryFiles on record fields, consolidate fields, use new subscope feature. 53b626aa Spec clarification for #331 064f8bff Add explicit defaults for some fields. 8d96c02c Synchronize with v1.0.2 78efaef7 Merge remote-tracking branch 'origin/master' into v1.0-cwl-runner-proposal 370c52fc document output format 6178438c Merge pull request #635 from common-workflow-language/categorize_tests 3d4893e0 tag the tests e239d5b8 Merge pull request #647 from common-workflow-language/dnanexus 81f1bb98 Add Geet's ORCID 5d980b1f Add DNAnexus to supporting organizations list 1b71ddc7 Merge pull request #646 from wtsi-hgi/array-of-strings-job-files-input ebd63119 Make array-of-strings-job.yml take in an array of files 83650a5b Merge pull request #645 from common-workflow-language/fix_run_test_help 83e899d9 fix help formatting 0ca7e798 Merge pull request #642 from common-workflow-language/IBM 839ec690 Add IBM to the supporting organizations list 47fe0f2c Merge pull request #639 from common-workflow-language/enhancement/test-dyn-iwdr cfbc7b8e Merge pull request #638 from common-workflow-language/fix/valuefrom-constant 9c2c4fee Do not assume output file is present in dynamic iwdr test 89b2b782 Add DockerRequirement for `python` command in valueFrom-constant.cwl 000a889d Merge pull request #623 from common-workflow-language/new-test/valuefrom-constant b5f0f5b7 Merge pull request #625 from common-workflow-language/new-test/any-compatibility fb520d21 Merge pull request #612 from common-workflow-language/multInpReq 76b9b775 Merge pull request #620 from common-workflow-language/new-test/empty-array-input 155fdc45 Merge pull request #634 from common-workflow-language/new-test/concat-vf 6bb22505 Merge branch 'master' of github.com:common-workflow-language/common-workflow-language into new-test/valuefrom-constant 06c54e04 copy test for empty array input to v1.0 ec9cf54d Add test for empty array input 068c1ad5 Merge pull request #611 from common-workflow-language/step-level-resourcereq-test f734e8d1 remove unneeded linkMerge to match Rabix behaviour e8d3f6ae Merge branch 'master' of github.com:common-workflow-language/common-workflow-language into step-level-resourcereq-test 57e2a0ec Remove reference to parameter-reference.cwl 3128b673 Move parameter-reference test to inline-js 602e077f Add prefix to parameter-reference a4b1bf84 Add test for two concatenated expressions in valueFrom 36644bc7 Add output to parameter-reference.cwl conformance test 98f62660 change parameter-reference type from string to boolean ad3c1640 Conformance test for parameter-reference-like javascript c101119a Merge pull request #626 from common-workflow-language/workflow_with_dynreq af9e0736 Merge branch 'master' into workflow_with_dynreq 06cd7d33 Merge pull request #628 from common-workflow-language/exit_code_tests 791886b8 don't use path for false 8d2a2977 test for alternative success exit codes 9c398386 test having a dynamics resoure requirement as part of a workflow e22e0523 Testing Any type compatibility in outputSource 16456581 add version 4e2a75fb Add test for trailing whitespace in file entries of InitialWorkDir ffe52883 Add test for valueFrom with constant value overriding array inputs 91f108df Merge pull request #618 from common-workflow-language/test_with_classname 63dbb6d3 explain EXTRA a33e9eee Merge pull request #607 from common-workflow-language/clarify_basename-fields-job.yml 31c68fde fix non v1.0 testing e7a3e568 Merge branch 'master' into step-level-resourcereq-test 2889ba91 Add test for step-level ResourceRequirement for v1.0 1ea31342 Allow passing --classname to cwltest, improve --help a8728791 Merge pull request #615 from common-workflow-language/avoid_unstrictjs 56776751 Merge pull request #610 from common-workflow-language/boolean-empty-inputbinding-test e9d559bc Merge branch 'master' into boolean-empty-inputbinding-test e21ee6ee Merge pull request #616 from common-workflow-language/new-test/staging-optional-file b9c52371 Merge pull request #613 from common-workflow-language/wc-test-portability 8b4e1eb7 Merge pull request #614 from common-workflow-language/staging-writable-dir 74261a6d Test for expression engine with self reference to null input e14a5d29 Add test for empty not-null boolean inputBinding c0984113 Add test for MultipleInputFeatureReq if source is a single-item list ecd8e2bd Ensure the staged directory is writable 62f74816 modify template use to avoid with(), which violates strict mode 619fdad9 Add test for staging a writable directory inside Docker 2141724c Replace `wc` with `cat` for test of command execution with standard streams redirection 42d37d04 Add test for step-level ResourceRequirement 9c34c2a5 Update basename-fields-job.yml c93718d6 fix travis 8f5e8523 Merge remote-tracking branch 'origin/master' into v1.0-cwl-runner-proposal 3b747ab9 Merge pull request #601 from common-workflow-language/hmenager-patch-1 4a0a558c Merge pull request #603 from cjfields/patch-1 e0309c49 Add PBS/Torque support for Toil 7b831fe0 Merge pull request #602 from common-workflow-language/cwl-emacs 0bff6183 Add links to blog post about cwl-emacs 89b5390d correct typo in travis file 103006b3 Merge pull request #598 from mdmiller53/patch-2 7b7ea1cf Update README.md 35a371d7 Merge pull request #594 from common-workflow-language/recursive-input-directory-test-fix 49b503ca basename not required to be in output 2a393205 Merge pull request #589 from common-workflow-language/nested-dir-test-fix b3b9d1f5 Fix conformance test, directory needs to be marked writable in order to write to it! 2ee358c7 Merge pull request #580 from common-workflow-language/cease_building_old_userguide 85009292 Merge pull request #586 from common-workflow-language/cwl_output_singular 10a3ddf0 cwl.output.json is singular 0814764e Merge pull request #585 from bmeg/workflow-default d728efde Adding conformance test for #592 cd93e026 stop building old user guide c4a3085f Merge pull request #578 from common-workflow-language/cromwell_ci 1ad1276e link to CI testing of Cromwell 77ef9829 Merge pull request #570 from common-workflow-language/IWDR_nested 74d6f3a5 Test InitialWorkDirRequirement with a nested directory structure from another step c2489659 Merge pull request #577 from common-workflow-language/test_glob_order 9111c888 Merge pull request #557 from otiai10/master 739d3d6d Merge pull request #576 from common-workflow-language/biostars_tag 1687baae fix capitalization of 'post' daca82a1 Merge pull request #574 from common-workflow-language/citation_update 8ca65e26 test for POSIX glob behavior ea485c46 Explicitly link to the Biostars post form fb4f92fe synchronize with http://www.commonwl.org/#Citation 1fe86e5b Merge pull request #573 from common-workflow-language/reana 41a69b2c Add REANA to the list dd0813f3 CWL files under `v1.0/examples` are no longer to be tested 97173a98 Merge pull request #542 from common-workflow-language/mr-c-patch-1 504fb7e3 Merge pull request #544 from common-workflow-language/jp_link 97c7e362 clarify JP link 7a7d27a7 Merge pull request #549 from common-workflow-language/embl_abr 53c52230 Merge pull request #567 from common-workflow-language/intelliJ 95fcd1df Correct links to IntelliJ/JetBrains CWL plugin 3e98cab3 Merge pull request #560 from common-workflow-language/mv_Hello 9ccd71c9 Move Hell.java 8b99a846 Merge pull request #558 from manabuishii/move_test_files 915d49f8 Move files under v1.0/ for conformance test fcb4ed86 re-arrange c6e3f151 Add status badge of itself 21de641b Test myself by using schema_salad c888cb48 Add EMBL-ABR a83ab96d Merge pull request #548 from otiai10/master 4e28adab Enable testing without cd to the repository 7bd0d7ea Add JP link 6d77fa69 Removed extraneous baseCommand d126e152 Merge pull request #536 from common-workflow-language/mr-c-patch-1 702afe31 Merge pull request #539 from stellargo/patch-1 b04007b2 remove link to user guide, add link to stable ver. 2482b66f draft-3/README.md: Link address changed 6bc4368c Clarify citation, link to citeulike c6bc1288 Merge pull request #535 from common-workflow-language/remove_draft3_userguide 26d650b8 Remove draft-3 userguide and link to the new URL ffe182e8 Merge pull request #534 from common-workflow-language/cwl-software 8433a910 Prepopulate github/google links with search query d08e37b2 Add tricks for searching Github / Google for CWL. b49f7bc4 Merge pull request #533 from common-workflow-language/cwl-software af2eedb7 Remove language column whoops d5125033 remove spurious [ b6e47a23 Remove 'language' column. Make explicit SDK section. 811deca0 Fix links bfdde7ff Swap columns 6a91db53 Separate language/platform support columns. 96a0c9ae Add note about github searching trick. Add yacle and cerise. eb1e0cdc Add Cromwell, CWL libraries for various languages. f2031e4a Update and rearrange software section 612414eb Merge pull request #528 from cure/master 43d67d0d Run all v1.0 tests that use a Debian Docker image with the debian:stretch-slim image instead of a debian:8 or debian:wheezy. 0c8f9ddf Merge pull request #524 from jmchilton/fix_dir3 8b0a8905 Merge pull request #526 from tom-tan/fix-typo 33603758 Fix indent in the example of stdout 92ee6abc Merge pull request #512 from common-workflow-language/update_contribs 2100e7f6 Fix doc for dir3.cwl test. 0e1ac178 Merge pull request #520 from michael-kotliar/master 9cbe3743 Update link for Airflow 55208187 Merge pull request #509 from common-workflow-language/typo42 a66b295b ORCID for John Kern 01fc1084 ORCIDs: Josh Randall, Mark Robinson, & Tom Morris 51a5b048 add Marc Fiume's ORCID; https for orcid.org links f253f3a2 ORCIDs for Ward & James a3e9d38c Merge pull request #511 from common-workflow-language/link_new_userguide ca83f2d6 ORCID for Gaurav e3862128 add CWL advisors, leadership team, some ORCIDS 813bf044 remove old user guide, link to the new one d53c4983 XDF_DATA_HOME -> XD**G**_DATA_HOME 1eb152b4 Merge pull request #508 from common-workflow-language/full-citation f7be9835 Provide full citation details 76bd4fd4 Merge pull request #506 from common-workflow-language/broken-valueFrom 67567438 Fix merge conflict. 15252f40 Merge pull request #507 from common-workflow-language/literal-without-docker 18e902ac remove Docker mention in docstring c04b2c6f Test file literal as input without Docker e2fa9668 Merge pull request #505 from common-workflow-language/broken-valueFrom 9c0d75bc Add conformance test for valueFrom on a scatter parameter, from https://github.com/dleehr/broken-valueFrom 165b5130 Merge pull request #503 from mccalluc/patch-1 e142260c missing back-tick causes misformatting 7f510ec7 Merge pull request #498 from common-workflow-language/no-location-secondary 67b4d608 Merge pull request #499 from common-workflow-language/fix-dynresreq 5351b234 Tweak dynresreq test, remove 'basename' check and remove newline from special_file. ba99368e Bump couple additional references to v1.0.2 08c09893 Merge pull request #496 from common-workflow-language/no-location-secondary d7732801 Merge pull request #497 from common-workflow-language/dynresreqs e1ab24bc test for dyn res reqs e9a869f2 Bump spec to v1.0.2. Expand secondaryFile tests to include expressions returning lists and directories in secondaryFiles. 66ef5a09 Fix conformance test entry. 1ed4f764 Specify that nameroot and nameext must be present for secondaryFile eval as well. 28ce0407 Update spec. 95001104 Revise secondaryFile conformance test to use basename and path instead of location. 6732dafb Merge remote-tracking branch 'origin/master' into v1.0-cwl-runner-proposal ffd2dbf Merge pull request #487 from common-workflow-language/1.0.1-text 6a28a1a Update text to v1.0.1. 2674c57 Merge pull request #410 from common-workflow-language/v1.0-errata 351d032 Merge remote-tracking branch 'origin/clarify-package' into v1.0-errata a4e9eb6 Adjust core request in bwa command line test from 4 to 2. a5b1032 Merge branch 'empty-writable-dir' into v1.0-errata 28cdbec Clarify behavior of `entryname` 1c57443 Add note that command line arguments must not be shell intepreted except when shellQuote: false. d0420dd Merge branch 'StarvingMarvin-empty-scatter' into v1.0-errata f6a71a0 Merge branch 'empty-scatter' of https://github.com/StarvingMarvin/common-workflow-language into StarvingMarvin-empty-scatter 0ad5a58 Merge branch 'shellchar' into v1.0-errata ab4a189 Merge branch 'michael-kotliar-master' into v1.0-errata 0e225b5 Merge branch 'master' of https://github.com/michael-kotliar/common-workflow-language into michael-kotliar-master 9026a00 Merge branch 'michael-kotliar-static_checker_bug' into v1.0-errata 4294b6d Merge branch 'static_checker_bug' of https://github.com/michael-kotliar/common-workflow-language into michael-kotliar-static_checker_bug eb12fae Update to v1.0.1 version in text. Update release notes. e0bf631 Merge remote-tracking branch 'origin/output-format-fix' into v1.0-errata 444d892 Expanded discussion of File and Directory types. 4a8215c Merge pull request #481 from kapilkd13/container-correction b8e57da clarify the format field on outputs a486e91 Add conformance test that files in initialworkdir have $(inputs) in $(outdir). cb782b7 Merge branch 'undu-basename-fields' into v1.0-errata 8526423 Merge branch 'basename-fields' of https://github.com/undu/common-workflow-language into undu-basename-fields 1166ea4 Clarify interpretation of secondaryFiles on inputs. c645e3b Add test executing compound document with absolute identifiers. 13f35aa Add clarification about scattering over empty arrays. 1234c09 Update generation of documentation for schema salad. cc78562 Merge schema salad commit '7ea7dcf92e5782c4aca844f1e98d2d9550e07aae' into v1.0-errata 4e24494 Test that missing parameters are explicitly set to null. 0b31629 Merge branch 'gijzelaerr-recursive_directory' into v1.0-errata 71efb7b Merge branch 'recursive_directory' of https://github.com/gijzelaerr/common-workflow-language 51a5dd6 Test use default value on step input parameter with empty source. 7751643 Conformance tests for default value behavior. 345c449 Clarify that default values apply prior to scattering and evaluating valueFrom. d200b3f Typo fix EMACScript -> ECMAScript 619314b Clarify that all input parameters must be `null` if not assigned. Clarify that `default` applies when the paramater value is `null`. 19e53aa List v1.0.1 errata. 0829bd0 Fix mistake in discussion of extracting field names from workflow step ids. cdc31b5 Add note that writable: true applies recursively. 4afaff7 Add note that files in InitialWorkDir must have path in output directory. 05c11fa Add note that recursive subworkflows is not allowed. 0477abc Bump to version 1.0.1. Add change of treatment `default` field as errata. e287937 adding docker container: test 52, rev command is not posix compliant 13d31ae adding docker container: test 51, rev command is not posix compliant c50c150 Merge pull request #480 from kapilkd13/gitattributes d94a88f adding .fasta file to gitattributes 30bc3d7 Merge pull request #479 from kapilkd13/container-correction 62fac93 Docker container added: test 89 inlinejs.cwl e18a107 Merge pull request #477 from common-workflow-language/yank-last-draft-ref 9da1f4b Merge pull request #474 from kapilkd13/gitattributes 0d859c8 Merge pull request #478 from common-workflow-language/correct-softreq-usage 68bce59 remove unused test file a2a8a08 remove last unneeded draft-N ref in v1.0 docs 1c24a42 Merge pull request #469 from common-workflow-language/cwltest-j b83f419 fix: change nameext test to include the dot 66296ad new: add conformance test for nameroot and nameext 557bd4f Merge pull request #475 from kapilkd13/container-correction f30c103 adding docker container hint, test 72: stagefile.cwl 739562c adding docker container hint, test 42: search.cwl 68d85c8 adding Docker Container, test 4:cat1-testcli.cwl 3125ddf added docker container, test no 3: tmap-tool.cwl b1ac8d7 added python conatiner as hints in test 2: binding-test.cwl d11bf77 adding git attributes file to keep LF line endings for correct sha on windows system instead of CRLF 8f26c9b Merge pull request #460 from common-workflow-language/expr-tests 88df8ef Merge pull request #473 from common-workflow-language/fix-v1.1-path ef1c87b fix path to conformance tests for optional default File 9e003bc Add support for cwltest -j to run_test.sh 7ea7dcf Merge pull request #118 from common-workflow-language/manu-chroma-patch-1 bde8dfb pin upper version of ruamel.yaml package 4d1c3ff Merge pull request #117 from common-workflow-language/better-bump a8c3fde oops b3c579f a better bump of the version (mea culpa) fa93acc Merge pull request #109 from manu-chroma/modernize 52c054e 3.6 too! a8903de setup.py: change version, uncomment classifiers for py3 d9bdc8b setup.py: cleanup 7748526 schema.py: fix some types, remove redundant str b2a5a26 bump ruamel version, put upper bound on ruamel in setup.py 3d60033 mypy_requirements.txt: bump mypy version a1f697b ref_resolver.py: mypy: use Text instead of unicode 669ebfc remove redundant condition with typing package 6b3d068 typeshed/3: add stubs(autogen) for avro-python3 8672a5c sourceline.py: replace AnyStr with Text type 740e235 mypy: turn off warn for unused ignore in --py3 4f0ad4f tox: separate out mypy targets for py2 and py3 d16c0e5 move cachecontrol stub files to typshed/2and3/ ad05e61 minor changes in rdflib stub files to make them compatible with mypy in py3 mode and move to typshed/2and3/ directory 65e583c mypy: some improvements in type annotations f051f49 typesheds/2.7: remove stub files which already come with mypy==0.511 1d11190 Makefile: add target for mypy without --py2 flag c6c88f1 add mypy.ini and ignore all ruamel.yaml package errors 2850043 makedoc.py: pass unicode string mintune markdown function 963ea3f mypy: add typeshed/2and3 in mypypath 62cbece add stub file for mistune package author = "Aleksandr Slepchenkov" email = "[email protected]" 4958ebf use Text type where ever Union[str, unicode] is expected d16a308 mypy: remove redundant ignore type annotations 090c1ba mypy: use latest stable version of mypy - use update ruamel.yaml package which includes more mypy annotations 67d7481 use same import pattern for six.urllib accross the codebase - also, re-ogranise six lib imports 150730c py3 fix: use six StringIO import 0773e44 fix urlparse using six in tests and schema_salad core; no automated fixers 6a11b16 mypy type annotations fix: replace unicode -> Text 8b6f9b3 Apply Python3 modernize transforms 1eb19b6 use typing>=3.5.3 b0b1f14 disable git version tagging to avoid testing conflicts with cwltool ff000db setup.py: add six as explicit dependency c66a3f9 tests: remove redundant parentheses in print statements b1605e3 fix: use six integer_types and string_types in place of int and basestring 29dcb7f tox.ini: fix bugs, enable flake8 linting for all python versions 5efed90 tox.ini: re-write file, include unit tests for all supported versions of python - enable more python3 versions on travis for unit testing 508c8d3 setup.py: bump version to '3.0' 9874d11 use same import pattern for six.urllib accross the codebase - also, re-ogranise six lib imports d23c804 tests: use assertEqual() inplace assertEquals() 3095597 fix: use six.integer_types to handle int, long incompatibles 965378f .tox.ini: turn on python3 unit testing 7ee4848 .gitignore: add more local folders 4d3c6de fix: use list of dict keys to iterate, fix flake8 warnings - py3 compatibility 916aaa1 py3: use six.moves.urllib instead of urllib 9108c7b fix: minor: py3 compatibility wrt avro cec0213 setup.py: install different version of avro in case of py3 runtime 3704c98 py3 fix: use six StringIO import e795ac9 fix: make regex command python3 compatible b4273f2 fix urlparse using six in tests and schema_salad core; no automated fixers df685ea modernize tests e9bb3ec mypy type annotations fix: replace unicode -> Text 3080c69 Apply Python3 modernize transforms caec629 Merge pull request #116 from manu-chroma/master 5a76bb6 create mypy_requirements.txt for mypy related deps ba88f5e add mypy, typed-ast dependency in requirements.txt b61311c Makefile: pin mypy, typed-ast version for jenkins make target 9d9317e Merge pull request #114 from manu-chroma/master 8372fe2 Merge branch 'master' into master d370602 Merge pull request #115 from common-workflow-language/skip_schemas e39018a Optional skip_schemas 99eae75 Add conformance test for static_checker 9bcc4f1 Add tests for $(null) and .length on arrays. 961986b cleanup 6a582c3 refactor flatten function. move to utils.py 3bba34e minor refactor: create utils.py 1acdac4 Add test for MultipleInputFeatureRequirement 5b3863a Merge pull request #112 from common-workflow-language/tweak-cov ffc3367 exclude tests from coverage report f4fe77f added v1.0 jobs, and fixed v1.1 paths 35dc6c5 spec clarification and tests for empty scatter fefed51 Merge remote-tracking branch 'upstream/master' 5b0b019 Validation fix. Must raise exception when raise_ex is true and record class (#107) 424ad78 Fix for self-colliding ids on $import (#102) 8a6eaff Validating Ids for duplicate Issue#56 (#98) a560ef3 Pass through logger to capture warnings. (#101) c3cd5b5 Merge remote-tracking branch 'upstream/master' ca9218e Merge pull request #99 from manu-chroma/master a63f75f schema_salad/tests: add tests for cli args testing: --version, empty args - fix return condition in main() 04c6784 schema_salad/main.py: --version now correctly prints version 61c2203 Merge pull request #100 from manu-chroma/test_patch a082ab5 schema_salad/tests: use print() in tests 00ad407 Merge branch 'master' of https://github.com/common-workflow-language/common-workflow-language 0114153 In vocab flag (#97) 39516e5 Add map and typedsl resolution documentation. (#96) 0b76655 Merge pull request #92 from kapilkd13/master c00ad4c Merge branch 'master' into master 2114715 Merge pull request #93 from common-workflow-language/mypy-0.501 f1d824d Don't switch to mypy v0.501 yet 8ab39f9 Upgrade to mypy v0.501 --strict 4f4fe73 added instalation from source instructions d2d7b1e added a warning message when error is being ignored a808742 Add tests that ShellCommandRequirement quote properly. 4573403 Add test to ensure that arguments containing shell directives are not interpreted and that `shellQuote: false` has no effect when ShellCommandRequirement is not in effect. 1e05b44 Set publicID when passing plain data to RDF parser. (#91) 2b98c03 Test case for creating empty writable directory using InitialWorkDirRequirement 15c0ab8 Relax strict checking foreign properties (#90) 3a7cf29 Merge pull request #89 from tjelvar-olsson/master f16c1a8 Add more directory fallbacks Loader session 50d0361 Make ref_resolver.Loader more fault tolerant 7522a24 Make split_frag optional in converting fileuri. (#88) d736a0e capture stdout and write to file c9fd6b9 write test result to file 878a74f Merge pull request #87 from common-workflow-language/release-update 6209496 newer pip dependency 05b82f1 add link and writable check 0347b8e Merge pull request #85 from chapmanb/debug-fixes 5c4ef60 Merge branch 'master' into debug-fixes 286001f Merge pull request #86 from common-workflow-language/mypy-470 9676ea8 track mypy rename e47f4e6 Improve debugging: missing filename and bad lists 2c6f26b implement feedback e334b74 first try bee8bf1 Merge pull request #84 from common-workflow-language/mypy0.470 822c8c1 upgrade to mypy 0.470 42f4bdd Fix performance regression in schema loading by stripping ruamel.yaml metadata, (#83) d21fa84 Expand uris in $schemas in resolve_all(). (#82) 55018dd Bump version to 2.2 (#81) b883526 Bugfix to uri_file_path. (#80) 0c7cc02 Remove pathlib2 because it is only used for one thing but creates dependency issues. (#79) f31369c Merge pull request #78 from common-workflow-language/explict-include f34d4ac explicitly include MD files & fix release test c1cf3e9 Merge pull request #77 from common-workflow-language/simplify-manifest a2e4236 simply the manifest 5d04ddb Merge pull request #76 from common-workflow-language/ensure-test-paths a37b623 ensure all test data is loaded flexibly 6a02920 Merge pull request #75 from common-workflow-language/adjust-manifest cefb22e Merge branch 'master' into adjust-manifest dd496a1 Include all relevant files so tests work post installation 8edfbc2 Bugfix resolving references to document fragments. (#74) a3ba891 Relax ruamel.yaml version pin. (#73) a5bbb36 Ensure keys are sorted when generated CommentedMap from a regular dict. (#72) ebdf27d Merge pull request #71 from common-workflow-language/pip-conflict-checker 2aecb05 Merge branch 'master' into pip-conflict-checker 999d689 Merge pull request #70 from psafont/win32 01af23d Fix typing 7a793ac drop html5lib pin, add pip-conflict-check 0e616d1 Fix types ad742f3 Manage pathlib and pathlib2 for all python versions cb754df Make url2pathname args compatible with python3 da751f7 Don't assume the type of ref f302f5f Fix a couple of test cases 0c0e4cc Added pathlib2 requirement 159541c Paths and URIs conversions are more generalized 9a9d639 Tweak cmap to better propagate filename down. (#69) 5a15c58 merge 1.21 changes into salad 2.0 (#68) a1db0ac Merge pull request #67 from common-workflow-language/mr-c-patch-1 56ac12b Link to v1.0 specs beed46d Merge pull request #65 from common-workflow-language/mobile-friendly 1e0f6a5 set the meta viewport tag f0b88d0 Bump major version number, because of backwards-incompatible changes. (#63) 8ac4540 Provide line numbers in error messages (#62) c045684 make example IRIs links; update v1.1 text 419fed3 link to IRI wikipage; update example modules IRI. 68c53bf Clarify SoftwareRequirement spec fields c2383bbd attempt at shipping cwl-runner.cwl 8454546 Bugfix for validating "class" field. (#61) 01dd303 Optimize validate (#60) 5a218794 rename toolfile to processfile & clarify 24dff784 clarify meaning of stdout, stderr 4a420989 drop implementation specific options 70d3543e add error code for unimplemented features 003fd482 drop conformance & basedir, clarify stdout 824c7057 add v1.0 cwl-runner interface 423e48b Merge pull request #58 from common-workflow-language/quiet-external-schema f2d86c1 Merge branch 'master' into quiet-external-schema f6744ad Merge pull request #53 from common-workflow-language/check-file-support-http 1728fd4 fix types 823f378 Merge remote-tracking branch 'origin/master' into check-file-support-http 9b6a6be demote log about external schema b1d7b69 Support http/https existence check (using HTTP HEAD) in check_file. git-subtree-dir: cwltool/schemas git-subtree-split: 721aa89275b3e5f09354b7926f8cb6291c3d834e
Overview
This initial prototype describes a new abstract Hint type (
Dependency
) for CWL tools to annotate and act on software packages depended on by a tool definition. This is backed by a pluggable framework for "resolving" these dependencies across a wide variety of platforms. These resolution strategies include custom shell scripts for a local infrastructure, environment modules (http://modules.sourceforge.net/), Homebrew (http://brew.sh/), and conda (https://conda.anaconda.org/). While certainly PRs to adapt this to other package managers, such as Debian, would be welcome - these existing ones have the distinct advantage of allowing multiple versions of a package to exist on the same machine and work in a cross platform fashion.While I believe that the work on custom packages and environment modules are important steps to allow consumers of CWL to leverage it on HPC resources - the conda resolver (and to a lesser extent the Homebrew resolver) is more exciting and more powerful because it allows for automatic installation as well mere resolution. The Mulled project for instance (https://github.com/mulled/mulled) (ping @bgruening) is work to automatically build Docker images from Homebrew and Conda dependency lists as described by this work. CWL tools that describe dependencies should therefore "get Docker for free" while also being readily usable on HPC and other non-Docker platforms using the same stack of dependencies. In addition to this increased reproducibility, Mulled Docker containers are arguably a little more structured and provide greater transparency than arbitrary Dockerfile-based containers - due to the declarative, structured nature of their construction.
This work is backed by the galaxy-lib project that makes various Galaxy functionality available as a Python library - in particular this work reuses the
galaxy.tools.deps
package within cwltool. The implementation could use a lot of work for sure - but I want to get a sense for what the path forward is for this.How To Use (Conda Example)
Add dependencies as
hints
:or just for a unversioned dependency:
Create a dependency resolvers configuration file - sets call it
/path/tool/deps/conda_resolvers_conf.yml
- for example the following one will work for conda and enable advanced features such as automatic installation of conda, automatic installation of tools, and inexact version resolution if the exact version cannot be found. This file can be XML or JSON as well... but who cares...Install
galaxy-lib
in cwltool's environment - e.g.pip install cwltool
. The only new dependency this should introduce besidesgalaxy-lib
issix
I think.Call cwltool with a
--dependency-resolvers-configuration
argument.Execution of this tool should now install conda, install bwa from bioconda, and setup a conda environment just or that job with that precise version of bwa (or combination of dependencies if multiple ones are supplied), and then run the tool with that environment sourced.
Implementation
In addition to the routine plumbing of adding a command-line argument and passing the Galaxy object around - this reworked job.py to optionally run shell commands to setup an environment before actually calling Popen in another process. This is probably incorrect in some ways - I'll keep working on testing and such if there is interest in this.
Galaxy code is imported conditionally so galaxy-lib remains an optional dependency.