common-workflow-language / common-workflow-language/schema_salad

Backported schemas to `codegen` branch may break portability between platforms due to handling `typeDSL`

Open
#863 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
86
Forks
64
Avg merge
19h 24m
Merged PRs (30d)
19

Description

I'm not sure here is an appropriate place for this issue but I report it here because it is related to `saladVersion`.

Historically, in my understanding, the `saladVersion` field was introduced not to break the compatibility when implementing nested typeDSL.
That is:
- Schemas of CWL v1.0, v1.1, v1.2 are defined with saladVersion v1.2 or earlier, not to handle nested typeDSL. Otherwise it may break portability between platforms
- A Schema of CWL v1.3 is defined with saladVersion v1.3 to handle nestd typeDSL

At that time, we also discussed to introduce another field to control it but finally it was rejected.

By the way, saladVersion v1.3 also introduces map and union schemas to represent input objects and they are backported to the schemas in the `codegen` branch of CWL v1.0-v1.2.

That is, the code-gerenated parsers with backported schemas in saladVersion v1.3 accidentally support nested typeDSL.
Not to break the portability between platforms, it would be nice if we can fix this issue.

There are several ways to fix it.
1. Introduce a new field to control nested typeDSL
- It was discussed when implementing nested typeDSL but finally we decided to introduce `saladVersion` instead
- IMO this option is worth discussed again
2. Give up to backport map and union schemas to CWL v1.0-v1.2
- It may become complex to implement and maintain the platforms for CWL v1.0-v1.2
3. Support nested typeDSL in CWL v1.0-v1.2
- IMO we cannot use this option because it is a breaking change to the spec
4. Others?

What do you think?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.