Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
247 commits
Select commit Hold shift + click to select a range
454dbda
chore(build): fix outdated poetry.lock after merges
poikilotherm Mar 6, 2024
7123cb1
fix: align HERMES config in develop with main
poikilotherm Mar 6, 2024
664f1b2
doc: add and correct installation instructions after 0.8.0 release
poikilotherm Mar 6, 2024
3d9c4fb
docs: adapt tutorial HERMES config to new style
poikilotherm Mar 6, 2024
f12b23a
Merge pull request #243 from hermes-hmc/feature/update-docs-after-rel…
SKernchen Mar 6, 2024
d1976a3
doc: cleanup README
poikilotherm Mar 7, 2024
34200ec
Merge pull request #247 from hermes-hmc/feature/update-docs-after-rel…
poikilotherm Mar 7, 2024
5eec5ce
docs: add horizontal layout workflow diagram
poikilotherm Mar 7, 2024
c54bf7b
Merge pull request #248 from hermes-hmc/feature/update-docs-after-rel…
poikilotherm Mar 7, 2024
e8301f9
Clean up and fix logging
led02 Apr 2, 2024
fb918f8
Remove debug print statements
led02 Apr 2, 2024
7a4aa40
Start re-activating and adding some tests
led02 Apr 4, 2024
991c16c
Start of tutorial for writing a plugin
SKernchen May 6, 2024
9e4baec
First version of tutorial, needs correction
SKernchen May 10, 2024
398fc8f
Add init command
nheeb Jul 25, 2024
13171de
Use template to publish
Aug 5, 2024
d8a9476
Update to newer version
Aug 5, 2024
4a33aec
Correct variable name
Aug 5, 2024
f967895
Correct version
Aug 5, 2024
78b2727
Push on Zenodo not sandbox
Aug 5, 2024
ea92fde
Change name
Aug 5, 2024
83749f6
Merge pull request #266 from softwarepub/feature/261-put-hermes-on-ze…
SKernchen Aug 5, 2024
d42aa8f
Adapt for release tag not branch
Aug 5, 2024
0f9dcd8
Add record id and DOI
Aug 5, 2024
7f64f10
Add basic error handling to console entry point
led02 Aug 6, 2024
c27192c
Adapt commands and plugins to propagate errors
led02 Aug 6, 2024
6289b94
Correct form and improve text
SKernchen Aug 9, 2024
62b9799
Correct duplicated word
SKernchen Aug 9, 2024
46a7b9f
Add name convention to hermes_plugin_git everywhere
SKernchen Aug 9, 2024
4637513
Merge pull request #256 from softwarepub/feature/255-git-plugin-as-ha…
SKernchen Aug 9, 2024
241f91b
Apply suggestions from code review
led02 Aug 13, 2024
7602e3d
Use template to publish
Aug 5, 2024
de92c6c
Update to newer version
Aug 5, 2024
4489956
Correct variable name
Aug 5, 2024
133f8b7
Correct version
Aug 5, 2024
1b3b140
Push on Zenodo not sandbox
Aug 5, 2024
9f8ef98
Change name
Aug 5, 2024
4f27bdd
Adapt for release tag not branch
Aug 5, 2024
ad75da3
Add record id and DOI
Aug 5, 2024
1c85dec
Bump version of hermes
led02 Aug 6, 2024
a3164e9
Remove old settings handler
led02 Aug 6, 2024
9e40d7e
Add missing author to Python package info
led02 Aug 6, 2024
a418fec
Add log output to ignored files
led02 Aug 13, 2024
797b0ca
Enable harvesting from pyproject.toml
led02 Aug 13, 2024
92a1da5
Bump version number
led02 Aug 13, 2024
d57bb0a
Merge branch 'develop' into feature/244-fixes-for-081
led02 Aug 13, 2024
0e73ac9
Merge pull request #253 from softwarepub/feature/244-fixes-for-081
led02 Aug 13, 2024
73b2949
Init with or without oauth
nheeb Aug 20, 2024
6c4409a
Testing the workflow
nheeb Aug 29, 2024
8d98335
temporarily storing the ci file here
nheeb Sep 2, 2024
983b170
automated change of github project action workflow settings
nheeb Sep 2, 2024
96553f6
more logging in refresh token usage
nheeb Sep 2, 2024
42aefd9
log as error
nheeb Sep 2, 2024
bddbb27
less prints
nheeb Sep 3, 2024
ec62b74
Merge branch 'develop' into feature/init-command
nheeb Sep 3, 2024
688e17b
Update src/hermes/commands/init/github_permissions.py
nheeb Sep 4, 2024
62a121a
Update src/hermes/commands/init/github_permissions.py
nheeb Sep 4, 2024
38f1b5c
Update src/hermes/commands/init/base.py
nheeb Sep 4, 2024
7e7984a
Update src/hermes/commands/init/github_secrets.py
nheeb Sep 4, 2024
39eb860
Removed Flask, Abstract OAuth Script, Moved CI Template
nheeb Sep 11, 2024
6c23751
Small quotation marks change
nheeb Sep 11, 2024
df7c7f9
trying to satisfy flake8 (but it doesnt understand fstrings)
nheeb Sep 11, 2024
5f1c49b
Added Device Flow as alternative for classic Oauth in Browser
nheeb Sep 12, 2024
f408d3d
Fallback to manual if oauth fails
nheeb Sep 12, 2024
112dc10
Fixed createconsolehyperlinks
nheeb Sep 13, 2024
630ba71
Fixed flake8, ZenodoOauth works without secret, hermestoml created fr…
nheeb Sep 16, 2024
77d87d8
flake8 is never happy
nheeb Sep 16, 2024
f83dd09
Update invenio.py, added a space
nheeb Sep 16, 2024
0651c78
Support for Gitlab (without OAuth)
nheeb Oct 1, 2024
e02fa11
Merged scripts dealing with github
nheeb Oct 9, 2024
63832db
Begin Rodare deposit plugin
zyzzyxdonta Oct 16, 2024
8705663
Added auth for gitlab
nheeb Oct 16, 2024
cf6d04d
Fix license lookup on Invenio instances
zyzzyxdonta Oct 17, 2024
19d1724
Implement Rodare deposit plugin
zyzzyxdonta Oct 17, 2024
ed6c4bf
Robis publication URL template as class attribute
zyzzyxdonta Oct 17, 2024
3a1c5e7
Add docstrings
zyzzyxdonta Oct 17, 2024
1ec7144
Add Robis example URL to docstring
zyzzyxdonta Oct 17, 2024
64a5dce
gitlab oauth testing in progress
nheeb Oct 18, 2024
687e804
Fixed fstring
nheeb Oct 18, 2024
6f35a05
raise exception for debugging
nheeb Oct 18, 2024
e4b9ea8
Add missing return type annotation
zyzzyxdonta Oct 21, 2024
55fc384
Merge pull request #277 from softwarepub/feature/60-rodare-deposition
zyzzyxdonta Oct 25, 2024
69037f5
Deactivated Zenodo Oauth for now
nheeb Oct 25, 2024
44e507e
flake8
nheeb Oct 29, 2024
8ee0e50
Fixed gitlab variable creation
nheeb Oct 29, 2024
7ce44d7
Seperated the init process into steps
nheeb Oct 30, 2024
6dfb610
Merge branch 'develop' into feature/init-command
nheeb Oct 30, 2024
395ba09
Renamed scripts + small changes
nheeb Oct 31, 2024
63f5855
hermes init without git possible
nheeb Nov 6, 2024
a37aa33
Init: Choosing files and target branch
nheeb Nov 11, 2024
7ec9887
fixed fstring for flake8
nheeb Nov 22, 2024
bbf9609
removed a space for flake8
nheeb Nov 22, 2024
6caf628
dynamic template url + command parameter for template branch
nheeb Dec 3, 2024
4b1f90b
Tutorial for hermes init
nheeb Dec 6, 2024
f2161ef
Tone down WIP warning on website
sdruskat Dec 6, 2024
be60a2c
Update dependencies to fix security vulnerabilities
sdruskat Dec 6, 2024
96f79f9
Fix admonition directive
sdruskat Dec 6, 2024
aa85aef
Docstring for httpHandler to fix docs build error
nheeb Dec 6, 2024
e06fbf0
Invenio deposit: Add hermes as related identifier
zyzzyxdonta Dec 9, 2024
1fa2d3f
fix: replace client id of GH OAuth app with new from org softwarepub
poikilotherm Dec 9, 2024
a39dc7d
Better error message for public key fail
nheeb Dec 9, 2024
b71f5d4
Merge branch 'feature/init-command' of https://github.com/softwarepub…
nheeb Dec 9, 2024
b95f0c3
Load related identifiers via method
zyzzyxdonta Dec 9, 2024
66ceeb1
Convert version to string
Dec 9, 2024
0c0bfc8
Add hint to HERMES tracing to base class docstring
zyzzyxdonta Dec 9, 2024
cc1e33e
Move project page from project.website repo
sdruskat Dec 9, 2024
b70a45d
Better parse git remote url & choose now with numbers
nheeb Dec 9, 2024
127cc23
flake
nheeb Dec 9, 2024
44a1f3f
Add project TOC
sdruskat Dec 9, 2024
cd977b7
Move project website files to docs
sdruskat Dec 9, 2024
3d5dd32
Dont set default workflow permissions
nheeb Dec 9, 2024
b82b3bb
Add project documentation
sdruskat Dec 9, 2024
668de5f
Sternchen davorgit push!
nheeb Dec 9, 2024
7a3541f
Document build in contribution guideline
sdruskat Dec 9, 2024
cd2eb2e
Fix project nav
sdruskat Dec 9, 2024
47e85d8
Remove research software-ready badge
sdruskat Dec 9, 2024
072643b
Improve landing page text
sdruskat Dec 9, 2024
53324be
Update project page and embed governance
sdruskat Dec 9, 2024
4a6e037
Define decision period
sdruskat Dec 9, 2024
e76ad37
New log handler for init command
nheeb Dec 9, 2024
17673a4
docs(tutorial): extend and revise automated install
poikilotherm Dec 9, 2024
8c85150
docs(tutorial): add hint about committing the changes as well after s…
poikilotherm Dec 9, 2024
dc0f625
Merge pull request #273 from softwarepub/feature/init-command
poikilotherm Dec 9, 2024
0825036
Add maintainers to repos
sdruskat Dec 10, 2024
ffc67dc
Remove GitHub handles for maintainers
sdruskat Dec 10, 2024
7651a81
License files
sdruskat Dec 10, 2024
450148d
Update license check workflow to newest version
sdruskat Dec 10, 2024
e51f4dd
Fix typo
sdruskat Dec 10, 2024
cd62067
Add @mention tag to @softwarepub/hermes-steering-group
sdruskat Dec 10, 2024
fc00ac4
Fix copyright header
sdruskat Dec 10, 2024
dc17891
Update specs link for REUSE
sdruskat Dec 10, 2024
9d3e17c
Improve hint to tracing identifiers in base class
zyzzyxdonta Dec 10, 2024
a46fc19
Flake 8
zyzzyxdonta Dec 10, 2024
c47cb79
Merge pull request #290 from softwarepub/feature/235-hermes-tracing
zyzzyxdonta Dec 17, 2024
5fce097
Unlist private empty repo
sdruskat Dec 18, 2024
63d44a9
Define process for becoming maintainer
sdruskat Dec 18, 2024
53f7dbe
Use grammatically more formal form
sdruskat Dec 18, 2024
c34f0a6
Describe process for adding/removing repos; fix caps
sdruskat Dec 18, 2024
e293a74
Merge branch 'feature/287-governance-website-structure' of github.com…
sdruskat Dec 18, 2024
d1a4bd6
Check if version field exists
Dec 19, 2024
2237728
Merge pull request #291 from softwarepub/feature/281-yaml-changes-ver…
SKernchen Dec 19, 2024
d3f4656
Merge pull request #284 from softwarepub/feature/tone-down-WIP-warning
sdruskat Dec 19, 2024
ec2b860
First iteration of plugin list on main page
zyzzyxdonta Dec 11, 2024
53805cf
Add plugins.json.license
zyzzyxdonta Dec 11, 2024
5d3871e
Add hermes step to plugins
zyzzyxdonta Dec 11, 2024
812ba6c
Add repo URL as `schema:url`
zyzzyxdonta Dec 11, 2024
d056fc1
Sections per hermes workflow step
zyzzyxdonta Dec 11, 2024
af90d02
Allow multiple steps per plugin
zyzzyxdonta Dec 12, 2024
ebdb0ca
Title case for sub-headings
zyzzyxdonta Dec 13, 2024
f3f3fad
Custom extension to render Schema.org for plugins
zyzzyxdonta Dec 13, 2024
15ec19c
Docstrings and SPDX comments
zyzzyxdonta Dec 13, 2024
4ad4220
Mark Hermes builtins using `schema:isPartOf`
zyzzyxdonta Dec 13, 2024
2a98b29
Fix typo
zyzzyxdonta Dec 13, 2024
da03123
Add `hermes-marketplace` command
zyzzyxdonta Dec 13, 2024
ba833f3
Add some docstrings
zyzzyxdonta Dec 13, 2024
0c2549c
Add type hints for parser member variables
zyzzyxdonta Dec 13, 2024
aa159f8
Update authors
zyzzyxdonta Dec 13, 2024
f99ef39
Use pydantic models for schema.org JSON-LD
zyzzyxdonta Dec 16, 2024
61f8aff
Nicer formatting of CLI marketplace output
zyzzyxdonta Dec 16, 2024
d585fa5
Nicer message
zyzzyxdonta Dec 16, 2024
b8a94fb
Add issue template
zyzzyxdonta Dec 16, 2024
ee08693
Add more explanation to issue template
zyzzyxdonta Dec 16, 2024
658fa33
Provide jsonschema for plugins.json
zyzzyxdonta Dec 16, 2024
6c88496
Add keyword to kwarg for clarity
zyzzyxdonta Dec 16, 2024
892a044
Update docstring
zyzzyxdonta Dec 16, 2024
8c5985c
Update docstring text
zyzzyxdonta Dec 16, 2024
2712e68
Update contributions
zyzzyxdonta Dec 16, 2024
ffcd4ea
market place → marketplace
zyzzyxdonta Dec 16, 2024
9d019b9
Remove rawource from docutils nodes
zyzzyxdonta Dec 18, 2024
a9291b6
Keywords based on harvested files
zyzzyxdonta Dec 18, 2024
c4de01c
Code readability
zyzzyxdonta Dec 18, 2024
d5d89e2
Method `model_dump_jsonld`
zyzzyxdonta Dec 19, 2024
d953c3f
Don't introduce pathlib
zyzzyxdonta Dec 19, 2024
f1f4909
Argument `text2` → `detail`
zyzzyxdonta Dec 19, 2024
679ec34
Display URL constant for marketplace
zyzzyxdonta Dec 19, 2024
27bfe15
Update docstring
zyzzyxdonta Dec 19, 2024
bd047f3
`SchemaOrgSoftware{Publication → Application}`
zyzzyxdonta Dec 19, 2024
2b1b082
Fix `code-block` directiry
zyzzyxdonta Dec 19, 2024
b8f6f93
Created init util folder
nheeb Jan 7, 2025
4e089c8
Make init_plugins a class method
sdruskat Jan 9, 2025
f928b7b
Update reuse action in CI
sdruskat Jan 10, 2025
64a8db7
Resolve potential infinite block in repo governance
sdruskat Jan 10, 2025
76c01e6
Provide emails for all steering committee members
sdruskat Jan 10, 2025
29a542b
Merge branch 'develop' into feature/287-governance-website-structure
sdruskat Jan 10, 2025
a6c1a5e
Fix #301: Make all command settings classes private
sdruskat Jan 10, 2025
e1df183
Lock dependencies (fix Jinja sec issues)
sdruskat Jan 10, 2025
4557374
Fix typo in init command
sdruskat Jan 10, 2025
133f6e5
Use `/marketplace` URL
zyzzyxdonta Jan 14, 2025
c93739a
Improve output of hermes-marketplace command
sdruskat Jan 14, 2025
b0c9a89
Satisfy linter
sdruskat Jan 14, 2025
1fd0dc7
Remove duplicated variable
zyzzyxdonta Jan 14, 2025
b119e49
Merge pull request #299 from softwarepub/feature/292-plugin-marketplace
zyzzyxdonta Jan 14, 2025
363c912
Merge branch 'develop' into feature/287-governance-website-structure
sdruskat Jan 16, 2025
58846b0
Merge pull request #295 from softwarepub/feature/287-governance-websi…
sdruskat Jan 16, 2025
a67e2f9
Merge pull request #303 from softwarepub/feature/302-minor-arch-fixes
sdruskat Jan 24, 2025
051b2c7
Tests and fixed issues #308 & #296
nheeb Feb 18, 2025
ecc02d1
merge with develop
nheeb Feb 18, 2025
d58d955
fixed a test
nheeb Feb 18, 2025
11e5e42
better post mock
nheeb Feb 18, 2025
d3bf332
use json dumps
nheeb Feb 18, 2025
fd91e68
Update src/hermes/commands/init/base.py
nheeb Feb 20, 2025
847db46
Update src/hermes/commands/init/util/oauth_process.py
nheeb Feb 20, 2025
0400ac6
Update test/hermes_test/commands/init/test_init.py
nheeb Feb 20, 2025
ea0e58b
Update test/hermes_test/commands/init/test_init.py
nheeb Feb 20, 2025
2684573
used isort
nheeb Feb 20, 2025
b785d2f
merged with isort
nheeb Feb 20, 2025
b46525e
style(init,slim_click): add link to original framework and rephrase a…
poikilotherm Feb 20, 2025
204980c
docs(init,slim_click): move docstring for ColorLogFormatter to class …
poikilotherm Feb 20, 2025
e623dec
style(docs,plugin): fix some typos and text consistency issues
poikilotherm Feb 20, 2025
ad1e2e2
chore(init): updating docs URL to new location hermes.software-metada…
poikilotherm Feb 20, 2025
cedc810
style(init): make folder scouting helper function more readable
poikilotherm Feb 20, 2025
ad6da38
chore(init): correction of FZJ legal entity form missing
poikilotherm Feb 20, 2025
e04381b
more comments
nheeb Feb 21, 2025
85d8dc5
Merge branch 'feature/init-command' of https://github.com/softwarepub…
nheeb Feb 21, 2025
36622cc
Fixed command which needed python>3.12
nheeb Feb 21, 2025
8f13be7
Merge pull request #309 from softwarepub/feature/init-command
poikilotherm Feb 25, 2025
43b9164
chore: update all Github Actions
poikilotherm Feb 25, 2025
89fa70f
chore: fix pyproject's authors and maintainers metadata
poikilotherm Feb 26, 2025
a91ad9d
chore: fix links in pyproject to docs and repo
poikilotherm Feb 26, 2025
dfc9ef9
build,test: add sane default options for pytest
poikilotherm Feb 26, 2025
e3853b0
style: fix typo in GOVERNANCE.md
poikilotherm Feb 26, 2025
dcbcd08
style: fix FZJ entity name to match ROR
poikilotherm Feb 26, 2025
cbc45b4
chore: add Nitai Heeb as an author to CITATION.cff
poikilotherm Feb 26, 2025
fb18876
chore: remove Jeffrey Kelling as an author from CITATION.cff
poikilotherm Feb 26, 2025
fa49429
docs: make Sphinx read the authors list from pyproject.toml
poikilotherm Feb 26, 2025
9c47179
docs: make Sphinx read the version from pyproject.toml
poikilotherm Feb 26, 2025
5040879
docs: fix copyright string to name legal entities holding IP
poikilotherm Feb 26, 2025
6de7b48
docs: add a release process #260 #274
poikilotherm Feb 26, 2025
e4e2c47
ci: use poetry instead of pip to install dev deps in test pipeline
poikilotherm Feb 26, 2025
9babe10
ci: use poetry installed pytest and flake8
poikilotherm Feb 26, 2025
ebbfda0
build: set build version to follow new scheme of release process
poikilotherm Feb 26, 2025
b9cfae4
Merge pull request #311 from softwarepub/feature/fix-small-issues-bef…
nheeb Feb 26, 2025
bfc75b8
Update pyproject.toml
nheeb Feb 26, 2025
6a4a999
Update (current) Version in CITATION.cff
nheeb Feb 26, 2025
5552418
docs: update release process for CFF version and release branch
poikilotherm Feb 26, 2025
29c773b
style,docs: rearrange text in release process doc
poikilotherm Feb 26, 2025
8ea291e
Make help command work without toml
nheeb Feb 26, 2025
b0de065
Remove useless import
nheeb Feb 26, 2025
3e7b83c
flake8
nheeb Feb 26, 2025
8e6d96a
Update src/hermes/commands/cli.py
nheeb Feb 26, 2025
86fbb23
Update src/hermes/commands/base.py
nheeb Feb 26, 2025
9043cf7
classic flake8 issue
nheeb Feb 26, 2025
cda3dc5
Update cli.py
nheeb Feb 26, 2025
fd88160
Merge pull request #313 from softwarepub/feature/307-fix-missing-conf…
poikilotherm Feb 26, 2025
a20c219
feat: add version subcommand #280
poikilotherm Feb 26, 2025
cdfb298
Merge pull request #315 from softwarepub/feature/280-version-cmd
nheeb Feb 26, 2025
8fe3dc4
Merge pull request #312 from softwarepub/release/0.9.0
poikilotherm Feb 26, 2025
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
76 changes: 76 additions & 0 deletions .github/ISSUE_TEMPLATE/add-plugin-to-marketplace.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# SPDX-FileCopyrightText: 2024 Helmholtz-Zentrum Dresden-Rossendorf
# SPDX-License-Identifier: CC-BY-SA-4.0
# SPDX-FileContributor: David Pape

name: "Add Plugin to Marketplace"
description: "I want to add a plugin to the Hermes plugin marketplace."
title: "[New Plugin]: "
labels: ["documentation"]

body:
- type: markdown
attributes:
value: |
Thank you for building a plugin for Hermes and sharing it with the community!

The [Hermes plugin marketplace](https://hermes.software-metadata.pub#plugins) is a curated list of plugins on our website that allows you to share plugins that you developed, and others to find them.

Via this issue template, you can send us the required information to add your plugin to the marketplace. Alternatively, you may file a pull request, adding the plugin to [`plugins.json`](https://github.com/softwarepub/hermes/tree/develop/docs/source/plugins.json) yourself.

- id: "name"
type: "input"
attributes:
label: "Name"
description: "The name of the plugin"
placeholder: "Foobar Harvesting and Quux Deposit Plugin"
validations:
required: true

- id: "author"
type: "input"
attributes:
label: "Author"
description: "The author of the plugin, usually a team or organization"
placeholder: "Team Quux at Fizzbuzz Institute"

- id: "description"
type: "textarea"
attributes:
label: "Description"
description: "A short description of your plugin"
placeholder: "Plugin for harvesting foobar files and uploading deposits to quux repo."

- id: "steps"
type: "dropdown"
attributes:
label: "Steps"
description: "Steps of the Hermes workflow targeted by your plugin"
multiple: true
options: ["harvest", "process", "curate", "deposit", "postprocess"]

- id: "harvested-files"
type: "input"
attributes:
label: "Harvested files"
description: "The types of files your plugin harvests (if it is a harvest plugin)"
placeholder: "foobar, foobar.yml, foobar.json"

- id: "repository-url"
type: "input"
attributes:
label: "Repository"
description: "The link to the repository where users can find and inspect the source code of your plugin"
placeholder: "https://git.example.com/quux/hermes-plugin-quux"

- id: "pypi-url"
type: "input"
attributes:
label: "PyPI URL"
description: "The link to your project on PyPI"
placeholder: "https://pypi.org/project/hermes-plugin-quux/"

- id: "comments"
type: "textarea"
attributes:
label: "Comments"
description: "Any additional comments you would like to add"
2 changes: 1 addition & 1 deletion .github/workflows/cffconvert.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out a copy of the repository
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Check whether the citation metadata from CITATION.cff is valid
uses: citation-file-format/cffconvert-github-action@2.0.0
Expand Down
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
31 changes: 0 additions & 31 deletions .github/workflows/hermes-zenodo-sandbox.yml

This file was deleted.

151 changes: 151 additions & 0 deletions .github/workflows/hermes-zenodo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# SPDX-FileCopyrightText: 2023 German Aerospace Center (DLR), Helmholtz-Zentrum Drseden-Rossendorf, Forschungszentrum Jülich
#
# SPDX-License-Identifier: CC0-1.0

# SPDX-FileContributor: Stephan Druskat

name: Software publication on Zenodo

on:
push:
tags:
- "*"

# NOTE: Do not delete the trigger on closed pull requests, the HERMES workflow needs this.
pull_request:
types:
- closed

jobs:
hermes-prepare:
name: Prepare Metadata for Curation
runs-on: ubuntu-latest
# This condition becomes much easier when we only react to push events on the release branch.
# We still need to exclude the merge commit push of the post processing PR

# ADAPT
# Depending on the event you react to in the 'on:' section above, you will need to adapt this
# to react on the specific events.
# NOTE: You will probably still need to keep the exclusion check for commit messages provided by the workflow ('hermes/'/'hermes/post').
if: >
github.event_name == 'push' && ! (
startsWith(github.ref_name, 'hermes/') ||
contains(github.event.head_commit.message, 'hermes/post')
)

permissions:
contents: write # Allow creation of new branches
pull-requests: write # Postprocessing should be able to create a pull request with changes

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- run: pip install hermes hermes-plugin-python
- run: hermes harvest
- run: hermes process
- run: hermes curate

- run: |
# Cache current branch for PR close job
git branch --show-current > .hermes/curate/target_branch

# Shorten the SHA for the PR title
SHORT_SHA=$(echo "$GITHUB_SHA" | cut -c -8)
echo "SHORT_SHA=$SHORT_SHA" >> "$GITHUB_ENV"

# Create a curation branch
git switch -c "hermes/curate-$SHORT_SHA"
git push origin "hermes/curate-$SHORT_SHA"

# Explicitly add to-be-curated metadata (which is ignored via .gitignore!)
git add -f .hermes/curate
- uses: peter-evans/create-pull-request@v7
with:
base: hermes/curate-${{ env.SHORT_SHA }}
branch: hermes/curate-result-${{ env.SHORT_SHA }}
title: Metadata Curation for Commit ${{ env.SHORT_SHA }}
body: |
Please carefully review the attached metadata.
If you are satisfied with the result, you may merge this PR, which will trigger publication.
(Any temporary branches will be cleaned up.)
delete-branch: true

hermes-curate:
name: Publish Software with Curated Metadata
if: github.event.pull_request.merged == true && startsWith( github.base_ref , 'hermes/curate-')

runs-on: ubuntu-latest
permissions:
contents: write # Allow creation of new branches
pull-requests: write # Postprocessing should be able to create a pull request with changes

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- run: pip install hermes

# ADAPT
# If you want to publish artifacts (e.g., a zipped snapshot of your repository),
# you can prepare this here.
- run: git archive --format zip HEAD src > hermes.zip

# Run the HERMES deposition and postprocessing steps.
# ADAPT
# 1. You need to have an authentication token for your target publication platform
# as a GitHub secret in your repository (in this example, this is called ZENODO_SANDBOX).
# 2. Adapt the files you want to deposit. In the example, showcase.zip and README.md are deposited alongside the metadata.
# 3. Check if you want to run with '--initial', as this may potentially create a completely new record (collection),
# rather than a new version of the same collection!
- run: hermes deposit --initial -O invenio_rdm.auth_token ${{ secrets.ZENODO }} --file hermes.zip --file README.md

# ADAPT
# Remove this command if you don't want to do any postprocessing
- run: hermes postprocess

# ADAPT
# If you don't want to run postprocessing, remove this complete section (next '-run' and 'uses: peter-evans/...' bullets).
#
# Note 1: We change the base branch here for the PR. This flow runs so far within the "curated-metadata-*" branch,
# but now we want to add the changes done by deposit and post processing to the branch that was initially
# meant to be published using HERMES.
# Note 2: The create-pull-request action will NOT inherit the commits we did in the previous job. It will only look at the
# changes within this local workspace we did *now*.
- run: echo "TARGET_BRANCH=$(cat .hermes/curate/target_branch)" >> "$GITHUB_ENV"
- uses: peter-evans/create-pull-request@v7
with:
branch: hermes/post-${{ github.run_id }}
base: ${{ env.TARGET_BRANCH }}
title: Review hermes post-processing results
body: |
This is an automated pull request created by HERMES post-processing.

Please carefully review the changes and finally merge them into your

# Delete all the curation branches
- run: |
for BRANCH in $(git ls-remote origin 'refs/heads/hermes/curate-*' | cut -f2 | cut -d'/' -f'3-'); do
git push origin --delete "$BRANCH"
done
# TODO: if: failure() --- delete the curation branches when the deposition failed


hermes-cleanup:
name: Cleanup aborted curation branches
if: github.event.pull_request.merged == false && startsWith( github.base_ref , 'hermes/curate-')

runs-on: ubuntu-latest
permissions:
contents: write # Allow creation of new branches
pull-requests: write # Postprocessing should be able to create a pull request with changes

steps:
- uses: actions/checkout@v4
# Delete all the curation branches
- run: |
for BRANCH in $(git ls-remote origin 'refs/heads/hermes/curate-*' | cut -f2 | cut -d'/' -f'3-'); do
git push origin --delete "$BRANCH"
done
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install pypa/build
Expand All @@ -34,7 +34,7 @@ jobs:
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/
Expand All @@ -54,7 +54,7 @@ jobs:

steps:
- name: Download all the dists
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
Expand Down
18 changes: 8 additions & 10 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,24 +18,22 @@ jobs:
python-version: ["3.10"] # Ignore Python < 3.10, they are unsupported

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
python -m pip install --upgrade pip poetry
poetry install
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 ./test/ ./src/ --count --select=E9,F63,F7,F82 --show-source --statistics
poetry run flake8 ./test/ ./src/ --count --select=E9,F63,F7,F82 --show-source --statistics
# Stop build on errors
flake8 ./test/ ./src/ --count --statistics
poetry run flake8 ./test/ ./src/ --count --statistics
- name: Test with pytest
run: |
pip install -e .
pip install requests-mock
pytest ./test/
poetry install
poetry run pytest
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ dist/

# HERMES workflow specifics
.hermes/
hermes.log
25 changes: 17 additions & 8 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ title: hermes
message: >-
If you use this software, please cite it using the
metadata from this file.
version: "proof-of-concept"
version: 0.9.0
license: "Apache-2.0"
abstract: "Proof-of-concept implementation of the HERMES workflow."
abstract: "Tool to automate software publication. Not stable yet."
type: software
authors:
- given-names: Michael
Expand All @@ -29,15 +29,10 @@ authors:
email: stephan.druskat@dlr.de
affiliation: German Aerospace Center (DLR)
orcid: 'https://orcid.org/0000-0003-4925-7248'
- given-names: Jeffrey
family-names: Kelling
email: j.kelling@hzdr.de
affiliation: Helmholtz-Zentrum Dresden-Rossendorf (HZDR)
orcid: 'https://orcid.org/0000-0003-1761-2591'
- given-names: Oliver
family-names: Bertuch
email: o.bertuch@fz-juelich.de
affiliation: Forschungszentrum Jülich GmbH (FZJ)
affiliation: Forschungszentrum Jülich
orcid: 'https://orcid.org/0000-0002-2702-3419'
- given-names: Oliver
family-names: Knodel
Expand All @@ -49,3 +44,17 @@ authors:
email: d.pape@hzdr.de
affiliation: Helmholtz-Zentrum Dresden-Rossendorf (HZDR)
orcid: 'https://orcid.org/0000-0002-3145-9880'
- given-names: Kernchen
family-names: Sophie
email: sophie.kernchen@dlr.de
affiliation: German Aerospace Center (DLR)
orcid: 'https://orcid.org/0009-0005-4430-6743'
- given-names: Nitai
family-names: Heeb
email: n.heeb@fz-juelich.de
affiliation: Forschungszentrum Jülich
orcid: 'https://orcid.org/0009-0001-8382-4923'
identifiers:
- type: doi
value: 10.5281/zenodo.13221384
description: Version 0.8.1b1
Loading