galaxyproject / galaxyproject/galaxy
Polish Workflow Refactoring API
- Dominant language
- Python
- Stars
- 1.9k
- Forks
- 1.2k
- Avg merge
- 2d 16h
- Merged PRs (30d)
- 169
Description
Post merge of #10988 which introduced this API.
- [ ] Add new refactoring steps:
- [x] ``{action: 'upgrade_subworkflow', step }`` https://github.com/galaxyproject/galaxy/pull/11032
- [x] ``{action: 'upgrade_tool', step }`` https://github.com/galaxyproject/galaxy/pull/11032
- [x] ``{action: 'fill_step_defaults', step: }`` https://github.com/galaxyproject/galaxy/pull/11032
- [x] ``{action: 'fill_defaults'}`` https://github.com/galaxyproject/galaxy/pull/11032
- [x] ``{action: 'update_output_label'}`` https://github.com/galaxyproject/galaxy/pull/11032 (not important, but helped with testing)
- [ ] ``{action: 'restore_workflow_version'}``
- [x] Rework response to include a structured message for each input action. So things like disconnected inputs/outputs during subworkflow upgrades of tool state upgrades can be presented to the user and tracked. https://github.com/galaxyproject/galaxy/pull/11032
- [x] In ``dry_run=true``, capture the messages and do some extra checking that could predict database problems (specifically, I'm sure we could catch label problems at this step and we probably don't.)) https://github.com/galaxyproject/galaxy/pull/11032
- [x] ``dry_run=true`` should return the effective new state, so the UI can do stuff like ``upgrade_subworkflow`` or ``restore_workflow_version``, render the results and display the messages but still require a "Save" before the new version is committed. https://github.com/galaxyproject/galaxy/pull/11032
- [ ] Store typed and structured actions and messages in the database along with the new workflow version created.
- [ ] Rework ``hasChanges`` tracking in ``Index.vue`` to track structured list of changes, use the refactoring API when possible.
- [ ] Eventually use refactoring API for all UI interactions that touch the ``Workflow`` object (something like editing the tags might be fine with the old API). (This would essentially implement #9166).
Contributor guide
Research direction
Review the remaining checklist and the API introduced by #10988, including the changes in #11032. Start with the restore_workflow_version action, structured action/message persistence, and hasChanges tracking in Index.vue; done means these remaining API, database, and UI integrations are implemented and verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, python
- Domain
- backend-api-design, database, frontend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100