From 2a79edc51325e2c44b094190cb59366535da3134 Mon Sep 17 00:00:00 2001 From: "Ayres, Andrew" Date: Mon, 10 Feb 2025 16:16:40 -0600 Subject: [PATCH] XML section --- episodes/01-Introduction.md | 1 + episodes/02-Copy-Template.md | 1 + episodes/03-Nova-Galaxy.md | 40 ++++++++++++++++++++++++++ episodes/04-MVVM-Design-Pattern.md | 1 + episodes/05-Working-with-Trame.md | 2 ++ episodes/06-Advanced-Data-Modeling.md | 10 ++++++- episodes/07-Advanced-Visualizations.md | 1 + episodes/08-Next-Steps.md | 2 +- 8 files changed, 56 insertions(+), 2 deletions(-) diff --git a/episodes/01-Introduction.md b/episodes/01-Introduction.md index c149582b..2efacca7 100755 --- a/episodes/01-Introduction.md +++ b/episodes/01-Introduction.md @@ -101,6 +101,7 @@ This structure ensures that each code example is isolated and runnable, making i * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ +* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - NDIP is a workflow management system used for analsyis and interpretation of neutron scattering data. diff --git a/episodes/02-Copy-Template.md b/episodes/02-Copy-Template.md index 205602cd..2381dfc6 100755 --- a/episodes/02-Copy-Template.md +++ b/episodes/02-Copy-Template.md @@ -176,6 +176,7 @@ The template includes a basic GitLab CI configuration file (`.gitlab-ci.yml`). * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ +* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - Nova provides a template application to help get started developing your application. diff --git a/episodes/03-Nova-Galaxy.md b/episodes/03-Nova-Galaxy.md index fbcedc3d..e8ef3584 100755 --- a/episodes/03-Nova-Galaxy.md +++ b/episodes/03-Nova-Galaxy.md @@ -53,6 +53,45 @@ The basic workflow for running a tool with `nova-galaxy` involves these steps: 3. **Set Parameters**: Create a `Parameters` instance and add the necessary input parameters and their values for the tool. 4. **Run the Tool**: Use the `tool.run()` method to submit the job to NDIP. This typically involves creating a datastore to hold the job\'s input and output data. +## Understanding an NDIP tool + +NDIP tools consist of two parts. The first component is the core logic of the tool which will be containerized and run by NDIP. This is the component that we will be focusing on throughout the tutorial and containerization will be discussed in Episode 8. The second component is the tool\'s XML file which is added to the [Galaxy Tool Repository](https://code.ornl.gov/ndip/galaxy-tools). The XML file is responsible for describing the tool\'s inputs, outputs, location, how it is executed, and other details to NDIP. + +Let\'s take a look key parts of the [XML file](https://code.ornl.gov/ndip/galaxy-tools/-/blob/dev/tools/neutrons/test_tools/fractal.xml?ref_type=heads) for the Fractal Tool that we will use shortly. + +The first line gives the name, version, and unique id for a tool. This ID is used in the example below to tell NDIP which tool we are attempting to use. +``` + +``` + +This line tells NDIP where the tool\'s container can be found. +``` + savannah.ornl.gov/ndip/tool-sources/playground/fractal:0.1 +``` + +This section defines the tool\'s inputs. In this example, the tool requires an input by the name `Option`. The valid values for `Option` are `mandlebrot`, `julia`, `random`, and `markus`. + +``` + + + + + + + + +``` + +This section describes the output from the tool. The Fractal tool results in a single output file named `output`. Tool outputs will be discussed more below. +``` + + + + +``` + +A comprehensive list of tools, and links to their XML, can be found in Calvera's documentation on the [tools](https://calvera.ornl.gov/docs/tools/) page. + ## Setting up the Fractal tool Let\'s create a `Fractal` class that uses `nova-galaxy` to run the `neutrons_fractal` tool on NDIP. You can find the complete code for this episode in the `code/episode_3` directory. @@ -195,6 +234,7 @@ In both cases, an error is received from the ndip-galaxy library. When changing * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ +* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - Tools are run remotely on the NDIP platform diff --git a/episodes/04-MVVM-Design-Pattern.md b/episodes/04-MVVM-Design-Pattern.md index 42ebc55a..e4fee0d3 100755 --- a/episodes/04-MVVM-Design-Pattern.md +++ b/episodes/04-MVVM-Design-Pattern.md @@ -336,6 +336,7 @@ If you don't want Trame to launch a tab by default, you can instead run ```poetr * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ +* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - MVVM stands for Model, View, View-Model. diff --git a/episodes/05-Working-with-Trame.md b/episodes/05-Working-with-Trame.md index 063d910d..206bb2c3 100755 --- a/episodes/05-Working-with-Trame.md +++ b/episodes/05-Working-with-Trame.md @@ -391,6 +391,8 @@ Experiment with customizing the appearance of the Vuetify components using the v * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ * **Vuetify Documentation**: https://vuetifyjs.com/en/ +* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ + ``` :::::::::::::::::::::::::::::::::::::::: keypoints diff --git a/episodes/06-Advanced-Data-Modeling.md b/episodes/06-Advanced-Data-Modeling.md index 3a63b97f..8d394b41 100755 --- a/episodes/06-Advanced-Data-Modeling.md +++ b/episodes/06-Advanced-Data-Modeling.md @@ -409,4 +409,12 @@ In the GUI application, set the port to the default value if a user enters an in - Pydantic is a powerful Python library used to define data models and enforce data validation. - Pydantic supports complex data structures and custom data validation logic. - The NOVA Framework supports Pydantic models to automatically validate UI elements. -:::::::::::::::::::::::::::::::::::::::::::::::::: \ No newline at end of file +:::::::::::::::::::::::::::::::::::::::::::::::::: + +## References + +* **Nova Documentation**: https://nova-application-development.readthedocs.io/en/latest/ +* **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ +* **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ +* **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ +* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ \ No newline at end of file diff --git a/episodes/07-Advanced-Visualizations.md b/episodes/07-Advanced-Visualizations.md index 35a4e4e0..ffa6d6a3 100755 --- a/episodes/07-Advanced-Visualizations.md +++ b/episodes/07-Advanced-Visualizations.md @@ -770,6 +770,7 @@ We didn\'t look at `VTKConfig.init_lut` or `VTKConfig.init_pwf` during the tutor * **Trame/PyVista Integration Tutorial**: https://tutorial.pyvista.org/tutorial/09_trame/index.html * **VTK Python Documentation**: https://docs.vtk.org/en/latest/api/python.html * **Trame Tutorial**: https://kitware.github.io/trame/guide/tutorial/ +* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ :::::::::::::::::::::::::::::::::::::::: keypoints - Trame integrates well with Plotly for building 2D charts. diff --git a/episodes/08-Next-Steps.md b/episodes/08-Next-Steps.md index ecf5ff74..12185879 100755 --- a/episodes/08-Next-Steps.md +++ b/episodes/08-Next-Steps.md @@ -88,9 +88,9 @@ After performing these steps, your application will be available to NDIP users. * **nova-galaxy documentation**: https://nova-application-development.readthedocs.io/projects/nova-galaxy/en/latest/ * **nova-trame documentation**: https://nova-application-development.readthedocs.io/projects/nova-trame/en/stable/ * **nova-mvvm documentation**: https://nova-application-development.readthedocs.io/projects/mvvm-lib/en/latest/ +* **Calvera documentation**: https://calvera-test.ornl.gov/docs/ By following the steps outlined in this section, you can deploy your own applications to the NDIP platform and make them available to the wider scientific community. -``` :::::::::::::::::::::::::::::::::::::::: keypoints - Tools must be containerized to run on NDIP. -- GitLab