[WIP] Add workflow step parameters to workflow editor#6829
[WIP] Add workflow step parameters to workflow editor#6829mvdbeek wants to merge 16 commits intogalaxyproject:devfrom
Conversation
177a947 to
e00fbbb
Compare
|
A good fraction of the UI is there and seems to work OK-ish, but the actual non-data parameter replacement only works for new-style workflow API submissions with |
| ], | ||
| } | ||
|
|
||
| if trans.app.config.enable_beta_workflow_modules: |
There was a problem hiding this comment.
My two cents is that I'd keep the option and just promote parameter_input to an un-beta parameter.
|
I'll play with this and see if I can figure out an opinion on the API unification and fix the tests. |
|
Oooooh. Screenshots? |
|
We should separate the data and non-data inputs in the workflow node (a bar, and maybe different color noodle), and the workflow inputs should move to the top where we also render the old workflow replacement parameters. And I'm sure there are plenty of bugs in there, just trying to figure this out. |
:( indeed it does. I'll start with the input parameters and see if I can separate them out, after that if I can separate out the data parameters so we are tracking them with database integrity using proper tracking with |
|
Working on ripping parameter inputs from the raw param map produced by the tool form and I encountered another problem - it looks like this branch breaks the parameter_inputs in some way. In particular the following test case that works in dev: No longer works, the key line in the logs I think is seeing that there is an unmatched input connection. I'm going to see if I can figure out what caused this - none of the backend changes are obvious problems at first glance to me. |
lib/galaxy/model/__init__.py
Outdated
| return (self.output_name == WorkflowStepConnection.NON_DATA_CONNECTION and | ||
| self.input_name == WorkflowStepConnection.NON_DATA_CONNECTION) | ||
| return (self.output_name == self.input_name == WorkflowStepConnection.NON_DATA_CONNECTION or | ||
| self.output_step and self.output_step.type == 'parameter_input') |
There was a problem hiding this comment.
Reverting this diff fixes the test case. I guess there aren't docs for this - but I don't like this change. The parameter_input is transferring data to the step - it isn't an implicit connection so this should return False IMO. I see why you made the change here - for when building the editor dict:
# FIXME: this removes connection without displaying a message currently!
+ input_connections = [conn for conn in input_connections if conn.input_name in data_input_names]
- input_connections = [conn for conn in input_connections if conn.input_name in data_input_names or conn.non_data_connection]Maybe we should bite the bullet and just not do that filtering at all - push all the connections to the editor? This way the editor can tell the user if there are invalid connections found and we can eliminate that FIXME?
| var type = output.type; | ||
| var terminal = new Terminals.OutputParameterTerminal({ | ||
| element: this.el, | ||
| datatypes: type |
There was a problem hiding this comment.
Should these changes be reverted - given the class below?
There was a problem hiding this comment.
Oh yeah, sure, should have cleaned this up before.
There was a problem hiding this comment.
Going to remove this via rebase on this commit and force push to your branch - hope that is okay.
|
Sure, go ahead, happy to get this rolling! |
|
@mvdbeek My new change is still creating more issues then solving and the GUI is terrible - but this is an outline of separating RuntimeValue into RuntimeValue and ConnectedValue (jmchilton@15e667c). I guess my next step is to try to make data and non-data parameters more similar in terms of the tool state and module interface. The data parameters should have ConnectedValue as their tool state value and then we can uniformly have inputs with ConnectedValues appear with connections and eliminate the distinction between parameters and inputs. This will be good from an interface perspective but is also required for CWL where a parameter that can take an integer or a File for instance is totally possible. I'll probably merge #6911 into that to provide that consistent interface on the backend, I'll rework the frontend a bit - I think you have the right classes I just want to change how their instantiated a bit I think. |
In the current state when a text, integer, float, boolean or boolean parameter is set as "Set at Runtime" a new connectable input appears for the tool node, to which a Parameter can be properly dragged and connected. This still needs a little more separation from data inputs/outputs, and the new connection isn't persisted in a meaningful way.
select lists don't take a `value` argument.
…dules I don't think anyone will start using them if they're hidden behing this flag.
75427fe to
d2ab38a
Compare


This should allow specifying text, integer, float, boolean and color Parameters that can be re-used across workflow nodes. This build on 45962f3