Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Describe governance and restructure website and repo scopes #295

Open
wants to merge 23 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/check-licenses.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: REUSE Compliance Check
uses: fsfe/reuse-action@v1
uses: fsfe/reuse-action@v5
24 changes: 24 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,3 +139,27 @@ a [forking pattern](https://docs.github.com/en/get-started/quickstart/fork-a-rep
1. Delete the release branch.
1. 💡 If something goes wrong in the release branch, you can always delete it, fix things in a feature branch, merge
into `develop` following the workflow above, and start anew.

## Build

To build `hermes` locally, run the
following command from the project root:

```shell
poetry install
```

To build the documentation in your *poetry* environment, run the
following commands from the project root:

```shell
poetry install --with docs
poetry run task docs-build
```

Or use [`sphinx-autobuild`](https://github.com/executablebooks/sphinx-autobuild) to enable a self-updating preview service:

```shell
poetry install --with docs
poetry run task docs-live
```
79 changes: 79 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<!--
SPDX-FileCopyrightText: 2024 German Aerospace Center (DLR)
SPDX-FileContributor: Stephan Druskat

SPDX-License-Identifier: CC-BY-SA-4.0
-->

## Governance

The HERMES project employs a lightweight governance model.

All decisions are made by the [HERMES Steering Group](#hermes-steering-group)
together with the maintainer(s) of the repositories affected by the decision.

Decisions that adhere to a single [repository in the scope of the HERMES project](#hermes-project-repositories)
are made by *lazy consensus*:

1. The maintainer of the repository makes a decision and notifies the HERMES Steering Group
(using `@softwarepub/hermes-steering-group` mention).
2. If no members of the Steering Group veto the decision within the decision period of one week (168 hours),
the decision becomes effective and can be acted upon.
The maintainer and any member of the Steering Group can ask for a longer decision period,
which must be granted.
Comment on lines +22 to +23
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As this could lead to an infinite block by a block by a single member, maybe we should add a fallback here:

Suggested change
The maintainer and any member of the Steering Group can ask for a longer decision period,
which must be granted.
The maintainer and any member of the Steering Group can ask for a longer decision period,
which must be granted.
During this period, the steering committee should meet to discuss the decision.

3. If one or more members of the Steering Group veto the decision,
the decision is discussed until consensus is reached.

Decisions that adhere to more than one [repository in the scope of the HERMES project](#hermes-project-repositories)
must be based on full consensus within the Steering Group.


### HERMES project repositories

The following are the repositories that are governed by the Steering Group.

- <https://github.com/softwarepub/hermes> (Maintainer: Stephan Druskat)
- <https://github.com/softwarepub/ci-templates> (Maintainer: Oliver Bertuch)
- <https://github.com/softwarepub/hermes-plugin-git> (Maintainer: Sophie Kernchen)
- <https://github.com/softwarepub/hermes-plugin-python> (Maintainer: Michael Meinel)
- <https://github.com/softwarepub/showcase> (Maintainer: Oliver Bertuch)
- <https://github.com/softwarepub/schema.software-metadata.pub> (Maintainer: Michael Meinel)
- <https://github.com/softwarepub/github-action> (Maintainer: Oliver Bertuch)
- <https://github.com/softwarepub/concept-paper> (Maintainer: Stephan Druskat)

New repositories may be added to,
and existing repositories may be removed from,
the project by the [Steering Group](#hermes-steering-group)
by updating the above list.
Any update needs lazy consensus [as defined above](#governance) from all members of the Steering Group.

### HERMES Steering Group

The HERMES Steering Group has three members,
each of whom represents one of the three Helmholtz centers
who were funded under the original Helmholtz Metadata Collaboration project (ZT-I-PF-3-006), i.e.,
German Aerospace Center (DLR),
Helmholtz-Zentrum Dresden-Rossendorf (HZDR),
Forschungszentrum Jülich (FZJ).

Currently the Steering Group consists of:

- Stephan Druskat (DLR), stephan.druskat@dlr.de
- David Pape (HZDR)
- Nitai Heeb (FZJ)
Comment on lines +61 to +63
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Stephan Druskat (DLR), stephan.druskat@dlr.de
- David Pape (HZDR)
- Nitai Heeb (FZJ)
- Stephan Druskat (DLR), stephan.druskat@dlr.de
- David Pape (HZDR), d.pape@hzdr.de
- Nitai Heeb (FZJ), n.heeb@fz-juelich.de

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I wanted to see first if @zyzzyxdonta and @nheeb wanted their emails in there or not.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, why not 🤷🏻‍♂️

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nheeb? Are you happy to have your email listed?


Whenever a member of the Steering Group wants to step down,
they are asked to nominate a successor.
If no successor is named,
the two remaining members seek a successor affiliated with the Helmholtz center of the leaving member.
New members of the Steering Group join if neither of the other two members disagrees with the decision to join.

### HERMES repository maintainers

Each [repository in the scope of the HERMES project](#hermes-project-repositories) should have one maintainer at all times.
The Steering Group appoints the maintainer for this repository in agreement with the appointed person.
Whenever a maintainer wants to step down,
they are asked to nominate a successor.
If no successor is named,
the Steering Group seeks a successor.
One member of the Steering Group steps in as interim maintainer until a successor is found.
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ The work contained in this repository is licensed under different licenses:
Please see the individual files for more accurate information.
Please also let us know in a new issue if you find content that seems to be unlicensed.

> We provide copyright and license information according to the [REUSE Specification 3.0](https://reuse.software/spec/).
> We provide copyright and license information according to the [REUSE Specification 3.3](https://reuse.software/spec-3.3/).
19 changes: 19 additions & 0 deletions REUSE.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version = 1

[[annotations]]
path = ["docs/source/_static/img/*.jpg", "docs/source/_static/img/*.png"]
precedence = "aggregate"
SPDX-FileCopyrightText = "All rights reserved"
SPDX-License-Identifier = "CC-BY-ND-4.0"

[[annotations]]
path = ["docs/source/**/*.md"]
precedence = "aggregate"
SPDX-FileCopyrightText = "German Aerospace Center (DLR), Helmholtz-Zentrum Dresden-Rossendorf, Forschungszentrum Jülich"
SPDX-License-Identifier = "CC-BY-SA-4.0"

[[annotations]]
path = ["REUSE.toml"]
precedence = "aggregate"
SPDX-FileCopyrightText = "German Aerospace Center (DLR), Helmholtz-Zentrum Dresden-Rossendorf, Forschungszentrum Jülich"
SPDX-License-Identifier = "CC0-1.0"
Binary file added docs/source/_static/img/bertuch.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/druskat.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/juckeland.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/kelling.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/kernchen.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/knodel.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/meinel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/opengraph.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/pape.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/_static/img/schlauch.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
63 changes: 35 additions & 28 deletions docs/source/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,29 @@ SPDX-FileContributor: Michael Meinel

# Overview

```{warning}
This is a work in progress. Expect disruptive changes.
```{tip}
This is work in progress.
```

Research software must be formally published to satisfy FAIR principles and unlock academic credit. Publication
repositories enable this and provide PIDs for software versions, but only through tedious, mostly manual process.

The HERMES workflow enables automated publication of rich research software metadata and artifacts to publication
repositories using open source tooling.

We follow a *push based* model and run in continuous integration (CI) infrastructures integrated in common code platforms
such as GitHub or GitLab to avoid going out of service and overcome limitations of pull-based web services.

Rich descriptive metadata is the key element to useful software publications. We harvest existing metadata from source
Research software must be formally published to satisfy the
[*FAIR Principles for Research Software*](https://doi.org/10.15497/RDA00068),
improve software sustainability and
enable software citation.
Publication repositories make software publication possible
and provide PIDs for software versions.
But software publication is often a tedious, manual process.

HERMES workflows automate the publication of research software with rich research metadata
using an open source tool, the `hermes` Python package.

HERMES follows a *push-based* model and runs in
continuous integration (CI) systems.
This way, it helps overcome limitations of platform-centric
pull-based services and grants its users full control over the
publication process and the metadata compiled for the publication.

Rich descriptive metadata is the key element to useful software publications.
We harvest existing metadata from source
code repos and connected platforms, then process, collate and present them for curation, thus preparing software for
automatic submission to publication repositories.

Expand Down Expand Up @@ -58,32 +67,30 @@ adr/index
api/index
```

```{toctree}
:maxdepth: 1
:caption: HERMES project
project/index
project/events
project/presentations
```

```{toctree}
:hidden:
:caption: Related
Project Website <https://project.software-metadata.pub>
Concept Paper <https://arxiv.org/abs/2201.09015>
```

## Feedback

This is an open repository to collect feedback on the HERMES workflow.
## Get in touch!

We see our project as part of a global and inter-disciplinary effort to improve the state of the art in
research software engineering, maintenance and scholarly communications around research software. We therefore
appreciate any feedback you may have on the HERMES project itself and any of its outputs.
HERMES is part of a global and interdisciplinary effort to improve the state of the art in
research software engineering, maintenance and scholarly communications around research software. We
appreciate any feedback you may have.

**How to give feedback**

Either [create an issue](https://github.com/hermes-hmc/workflow/issues/new/choose) in our project repository or
[send us an email](mailto:team@software-metadata.pub?subject=HERMES%20WOrkflow%20Reachout).

## Acknowledgements

This project (ZT-I-PF-3-006) was funded by the *Initiative and Networking Fund*
of the [Helmholtz Association](https://www.helmholtz.de/en/about-us/structure-and-governance/initiating-and-networking)
in the framework of the [Helmholtz Metadata Collaboration](https://helmholtz-metadaten.de)'s
[2020 project call](https://helmholtz-metadaten.de/en/projects/hmc-projects-2020).
Either [create an issue](https://github.com/softwarepub/hermes/issues/new/choose) in our project repository or
[send us an email](mailto:team@software-metadata.pub?subject=HERMES%20Workflows).

```{include} ../../LICENSE.md
```
Expand Down
27 changes: 27 additions & 0 deletions docs/source/project/events.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Events

(rsecon2022)=

## HERMES MVP Workshop - 2022-09-07

During [RSE Conference 2022](https://rsecon2022.society-rse.org/) we host a
[workshop to present our "minimum viable product"](https://virtual.oxfordabstracts.com/#/event/3101/submission/98)
to a broader RSE audience and hack on further improvements.

Would be nice to meet you there!

(kickoff)=

## HERMES Kickoff Workshop - 2021-11-12

In November 2021, the [HERMES project ran a kickoff workshop](https://events.hifis.net/event/205/)
with partner projects, stakeholders and interested parties. The [event website](https://events.hifis.net/event/205/)
provides general information about the workshop as well as the slides and
recordings for the presentations given at the workshop:

1. **Daniel Garijo** (Universidad Politécnica de Madrid): *SOMEF: A Metadata Extraction Framework from Software Documentation*
2. **Carlos Martinez-Ortiz** (Netherlands eScience Center): *Research Software Directory: past - present - future*
3. **Ana Trisovic** (Harvard University): *The Dataverse Project - Supporting (research) code in dataset publications*
4. **Sara Gonzales** (Northwestern University): *Powering open science and collaboration with Invenio*
5. **Dorothea Iglezakis** (University of Stuttgart): *Handling Research Software: Projects in Stuttgart*
6. **Felix Bach** (Karlsruhe Institute of Technology): *Code management in openCARP & publication on RADAR4KIT*
93 changes: 93 additions & 0 deletions docs/source/project/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
sd_hide_title: true
---

# Overview

**HERMES** is an acronym for "**HE**lmholtz **R**ich **ME**tadata **S**oftware publication".

The project received initial funding as a
[Helmholtz Metadata Collaboration](https://helmholtz-metadaten.de)
[2020 cohort project](https://helmholtz-metadaten.de/en/inf-projects/hermes-helmholtz-rich-metadata-software-publication)
(ZT-I-PF-3-006) from the *Initiative and Networking Fund*
of the [Helmholtz Association](https://www.helmholtz.de/en/about-us/structure-and-governance/initiating-and-networking).

The project developed the initial implementation of the
[HERMES workflow](../index.md)
and cooperated with the upstream [InvenioRDM](https://invenio-software.org/products/rdm/)
and [Dataverse](https://dataverse.org) projects.

## Members

Made by [DLR](https://dlr.de), [HZDR](https://hzdr.de) and [FZJ](https://fz-juelich.de)

<p>

```{image} ../_static/img/schlauch.jpg
:alt: Tobias Schlauch
:class: member
:target: https://www.dlr.de/sc/desktopdefault.aspx/tabid-1192/1635_read-25578
```

```{image} ../_static/img/druskat.jpg
:alt: Stephan Druskat
:class: member
:target: https://www.dlr.de/sc/desktopdefault.aspx/tabid-1192/1635_read-37013
```

```{image} ../_static/img/meinel.png
:alt: Michael Meinel
:class: member
:target: https://www.dlr.de/sc/desktopdefault.aspx/tabid-1192/1635_read-5420
```

```{image} ../_static/img/kernchen.jpg
:alt: Sophie Kernchen
:class: member
```

```{image} ../_static/img/knodel.jpg
:alt: Oliver Knodel
:class: member
:target: https://www.hzdr.de/db/!ContMan.Visi.Card?pUid=132739&pNid=5
```

```{image} ../_static/img/juckeland.jpg
:alt: Guido Juckeland
:class: member
:target: https://www.hzdr.de/db/!ContMan.Visi.Card?pUid=4930&pNid=5
```

```{image} ../_static/img/kelling.jpg
:alt: Jeffrey Kelling
:class: member
:target: https://www.hzdr.de/db/!ContMan.Visi.Card?pUid=5156&pNid=5
```

```{image} ../_static/img/pape.jpg
:alt: David Pape
:class: member
:target: https://www.hzdr.de/db/!ContMan.Visi.Card?pUid=139658&pNid=5
```

```{image} ../_static/img/bertuch.jpg
:alt: Oliver Bertuch
:class: member
:target: https://fz-juelich.de/profile/bertuch_o
```

</p>

All outputs of the project are openly available.
Software is developed in the open and released under an open source license.
Any scholarly publications, documentation and training materials is
provided open access.

```{include} ../../../GOVERNANCE.md
```

## License

This project documentation is licensed under a [Creative Commons CC0 1.0 Universal (CC0 1.0) Public Domain Dedication](https://creativecommons.org/publicdomain/zero/1.0/legalcode).

Our logo / key visual / icon is licensed under [Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0) ](https://creativecommons.org/licenses/by-nd/4.0)
Loading
Loading