Skip to content
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

Sink type refactoring #6

Merged
merged 1 commit into from
Jan 3, 2023
Merged

Sink type refactoring #6

merged 1 commit into from
Jan 3, 2023

Conversation

GlassOfWhiskey
Copy link
Collaborator

@GlassOfWhiskey GlassOfWhiskey commented Dec 28, 2022

This commit is motivated by the fact that the linkMerge and pickValue fields were repeated in the Sink and WorkflowOutputParameter types.

To remove this repetition, these two fields have been isolated in a new type called Sink. The previous Sink type, which is now named InputSink extends Sink with the source field, while a new OutputSink type extends Sink with the outputSource field.

The WorkflowInputParameter type extends the InputSink, while the WorkflowOutputParameter type inherits from OutputSink. Note that this separation will be useful also for future extensions. For example, the proposed loop feature will build upon the OutputSink type to map the step outputs into the inputs of the next iteration.

Copy link
Member

@mr-c mr-c left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@GlassOfWhiskey GlassOfWhiskey mentioned this pull request Dec 28, 2022
This commit is motivated by the fact that the `linkMerge` and `pickValue`
fields were repeated in the `Sink` and `WorkflowOutputParameter` types.

To remove this repetition, these two fields have been isolated in a new
type called `Sink`. The previous `Sink` type, which is now named `InputSink`
extends `Sink` with the `source` field, while a new `OutputSink` type extends
`Sink` with the `outputSource` field.

The `WorkflowInputParameter` type extends the `InputSink`, while the
`WorkflowOutputParameter` type inherits from `OutputSink`. Note that
this separation will be useful also for future extensions. For example,
the proposed `loop` feature will build upon the `OutputSink` type to map
the step outputs into the inputs of the next iteration.
@mr-c
Copy link
Member

mr-c commented Jan 2, 2023

Object model before:

CWL v1.2 Object Model

Object model after:
cwl-v1 3

zoomed in:
image

@mr-c mr-c merged commit 747ab94 into main Jan 3, 2023
@mr-c mr-c deleted the sink-type-refactoring branch January 3, 2023 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants