Skip to content

Commit f2e05d0

Browse files
author
Janneke van der Zwaan
committed
Some more editing
- remove line breaks - use headings for structure - make the wording clearer
1 parent d7e8810 commit f2e05d0

File tree

1 file changed

+60
-67
lines changed

1 file changed

+60
-67
lines changed

windowsdoc.md

Lines changed: 60 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,38 @@
1-
## **Windows Compatible Cwltool**
2-
Windows Compatible cwltool means that now you can create and run your workflows
3-
using cwltool on Windows under a [Docker Container](https://docs.docker.com/docker-for-windows/).
4-
On Windows, all tools and workflows will be executed inside a linux based Docker
5-
Container. If a Docker Container is not explicitly provided (using [Docker Requirement](http://www.commonwl.org/v1.0/CommandLineTool.html#DockerRequirement))
6-
by user, then a minimal, posix compliant Alpine Docker image which has Bash pre
7-
installed as fallback (Default) [Docker Container](https://github.com/frol/docker-alpine-bash).
8-
You can also provide your own default Docker Container using the `--default-container` argument.
9-
10-
### ***Windows Version Supported***:
1+
# Windows Compatibility
2+
cwltool is compatible with Windows. This means that you can create and run CWL workflows on Windows. On Windows, all workflows and tools are executed in [Docker Containers](https://docs.docker.com/docker-for-windows/). The default Docker Container is [Alpine with Bash support](https://github.com/frol/docker-alpine-bash). You can specify other Docker Containers for your tools and workflows using hints, [requirements](http://www.commonwl.org/v1.0/CommandLineTool.html#DockerRequirement)), or the `--default-container` cwltool option.
3+
4+
## Supported Windows versions
5+
116
* Windows 10 with native [Docker for Windows](https://docs.docker.com/docker-for-windows/).
127
* Windows 8.1 with [Docker ToolBox](https://docs.docker.com/toolbox/toolbox_install_windows/).
138
* Windows 7 & 8 with Docker ToolBox may work (Not tested, please let us know!).
149

15-
### ***Requirements***:
16-
* [Python 2 or 3](https://www.python.org/downloads/windows/).
10+
## Installation
11+
12+
You can install cwltool using pip or directly from source code.
13+
14+
### Requirements
15+
16+
Before installing cwltool, please install:
17+
18+
* [Python 2 or 3](https://www.python.org/downloads/windows/)
1719
* [Docker](https://docs.docker.com/docker-for-windows/install/)
20+
* [Node.js](https://nodejs.org/en/download/) (optional, please install if your workflows or tools contain [Javascript Expressions](http://www.commonwl.org/v1.0/CommandLineTool.html#InlineJavascriptRequirement))
1821

19-
### ***Best Practises***:
20-
You should install [Node.js](https://nodejs.org/en/download/) on your system if
21-
your workflow contains [Javascript Expressions](http://www.commonwl.org/v1.0/CommandLineTool.html#InlineJavascriptRequirement).
22+
### Install using pip
2223

23-
### ***Installation***:
24-
You can install cwltool either using pip or directly from source code.
25-
**Using Pip**:
26-
You can install cwltool on Windows using pip
27-
`pip install cwltool`
24+
```
25+
pip install cwltool
26+
```
27+
28+
### Install from source
2829

29-
**Installing from source**:
3030
```
3131
git clone https://github.com/common-workflow-language/cwltool.git
3232
cd cwltool
3333
python setup.py develop
3434
```
35-
***Note:*** In order to test if cwltool has been successfully installed on your
36-
Windows system, run `cwltool` on your `cmd`. A screen showing help instructions
37-
like shown below should be there.
35+
***Note:*** In order to test if cwltool has been successfully installed on your Windows system, run `cwltool` in `cmd`. If you see help instructions, cwltool was successfully installed.
3836
```
3937
CWL document required, no input file was provided
4038
usage: cwltool [-h] [--basedir BASEDIR] [--outdir OUTDIR] [--no-container]
@@ -44,36 +42,43 @@ like shown below should be there.
4442
.......................
4543
```
4644

45+
## Running tests
46+
47+
There are two types of tests available for cwltool: unit tests and concformance tests.
48+
49+
### Unit tests
50+
51+
To run cwltool's unit tests, go to the cwltool repository on your system and run
52+
53+
```
54+
python setup.py test
55+
```
56+
57+
### Conformance tests
4758

48-
### ***Running Cwltool's Unit Tests***
49-
If you want to run cwltool's unit test, go to cwltool's repository on your system and run
50-
`python setup.py test`
59+
To run the conformance tests, follow these instructions:
5160

52-
### ***Running Conformance tests using cwltool***
53-
```pip install cwltest
54-
git clone https://github.com/common-workflow-language/common-workflow-language.git
55-
cd common-workflow-language/v1.0
56-
cwltest --test conformance_test_v1.0.yaml -j 4 --tool cwltool
5761
```
58-
Here `-j` arg is used to run multiple tests in parallel.
62+
pip install cwltest
63+
git clone https://github.com/common-workflow-language/common-workflow-language.git
64+
cd common-workflow-language/v1.0
65+
cwltest --test conformance_test_v1.0.yaml -j 4 --tool cwltool
66+
```
67+
The `-j` options is used to run multiple tests in parallel.
5968

60-
 
61-
 
69+
## Troubleshooting
6270

63-
> #### Installing cwltool on Windows is smooth but you may face some problems
64-
in setting up Docker. Some of the common issues and their solution are mentioned below.
71+
You may encounter some problems with Docker on Windows.
6572

66-
 
73+
### Docker doesn't work on Windows, even outside cwltool
6774

68-
**Docker doesn't work on Windows, even outside cwltool.**
69-
Make sure you followed all instructions carefully while installing Docker. Please
70-
check the Environment variables. If the problem persists, we recommend consulting
71-
the [online Docker Community](https://forums.docker.com/).
75+
Make sure you followed all instructions carefully while installing Docker. Please check the Environment variables. If the problem persists, we recommend consulting the [online Docker Community](https://forums.docker.com/).
76+
77+
### Your local drives are not being shared with Docker Containers
7278

73-
**Your local drives are not being shared with Docker Container.**
7479
* ***On native Docker for Windows (supported by Windows 10):***
7580
On your tray, next to your clock, right-click on Docker, then click on Settings,
76-
there you'll find the shared rives: Here you can share your drives with Docker.
81+
there you'll find the shared rdives: Here you can share your drives with Docker.
7782
If you encounter a problem with your firewall, please [refer this post](https://blog.olandese.nl/2017/05/03/solve-docker-for-windows-error-a-firewall-is-blocking-file-sharing-between-windows-and-the-containers/).
7883

7984
* ***On Docker Toolbox:***
@@ -85,27 +90,15 @@ If you want to keep these settings permanent (Recommended!), You should mark the
8590
`make permanent` checkbox or else these settings will be erased every time your
8691
virtualbox closes.
8792

88-
**In a Docker Container with shared drives, not all files are shown on `ls`.**
89-
This means your drives/folders are not shared properly. Docker uses caching,
90-
which may result in not all files and folders being listed on ls.
91-
In order to solve this problem, make your drive mapping settings permanent (see previous question).
92-
93-
**Can't create/modify a file in Docker when using cwltool.**
94-
When folders are shared with Docker Container, they inherit their current file
95-
access permissions. If you can write to a folder (with your current privileges)
96-
on your local machine, you should be able to write to that folder inside Docker
97-
Container also (provided same user initiated Docker). In all it is a file permission issue.
98-
99-
**Workflows with Javascript Expressions occasionally give Timeout errors.**
100-
To evaluate Javascript Expressions, cwltool looks for Nodejs on your system.
101-
In case Nodejs isn't installed, JS expressions are executed in a Docker Container.
102-
In order to avoid waiting forever in case error occurs, cwltool times out js
103-
expression evaluation after a timeout period (by default 20 seconds). You can
104-
provide a custom timeout period using `--eval-timeout` argument.
105-
So if you face this error, the best option is to install Nodejs on your local
106-
system. If you can't then use the `--eval-timeout` argument and set a higher timeout value.
107-
108-
> #### If you still face some issues setting up and using Docker on Windows,
109-
please consult the online Docker Community. If the problem is specific to cwltool,
110-
create an [issue on cwltool](https://github.com/common-workflow-language/cwltool/issues).
93+
### In a Docker Container with shared drives, not all files are shown on `ls`
94+
95+
This means your drives/folders are not shared properly. Docker uses caching, which may result in not all files and folders being listed on ls. In order to solve this problem, make your drive mapping settings permanent (see previous question).
96+
97+
### Can't create/modify a file in Docker when using cwltool
98+
99+
When folders are shared with Docker Container, they inherit their current file access permissions. If you can write to a folder (with your current privileges) on your local machine, you should be able to write to that folder inside Docker Container also (provided same user initiated Docker). In all it is a file permission issue.
100+
101+
### Workflows with Javascript Expressions occasionally give Timeout errors
102+
To evaluate Javascript Expressions, cwltool looks for Nodejs on your system. In case Nodejs isn't installed, JS expressions are executed in a Docker Container. In order to avoid waiting forever in case error occurs, cwltool times out js expression evaluation after a timeout period (by default 20 seconds). You can provide a custom timeout period using `--eval-timeout` argument. So if you face this error, the best option is to install Nodejs on your local system. If you can't then use the `--eval-timeout` argument and set a higher timeout value.
111103

104+
*If you still have problems with setting up and using Docker on Windows, please consult the online Docker Community. If the problem is specific to cwltool, create an [issue on cwltool](https://github.com/common-workflow-language/cwltool/issues).*

0 commit comments

Comments
 (0)