Contribute to This Plugin¶
Structure of this repository
The software is located inside src/nomad_eosc_galaxy_actions, with unit tests in tests,
standalone scripts (not part of the installed package) in scripts,
and the Galaxy-team-facing demo in examples/galaxy_demo.
Setup¶
Requires Python 3.10+. We recommend uv, an extremely fast Python package and project manager; a more classical venv/pip
approach works too.
Development installation¶
git clone https://github.com/FAIRmat-NFDI/nomad-eosc-galaxy-actions.git
cd nomad-eosc-galaxy-actions
Install the package in editable mode, together with its dev dependencies:
Linting, formatting, and pre-commit hooks¶
We use Ruff for linting/formatting and mypy for type checking, run via pre-commit:
pre-commit install # installs the git hook, once per clone
pre-commit run --all-files # run all hooks against the whole repo once
You can also run Ruff directly:
In the pre-commit as well as in the GitHub CI, we use cspell for spellchecking. If cspell flags a real (correctly spelled) word, add it to .cspell/custom-dictionary.txt through this script:
Testing¶
Unit tests are written with pytest:
The Galaxy round trip itself isn't exercised by the unit test suite — it needs a real Galaxy account. scripts/test_galaxy_roundtrip.py covers that separately; see the tutorial.
Contributing on GitHub¶
Commit your changes on a separate branch and open a pull request. CI checks linting, runs the tests, and builds the docs; once those pass and a review happens, the PR can be merged. Before releasing, keep the version in sync between pyproject.toml and CITATION.cff — publish.yml's cff-version-check job fails the release otherwise.
Changing something in docs/? See How-to guides > Contribute to the Documentation for the writing conventions, how to build the docs locally, and how to add a new page.
Developing this plugin as part of NOMAD¶
If you're working on this plugin's NOMAD integration (the Action, the trigger entry schema) rather than just galaxy_client.py in isolation, use nomad-distro-dev, FAIRmat's development environment for NOMAD and its plugins. See How-to guides > Install this Plugin for how this repo is
wired into that workspace.
Troubleshooting¶
If you hit an issue with the plugin or with setting up the development environment, open a GitHub issue.