diff --git a/.github/workflows/check-licenses.yml b/.github/workflows/check-licenses.yml index 0b1208b1..59d8cc1b 100644 --- a/.github/workflows/check-licenses.yml +++ b/.github/workflows/check-licenses.yml @@ -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 \ No newline at end of file + uses: fsfe/reuse-action@v5 \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d019553c..2f3c695f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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 +``` diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 00000000..213c4407 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,79 @@ + + +## 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. +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. + +- (Maintainer: Stephan Druskat) +- (Maintainer: Oliver Bertuch) +- (Maintainer: Sophie Kernchen) +- (Maintainer: Michael Meinel) +- (Maintainer: Oliver Bertuch) +- (Maintainer: Michael Meinel) +- (Maintainer: Oliver Bertuch) +- (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) + +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. diff --git a/LICENSE.md b/LICENSE.md index a2c44025..37ba0084 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -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/). diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 00000000..b3033158 --- /dev/null +++ b/REUSE.toml @@ -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" diff --git a/docs/source/_static/img/bertuch.jpg b/docs/source/_static/img/bertuch.jpg new file mode 100644 index 00000000..52ad891e Binary files /dev/null and b/docs/source/_static/img/bertuch.jpg differ diff --git a/docs/source/_static/img/druskat.jpg b/docs/source/_static/img/druskat.jpg new file mode 100644 index 00000000..4f90266a Binary files /dev/null and b/docs/source/_static/img/druskat.jpg differ diff --git a/docs/source/_static/img/juckeland.jpg b/docs/source/_static/img/juckeland.jpg new file mode 100644 index 00000000..a934cab8 Binary files /dev/null and b/docs/source/_static/img/juckeland.jpg differ diff --git a/docs/source/_static/img/kelling.jpg b/docs/source/_static/img/kelling.jpg new file mode 100644 index 00000000..96847842 Binary files /dev/null and b/docs/source/_static/img/kelling.jpg differ diff --git a/docs/source/_static/img/kernchen.jpg b/docs/source/_static/img/kernchen.jpg new file mode 100644 index 00000000..8f2da937 Binary files /dev/null and b/docs/source/_static/img/kernchen.jpg differ diff --git a/docs/source/_static/img/knodel.jpg b/docs/source/_static/img/knodel.jpg new file mode 100644 index 00000000..c78466a8 Binary files /dev/null and b/docs/source/_static/img/knodel.jpg differ diff --git a/docs/source/_static/img/meinel.png b/docs/source/_static/img/meinel.png new file mode 100644 index 00000000..a2940dfa Binary files /dev/null and b/docs/source/_static/img/meinel.png differ diff --git a/docs/source/_static/img/opengraph.png b/docs/source/_static/img/opengraph.png new file mode 100644 index 00000000..92499021 Binary files /dev/null and b/docs/source/_static/img/opengraph.png differ diff --git a/docs/source/_static/img/pape.jpg b/docs/source/_static/img/pape.jpg new file mode 100644 index 00000000..5b3c9c32 Binary files /dev/null and b/docs/source/_static/img/pape.jpg differ diff --git a/docs/source/_static/img/schlauch.jpg b/docs/source/_static/img/schlauch.jpg new file mode 100644 index 00000000..e59bdf4e Binary files /dev/null and b/docs/source/_static/img/schlauch.jpg differ diff --git a/docs/source/index.md b/docs/source/index.md index bb06bb5a..e7d86830 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -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. @@ -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 Concept Paper ``` -## 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 ``` diff --git a/docs/source/project/events.md b/docs/source/project/events.md new file mode 100644 index 00000000..19acc609 --- /dev/null +++ b/docs/source/project/events.md @@ -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* diff --git a/docs/source/project/index.md b/docs/source/project/index.md new file mode 100644 index 00000000..13e89382 --- /dev/null +++ b/docs/source/project/index.md @@ -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) + +

+ +```{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 +``` + +

+ +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) diff --git a/docs/source/project/presentations.md b/docs/source/project/presentations.md new file mode 100644 index 00000000..5c4f0ccc --- /dev/null +++ b/docs/source/project/presentations.md @@ -0,0 +1,133 @@ +# Presentations + +```{list-table} +:widths: 15 15 40 15 15 +:header-rows: 1 +* - Date + - Topic + - Event + - Slides/Poster + - Records +* - 2021-04-13 + - P + - [HMC](https://helmholtz-metadata.de) Welcome Meeting + - [PDF](https://helmholtz-metadaten.de/download/projects/07_HERMES_HMC.pdf) + - \- +* - 2021-05-17 + - P + - [Dataverse Community Meeting 2021](https://projects.iq.harvard.edu/dcm2021) + - [PDF](http://talks.bertuch.name/hermes-20210617/slides.pdf), [HTML](http://talks.bertuch.name/hermes-20210617) + - [YouTube](https://youtu.be/LJq-mzT9v8o?t=566) +* - 2022-02-23 + - W + - [Software Engineering 2022 Conf.](https://se-2022.gi.de) + - [PDF](https://doi.org/10.5281/zenodo.6241553) + - [YouTube](https://www.youtube.com/watch?v=EIE66uRtJnc) +* - 2022-03-10 + - W + - [RO-Crate Community Call](https://www.researchobject.org/ro-crate/community.html#meetings) + - [PDF](https://doi.org/10.5281/zenodo.6241553) + - \- +* - 2022-04-07 + - W + - [2nd HGF Forum Forschungssoftware](https://os.helmholtz.de/open-science-realisieren/veranstaltungen/helmholtz-open-science-foren/2-forum-forschungssoftware/) + - [PDF](https://doi.org/10.48440/os.helmholtz.045) + - \- +* - 2022-04-21 + - W, RSR + - [Harvard Data Commons "Obj. 2" Meeting](https://sites.harvard.edu/harvard-data-commons) + - [PDF](http://talks.bertuch.name/harvard-2022-04-21/slides.pdf), [HTML](http://talks.bertuch.name/harvard-2022-04-21) + - \- +* - 2022-06-14 + - RSR + - [Dataverse Community Meeting 2022](https://projects.iq.harvard.edu/dcm2022) + - [PDF](http://talks.bertuch.name/dcm2022/slides.pdf), [HTML](http://talks.bertuch.name/dcm2022) + - [YouTube](https://www.youtube.com/watch?v=eeCMN_5Nj_0&t=2293s) +* - 2022-08-16 + - P, W + - [Software Citation Workshop 2022](https://library.cfa.harvard.edu/software-citation-workshop-2022) + - \- + - [Report](https://doi.org/10.48550/arXiv.2302.07500) +* - 2022-09-06 + - W + - [RSE Conference 2022](https://rsecon2022.society-rse.org/) - [Talk](https://virtual.oxfordabstracts.com/#/event/public/3101/submission/110) + - [PDF](https://doi.org/10.5281/zenodo.7049910) + - [YouTube](https://www.youtube.com/watch?v=i5xXty8dOYk) +* - 2022-09-07 + - W, (RSR) + - [RSE Conference 2022](https://rsecon2022.society-rse.org/) - [Workshop](https://virtual.oxfordabstracts.com/#/event/public/3101/submission/98) + - [PDF](https://doi.org/10.5281/zenodo.7124166) + - [SSI Blog](https://www.software.ac.uk/blog/2022-10-06-rsecon22-collaborating-automation-research-software-publication-rich-metadata) +* - 2022-09-16 + - W + - [DINI Workshop "Forschungssoftware managen"](https://dini.de/veranstaltungen/workshops/forschungssoftware-managen/) + - [PDF](https://doi.org/10.5281/zenodo.7125673) + - \- +* - 2022-09-19 + - W + - [NFDI Workshop "Towards a NFDI Software Marketplace"](https://events.hifis.net/event/542/) + - [PDF](https://doi.org/10.5281/zenodo.7125673) + - \- +* - 2022-09-26 + - W + - [8th Annual MT Meeting](https://indico.desy.de/event/33132/) + - [Poster](https://indico.desy.de/event/33132/contributions/128927/attachments/77505/100242/Hermes_Poster_portrait.pdf) + - \- +* - 2022-10-05 + - W + - [HMC](https://helmholtz-metadata.de) [Conference 2022](https://events.hifis.net/event/469) + - [PDF](https://doi.org/10.5281/zenodo.7144022), [Poster](https://doi.org/10.5281/zenodo.7092348) + - \- +* - 2022-11-09 + - W + - Workshop [Data and Software Publication](https://www.nsf.gov/awardsearch/showAward?AWD_ID=2031647) + - \- + - [Report](https://upstream.force11.org/interoperable-infrastructure-for-software-and-data-publishing/) +* - 2022-11-12 + - W + - Workshop [Ciencia Abierta, un Paisaje en Construcción con un Horizonte de posibilidades](https://www.ciem.unican.es/celebrado-en-ciem-el-workshop-ciencia-abierta/) + - [PDF](https://doi.org/10.5281/zenodo.7312323) + - \- +* - 2022-12-09 + - W, RSR + - [HMC](https://helmholtz-metadata.de) [FAIR Friday](https://helmholtz-metadaten.de/en/fair-friday) + - [PDF](https://doi.org/10.5281/zenodo.7387926) + - \- +* - 2023-02-08 + - W + - Research Seminar "Aktuelle Themen des Research Software Engineering" + - [PDF](https://doi.org/10.5281/zenodo.7620412) + - \- +* - 2023-02-20 + - W + - [deRSE23](https://de-rse23.sciencesconf.org/) - Talk + - [PDF](https://doi.org/10.5281/zenodo.7654819) + - \- +* - 2023-02-20 + - W, (RSR) + - [deRSE23](https://de-rse23.sciencesconf.org/) - Demo + - [Poster](https://doi.org/10.5281/zenodo.7646519) + - \- +* - 2023-04-04 + - W, (RSR) + - HMC Projects Welcome Meeting + - [Poster](https://doi.org/10.5281/zenodo.7646519) + - \- +* - 2023-04-17 + - W + - [Leibniz MMS Days 2023](https://www.wias-berlin.de/workshops/MMSDays23/) + - [PDF](https://doi.org/10.5281/zenodo.7835366) + - \- +* - 2023-05-24 + - W + - [DataCite Webinar "DOIs for Research Software"](https://datacite.zoom.us/webinar/register/1016832862277/WN_-K-zNcRIQOmxU3y1v-nEpQ#/registration) + - [PDF](https://doi.org/10.5281/zenodo.7963967) + - [Youtube](https://youtu.be/LaUdaQ-lI1E?t=2991) +* - 2023-06-06 + - RSR + - [Dataverse Community Meeting 2023](https://projects.iq.harvard.edu/dcm2023) + - [Poster](https://doi.org/10.5281/zenodo.7986935) + - \- +``` + +Topics: *P* = Project, *W* = Workflow, *RSR* = Research Software Readiness