diff --git a/CHANGELOG.md b/CHANGELOG.md index 46a8d3f..e85e6e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [0.4.0] - 2024-06-02 + +### Added + +- Add basic support for Workflow Test Files (`*-test.yml`) [#63](https://github.com/davelopez/galaxy-workflows-vscode/pull/63) + +### Changed + +- Improve gxFormat2 auto-completion support [#67](https://github.com/davelopez/galaxy-workflows-vscode/pull/67) + ## [0.3.1] - 2023-10-01 ### Changed diff --git a/README.md b/README.md index 96f6b6c..f7f8d5e 100644 --- a/README.md +++ b/README.md @@ -5,22 +5,24 @@ [![CI](https://github.com/davelopez/galaxy-workflows-vscode/actions/workflows/main.yml/badge.svg)](https://github.com/davelopez/galaxy-workflows-vscode/actions/workflows/main.yml) [![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/davelopez/galaxy-workflows-vscode) -VSCode extension to assist in editing [Galaxy Workflow](https://galaxyproject.org/) files while enforcing [best practices](https://planemo.readthedocs.io/en/latest/best_practices_workflows.html). Use it in combination with [Planemo](https://github.com/galaxyproject/planemo) for the best experience developing and maintaining your Galaxy workflows. +The **Galaxy Workflows VSCode extension** assists in editing [Galaxy](https://galaxyproject.org/) Workflow files while enforcing [best practices](https://planemo.readthedocs.io/en/latest/best_practices_workflows.html). Use it in combination with [Planemo](https://github.com/galaxyproject/planemo) for an optimal experience in developing and maintaining your Galaxy workflows. -The extension can be installed either locally, or in a web context, like [github.dev](https://github.dev) or [vscode.dev](https://vscode.dev). The aim is to support the maximum number of features in both modes but the web mode may have some limitations. +You can install the extension locally or in a web context, such as [github.dev](https://github.dev) or [vscode.dev](https://vscode.dev). The extension aims to support as many features as possible in both modes, though the web mode may have some limitations. -The extension aims to focus on assist in editing [**Format 2** Galaxy Workflow](https://github.com/galaxyproject/gxformat2) (.gxwf.yml) files. However, it will work with _legacy_ or _native_ **Galaxy Workflow** format (documents with **.ga** extension) as an experiment for legacy workflow maintainers. +The extension focuses on assisting with editing [**Format 2** Galaxy Workflow](https://github.com/galaxyproject/gxformat2) (**.gxwf.yml**) files. However, it also supports the _native_ **Galaxy Workflow** format documents (with **.ga** extension) for legacy reasons. -> ⚠️ Please note the _Native_ Galaxy Workflow format (.ga) is considered internal and _legacy_. The support provided here is temporal and experimental. If you are developing workflows manually use the new [**Format 2** Galaxy Workflow](https://github.com/galaxyproject/gxformat2) (.gxwf.yml). +> ⚠️ Please note the _Native_ (or _Format1_) Galaxy Workflow format (.ga) is considered internal and is not meant to be edited manually. The support provided here is temporary and experimental. If you are developing workflows manually, use the new [**Format 2** Galaxy Workflow](https://github.com/galaxyproject/gxformat2) (.gxwf.yml). -If you find a bug or have an idea or suggestion that can improve your experience please create a [new issue here](https://github.com/davelopez/galaxy-workflows-vscode/issues) or comment in any of the existing ones. +If you find a bug or have a suggestion to improve your experience, please create a [new issue here](https://github.com/davelopez/galaxy-workflows-vscode/issues) or comment on any existing ones. ## Quick Start +> ⚠️ Important: To properly detect your Galaxy Workflow files, they must have the correct file extension. For **Format 2** Galaxy Workflows, use the `.gxwf.yml` extension, and for the _native_ Galaxy Workflows, use the `.ga` extension. + ### Option 1: Install extension locally 1. Open VSCode -2. Install the extension from the [marketplace](https://marketplace.visualstudio.com/items?itemName=davelopez.galaxy-workflows). +2. Install the extension from the [Marketplace](https://marketplace.visualstudio.com/items?itemName=davelopez.galaxy-workflows). 3. Open any Galaxy Workflow document (.gxwf.yml or .ga) and the extension will activate. ### Option 2: Use it directly in `vscode.dev` or `github.dev` @@ -31,7 +33,7 @@ If you find a bug or have an idea or suggestion that can improve your experience 2. Install the extension if you haven't already: - - Go to the extensions panel (`Ctrl+Shift+x`) and search for `davelopez.galaxy-workflows` then click `Install` + - Go to the extensions panel (`Ctrl+Shift+x`), search for `davelopez.galaxy-workflows`, and click `Install` 3. Enjoy the workflow editing features directly on your browser ✨ @@ -49,15 +51,16 @@ Just make sure to read the [Contributing Guidelines](docs/CONTRIBUTING.md) 😉 The following table shows all the implemented features and the current support for each workflow format. -| Feature | Legacy Workflows (.ga) | Format 2 Workflows (.gxwf.yml) | -| ------------------------------------------------------- | :--------------------: | :----------------------------: | -| [Validation](#workflow-validation) | ✔️ | ✔️ | -| [Documentation on Hover](#documentation-on-hover) | ✔️ | ✔️ | -| [IntelliSense](#intellisense) | ✔️ | ✔️ | -| [Formatting](#formatting) | ✔️ | ✔️ | -| [Custom Outline](#custom-outline) | ✔️ | ✔️ | -| [Workflow Cleanup Command](#workflow-cleanup-command) | ✔️ | ❔ | -| [Simplified Workflow Diffs](#simplified-workflow-diffs) | 🔶 | ❔ | +| Feature | Legacy Workflows (.ga) | Format 2 Workflows (.gxwf.yml) | +| ------------------------------------------------------------------- | :--------------------: | :----------------------------: | +| [Validation](#workflow-validation) | ✔️ | ✔️ | +| [Documentation on Hover](#documentation-on-hover) | ✔️ | ✔️ | +| [IntelliSense](#intellisense) | ✔️ | ✔️ | +| [Formatting](#formatting) | ✔️ | ✔️ | +| [Custom Outline](#custom-outline) | ✔️ | ✔️ | +| [Workflow Cleanup Command](#workflow-cleanup-command) | ✔️ | ❔ | +| [Simplified Workflow Diffs](#simplified-workflow-diffs) | 🔶 | ❔ | +| [Workflow Tests Document Support](#workflow-tests-document-support) | ✔️ | ✔️ |
Legend @@ -66,7 +69,7 @@ The following table shows all the implemented features and the current support f 🔜 Feature not yet available but planned for future release. -❔ This feature may not apply to this format or not planned yet. +❔ This feature may not apply to this format or is not planned yet. 🔶 This feature is only supported in local repositories or file systems. Not supported in _Web_ mode or _Virtual File Systems_. @@ -77,7 +80,7 @@ The following table shows all the implemented features and the current support f ### Workflow Validation -You will get diagnostics for every syntax error or incorrect property value as you type so you can fix them right away. +You will receive diagnostics for every syntax error or incorrect property value as you type, allowing you to fix them immediately. #### Gxformat2 (yaml) @@ -91,7 +94,7 @@ You will get diagnostics for every syntax error or incorrect property value as y ### Documentation on Hover -Hover over properties to get a description of what they are and how can you use them. The documentation displayed is based on the Workflow schema annotations, if you think you need more details or something is off, please help us improve the schema [here](https://github.com/galaxyproject/gxformat2)! +Hover over properties to get a description of what they are and how to use them. The documentation displayed is based on the Workflow schema annotations. If need more details or find something incorrect, please help us improve the schema [here](https://github.com/galaxyproject/gxformat2)! #### Gxformat2 (yaml) @@ -105,7 +108,7 @@ Hover over properties to get a description of what they are and how can you use ### IntelliSense -Get [IntelliSense](https://code.visualstudio.com/docs/editor/intellisense#:~:text=IntelliSense%20is%20a%20general%20term,%2C%20and%20%22code%20hinting.%22) suggestions depending on your cursor context. Remember that you can manually trigger the suggestions at your current cursor position using `Ctrl+Space`. +Get [IntelliSense](https://code.visualstudio.com/docs/editor/intellisense#:~:text=IntelliSense%20is%20a%20general%20term,%2C%20and%20%22code%20hinting.%22) suggestions based on your cursor context. You can manually trigger suggestions at your current cursor position using `Ctrl+Space`. #### Gxformat2 (yaml) @@ -119,7 +122,7 @@ Get [IntelliSense](https://code.visualstudio.com/docs/editor/intellisense#:~:tex ### Formatting -Keep your workflow document consistently formatted. We recommend enabling your VSCode setting to `Format on Save` so you don't have to manually format after the changes. +Keep your workflow document consistently formatted. We recommend enabling the VSCode `Format on Save` setting so you don't have to manually format after making changes. #### Gxformat2 (yaml) @@ -133,7 +136,7 @@ Keep your workflow document consistently formatted. We recommend enabling your V ### Custom Outline -The `Custom Outline` allows you to navigate and find different parts of the Workflow faster using the Outline panel or the [Breadcrumbs](https://code.visualstudio.com/docs/editor/editingevolved#_breadcrumbs). The Outline representation has been enhanced, in comparison to the standard JSON Outline, by displaying relevant information more prominently (like using the workflow step name instead of the index on step nodes) or hiding non-essential nodes. +The `Custom Outline` allows you to navigate and find different parts of the Workflow faster using the Outline panel or [Breadcrumbs](https://code.visualstudio.com/docs/editor/editingevolved#_breadcrumbs). Compared to the standard JSON Outline, the enhanced Outline representation displays relevant information more prominently (e.g., using the workflow step name instead of the index on step nodes) and hides non-essential nodes. #### Gxformat2 (yaml) @@ -147,7 +150,7 @@ The `Custom Outline` allows you to navigate and find different parts of the Work ### Workflow Cleanup Command -You can clean up the non-essential properties of a (legacy .ga) workflow with this command. These properties are usually related to the display of the workflow in the editor and are not part of the workflow semantics. This command will remove those properties from the document, but you can also use the `Preview clean workflow` command, which will show you a preview of the clean workflow instead of making the changes to the original. +You can clean up the non-essential properties of a (legacy .ga) workflow with this command. These properties are usually related to the display of the workflow in the editor and are not part of the workflow semantics. This command will remove those properties from the document, but you can also use the `Preview clean workflow` command to show a preview of the clean workflow without making changes to the original. #### Legacy (ga) @@ -159,7 +162,7 @@ You can clean up the non-essential properties of a (legacy .ga) workflow with th > ⚠️ This feature is experimental and is only available using a local git repository. -Sometimes you want to compare different revisions of the same (legacy .ga) workflow and see what has changed between them. If the workflow has been through the Galaxy editor or some of the nodes have been moved around, there can be many changes that are just cosmetical and not part of the workflow logic. In those cases, you may want to get a 'simplified' diff so you can focus on the 'real' changes. You can do so in the `Timeline` or the `File Explorer` by using `Select workflow for (clean) compare` in one revision and then `Compare with this workflow (clean)` on the other revision, this will compare both revisions using the 'clean' version of the workflow (see the [Workflow Cleanup Command](#workflow-cleanup-command)), meaning the non-essential parts are removed from both documents before the comparison. +Sometimes you want to compare different revisions of the same (legacy .ga) workflow and see what has changed. If the workflow has been through the Galaxy editor or some nodes have been moved around, there can be many cosmetic changes that are not part of the workflow logic. In those cases, you may want to get a 'simplified' diff to focus on the 'real' changes. You can do this in the `Timeline` or the `File Explorer` by using `Select workflow for (clean) compare` in one revision and then `Compare with this workflow (clean)` in the other revision. This will compare both revisions using the 'clean' version of the workflow (see the [Workflow Cleanup Command](#workflow-cleanup-command)), meaning the non-essential parts are removed from both documents before the comparison. > ⚠️ **NOTE**: > This feature is no longer supported in the `Timeline` until a new version of the VSCode Timeline API is finalized and published. See [this PR](https://github.com/davelopez/galaxy-workflows-vscode/pull/59) for more details. @@ -168,4 +171,10 @@ Sometimes you want to compare different revisions of the same (legacy .ga) workf ![Simplified Workflow Diffs Demo](images/clean-diff-native.gif) +### Workflow Tests Document Support + +You can now edit Workflow Test Files (`*-test.yml`) with basic language support. This includes syntax highlighting, validation, auto-completion, and documentation on hover based on the _experimental_ schema for Workflow Test Files. + +![Workflow Tests Document Support Demo](images/workflow-test-documents-support.gif) + [Back to Features ⬆️](#features) diff --git a/images/workflow-test-documents-support.gif b/images/workflow-test-documents-support.gif new file mode 100644 index 0000000..534e0da Binary files /dev/null and b/images/workflow-test-documents-support.gif differ diff --git a/package.json b/package.json index 5e674c2..eb9c3cc 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "galaxy-workflows", "displayName": "Galaxy Workflows", "description": "Utilities to assist in the edition of Galaxy (https://galaxyproject.org/) Workflow files.", - "version": "0.3.1", + "version": "0.4.0", "preview": true, "license": "MIT", "publisher": "davelopez", diff --git a/server/README.md b/server/README.md index 9cc5aeb..975e863 100644 --- a/server/README.md +++ b/server/README.md @@ -27,3 +27,7 @@ This library contains common classes, interfaces and type definitions used by bo ### packages/yaml-language-service This library implements a language service to provide basic _smarts_ for YAML documents. It is based and inspired by both the [YAML Language Server](https://github.com/redhat-developer/yaml-language-server) implementation from Red Hat and the [vscode-json-languageservice](https://github.com/microsoft/vscode-json-languageservice) by Microsoft. + +### packages/workflow-tests-language-service + +This library implements a language service to provide basic _smarts_ for **Galaxy workflow test documents**. This library is used by the `gxformat2` language server to provide autocompletion, validation and hover information for test documents.