CWL で `basename` が複数 File や Directory に現れたときの挙動の調査
以下は CWL v1.2 での挙動。他のバージョンだと明記されていない可能性がある。
File + File
|
File + Directory
|
Directory + Directory
|
|
---|---|---|---|
Directory#listing |
エラー[1][2] | エラー[1:1][2:1] | マージ[3] |
InitialWorkDirRequirement |
片方のみ残る[4] | 片方のみ残る[4:1] | 片方のみ残る[4:2] |
File#secondaryFiles | エラー[5] | エラー[5:1] | エラー[5:2] |
Workflow#outputs (仕様なし) |
リネーム | 未調査 | 内部エラー (マージ?) |
Workflow#outputs
の項目は、ワークフローの各ステップでそれぞれ basename
が同じ File や Directory が生成され、それらが出力オブジェクトに含まれてしまうケース。
cwltool の挙動は以下になる:
- ファイル名を変更し、
path
フィールドおよびlocation
フィールドに反映させる -
basename
はそのまま
Directory
+ Directory
の場合、cwltool はディレクトリをマージしようとして失敗したように見えるエラーを返す。
-
It is an error if a
File
shares abasename
with any other entry inlisting
. ↩︎ ↩︎ -
Name conflicts (the same
basename
appearing multiple times inlisting
or in any entry insecondaryFiles
in the listing) is a fatal error. ↩︎ ↩︎ -
If two or more
Directory
object share the samebasename
, this must be treated as equivalent to a single subdirectory with the listings recursively merged. ↩︎ -
If the same File or Directory appears more than once in the
InitialWorkDirRequirement
listing, the implementation must choose exactly one value forpath
; how this value is chosen is undefined. ↩︎ ↩︎ ↩︎ -
It is an error for file names to be duplicated in
secondaryFiles
. ↩︎ ↩︎ ↩︎