Ctrl K

HERMES RSD Plugin

A plugin for HERMES that creates and updates RSD entries from within the HERMES pipeline.

1
contributor
Get started
48 commitsLast commit ≈ 5 days ago0 stars0 forks

Description

hermes RSD plugin

This repository contains plugins for hermes that provide a way to interact with a Research Software Directory (RSD) instance.

The RSD harvest plugin harvests metadata from existing RSD entries, whereas the RSD deposit plugin can be used to create or update entries in an RSD.

A working example based on the official hermes showcase can be found in RSD-as-a-service/showcase.

The metadata mapping applied in this plugin is documented in Metadata mapping.md.

How to

Prerequisites

This plugin requires hermes 0.9.x and an RSD instance running a support version. The plugin will check the remote RSD version and display a warning if it differs. You can check the version of an RSD by querying /api/fe and checking the rsd_version property.

Supported RSD versions: v5.3.1 to v5.4.4.

RSD API Token

To be able to push data to an RSD instance an API token is required. Follow the instructions of your RSD instance to obtain the token.

Plugin configuration

Follow the tutorial on the hermes website to set up your hermes workflow.

The plugins require three variable definitions:

  • rsd_url, the domain of the RSD where you would like to harvest/deposit
  • software_slug the slug, i.e. https://helmholtz.software/software/<slug> of your software. You need to define this the first time you are using the plugin
  • RSD_API_TOKEN is an environment variable that must be set

Extend your hermes.toml as follows

[harvest]
sources = ["rsd"]

[harvest.rsd]
rsd_url = "https://helmholtz.software"
software_slug = "<your-desired-slug>"

[deposit]
target = "rsd"

[deposit.rsd]
rsd_url = "https://helmholtz.software"
software_slug = "<your-desired-slug>"

Development setup

Requirements

  • pyenv
  • poetry
pyenv install 3.10
pyenv local 3.10
pyenv shell 3.10
poetry env use $(which python)
poetry install
eval $(poetry env activate)

Create a .env file in the root of the directory and add RSD_API_TOKEN.

To run, start the hermes pipeline

source .env
hermes harvest
hermes process
hermes curate
hermes postprocess
hermes deposit

Using the pre-commit hook to automatically annotate SPDX headers

To use a pre-commit hook that will automatically annotate all commits with file headers, run

make install-pre-commit-hook

Follow the instructions.

NOTE the pre-commit hook can not handle partial commits, i.e. only partially committing changes in one file. To do this, disable pre-commit hooks using the -n/--no-verify flag:

git commit -n

Funding

This repository is part of the Software CaRD project and has been funded by Helmholtz Metadata Collaboration.

License and Copyright

Copyright GFZ Helmholtz Centre for Geosciences.

This software is primarily licensed EUPL-1.2. Some files are licensed Apache-2.0, CC-BY-4.0 or CC0-1.0, as indicated in their respective headers.

Logo of HERMES RSD Plugin
Keywords
Programming languages
  • Python 94%
  • Shell 4%
  • Makefile 2%
License
</>Source code
Packages
pypi.org

Participating organisations

GFZ Helmholtz Centre for Geoscience

Contributors

CM
Maintainer
GFZ Helmholtz Centre for Geosciences

Helmholtz Program-oriented Funding IV

Related projects

HMC

Helmholtz Metadata Collaboration

Updated 16 months ago

Related software

Helmholtz Research Software Directory

HE

The Helmholtz Research Software Directory is a place to discover and promote research software. Designed for Research Software Engineers and Scientists, it aims to foster FAIR and reuseability of software.

Updated 5 months ago
4 8

hermes

HE

Implementation of the HERMES workflow to automate software publication with rich metadata.

Updated 14 months ago
3 7

Software CaRD

SO

A metadata curation dashboard for hermes.

Updated 1 month ago
6 5