Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
a68f2ae
Add test file
sdruskat Nov 21, 2025
95288a2
added first e2e harvest test for SoftwareMetadata
Jan 12, 2026
4920090
added more tests
Jan 16, 2026
38ef40e
refactored end to end tests
Jan 16, 2026
ddcd26a
updated creation of SoftwareMetadata objects in e2e tests
Jan 19, 2026
9b44b53
added tests and support for curate step
Jan 19, 2026
6c3ba13
started to add support for deposit step and added useful method for S…
Jan 19, 2026
feeb16b
worked on invenio deposit
Jan 23, 2026
4f6cc9d
Merge branch 'refactor/data-model' into feature/454-e2e-deposit
Jan 26, 2026
ed0916b
fixed bugs in invenio.py
Jan 26, 2026
382e2c3
fixed bug and adjusted tests
Jan 30, 2026
96861ec
adjusted invenio.py and its test a bit
Feb 2, 2026
248ae33
added adjusted files from feature/153-refactor-datamodel for process
Feb 6, 2026
ebebca4
added first tests
Feb 6, 2026
f21df49
(re)added version and help commands to the available commands
Feb 9, 2026
d4d9ca8
made test for process step more complex
Feb 9, 2026
7cfa7bc
made process step and ld_container._to_expanded_json more robust
Feb 9, 2026
520ef39
improved flake8 rating
Feb 9, 2026
8606933
Merge branch 'refactor/423-implement-public-api' into feature/454-e2e…
SKernchen Feb 13, 2026
d04b0e2
Remove SysExit call
SKernchen Feb 13, 2026
13a0952
Fix typo
SKernchen Feb 13, 2026
bcdc821
added lots of comments and fixed small inconsistencies
Feb 13, 2026
1c10dca
added coments and fix small bug
Feb 27, 2026
aa4284e
removed unnecessary print statements
Feb 27, 2026
4080091
json_ids are now returned as ld_dicts instead of the id string
Mar 3, 2026
b7543ee
reworked merging and added strategies
Mar 5, 2026
08619ee
fixed formation errors
Mar 5, 2026
ac36a28
updated strategies and match functions
Mar 6, 2026
3291c4d
formatting and doc strings
Mar 9, 2026
7365526
Merge branch 'feature/454-e2e-test-plugin-api' into feature/454-e2e-c…
notactuallyfinn Mar 9, 2026
62f1345
Merge pull request #468 from softwarepub/feature/454-e2e-curate
notactuallyfinn Mar 9, 2026
1e781ca
fixed mistake in merge
Mar 9, 2026
2878155
Merge pull request #470 from softwarepub/feature/454-e2e-process
notactuallyfinn Mar 9, 2026
57cdfb0
Merge branch 'feature/454-e2e-test-plugin-api' into feature/454-e2e-d…
notactuallyfinn Mar 9, 2026
e5065c2
Merge pull request #469 from softwarepub/feature/454-e2e-deposit
notactuallyfinn Mar 9, 2026
0e8b49c
fixed minor bugs
Mar 9, 2026
bd7e732
adapted postprocess and added test
Mar 10, 2026
a30d385
changed imports and fixed syntax error for python 3.10
Mar 11, 2026
50c58d3
Merge pull request #475 from softwarepub/feature/454-e2e-postprocess
notactuallyfinn Mar 11, 2026
230ee05
fixed syntax error and added lost dependency
Mar 11, 2026
1fcbb4b
adjusted comments and config for doc build to try get it running
Mar 11, 2026
65f3d10
tweeked documentation a bit
Mar 13, 2026
4f3372c
tweeked documentation of ld_list
Mar 13, 2026
45459fc
improved comments for ld_dict
Mar 13, 2026
8afb37b
split test_api_e2e.py into multiple files
Mar 13, 2026
4a08fbe
added and updated comments
Mar 13, 2026
1d1c18d
commented the rest of the new files
Mar 16, 2026
02340e0
added support for user defined merge strategies
Mar 16, 2026
5e296cb
added class to ignore list for autoapi
Mar 18, 2026
630dd00
updated documentation for plugin development, made curate pluginizabl…
Mar 19, 2026
296fbb7
fixed formatting errors
Mar 19, 2026
758dbde
reactivated tests and added afew log calls
Mar 20, 2026
7de8c7d
applied simple suggestions
Mar 20, 2026
ad63e5a
fixed misspelled class name
Mar 23, 2026
7a8e8ae
implemented suggestions and fixed bug
Mar 23, 2026
9d3dc7f
added test_case and generate strategies automatically
Mar 25, 2026
c699ae2
finished implementation of CodemetaProcessPlugin
Mar 26, 2026
d514c9f
implement more comments
Mar 26, 2026
ba8b549
add codemeta_doi postprocess plugin
Mar 26, 2026
9b1c48a
reworked zenodo_sandbox_auth for cli testing
Mar 26, 2026
55e086d
fix post process and add license header to conftest.py
Mar 26, 2026
9d770a1
improve error handling of commands
Mar 26, 2026
180cc10
make process more verbose for errors while merging
Mar 26, 2026
0251cd1
potentially fixed error where multiple record ids are halucinated.
Mar 26, 2026
73467f5
flake8
Mar 26, 2026
34877b9
adjusted logging a bit
Mar 27, 2026
a0c0005
fix tests that are affected by error handling update
Mar 27, 2026
279e672
added another process test and fixed small bug
Mar 27, 2026
65399be
flake8
Mar 27, 2026
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
9 changes: 9 additions & 0 deletions conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# SPDX-FileCopyrightText: 2026 German Aerospace Center (DLR)
#
# SPDX-License-Identifier: Apache-2.0

# SPDX-FileContributor: Michael Fritzsche

# add option to pass zenodo sandbox auth token to pytest to run ./test/hermes_test/commands/deposit/test_invenio_e2e.py
def pytest_addoption(parser):
parser.addoption("--sandbox_auth", action="store", default=None)
33 changes: 33 additions & 0 deletions docs/source/_static/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

/*
* SPDX-FileContributor: Oliver Bertuch
* SPDX-FileContributor: Michael Fritzsche
*/

img.member {
Expand All @@ -22,4 +23,36 @@ img.badge-icon {
img.member {
max-width: 23%;
}
}

img {
display: block;
margin: auto;
}

.bd-page-width {
max-width: none !important;
}

@media (min-width: 1200px) {
.bd-article-container {
max-width: none !important;
}
}

.bd-article-container {
max-width: 100%;
}

.bd-sidebar-primary.bd-sidebar {
max-width: min-content;
}

.bd-docs-nav {
min-width: max-content;
}

.bd-sidebar-secondary{
max-width: 15%;
width: max-content;
}
29 changes: 25 additions & 4 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def read_from_pyproject(file_path="../../pyproject.toml"):
data = toml.load(file_path)

# Navigate to the authors metadata
metadata = data.get("tool", {}).get("poetry", {})
metadata = data.get("project", {})
if not metadata:
return "No metadata found in pyproject.toml"
return metadata
Expand All @@ -56,7 +56,7 @@ def read_authors_from_pyproject():
if not authors:
return "No authors metadata found in pyproject.toml"
# Convert the list of authors to a comma-separated string
return ", ".join([a.split(" <")[0] for a in authors])
return ", ".join([author["name"] for author in authors])

def read_version_from_pyproject():
metadata = read_from_pyproject()
Expand All @@ -73,7 +73,7 @@ def read_version_from_pyproject():
author = read_authors_from_pyproject()

# The full version, including alpha/beta/rc tags
release = read_version_from_pyproject()
version = release = read_version_from_pyproject()


# -- General configuration ---------------------------------------------------
Expand Down Expand Up @@ -102,7 +102,7 @@ def read_version_from_pyproject():
'sphinx_togglebutton',
'sphinxcontrib.datatemplates',
# Custom extensions, see `_ext` directory.
# 'plugin_markup',
'plugin_markup',
]

language = 'en'
Expand Down Expand Up @@ -131,6 +131,9 @@ def read_version_from_pyproject():
autoapi_dirs = ["../../src"]
autoapi_root = "api"
autoapi_ignore = ["*__main__*"]
autoapi_options = [
"members", "undoc-members", "private-members", "special-members", "show-inheritance", "show-module-summary"
]

# -- Options for HTML output -------------------------------------------------

Expand Down Expand Up @@ -161,6 +164,7 @@ def read_version_from_pyproject():
"repository_url": "https://github.com/hermes-hmc/hermes",
"use_repository_button": True,
"navigation_with_keys": False,
"max_navbar_depth": -1
}

html_css_files = [
Expand All @@ -182,3 +186,20 @@ def read_version_from_pyproject():
# -- Options for sphinx-togglebutton -----------------------------------------

togglebutton_hint = "Click to show screenshot"


# TODO: remove this workaround and remove "undoc-members" from autoapi_options once everything is documented
# This removes all generated entries for known documented classes (because autoapi will add all attributes
# it finds in the code no matter if they are described in a class doc string or not).
def autoapi_skip_member(app, obj_type, name, obj, skip, options):
if obj_type == "attribute":
if any(documented_type in obj.id for documented_type in [
"Collect", "HermesCache", "HermesContext", "HermesMergeError", "ld_container", "ld_context", "ld_dict",
"ld_list", "ld_merge_dict", "ld_merge_list", "MergeSet"
]):
return True

return skip

def setup(app):
app.connect("autoapi-skip-member", autoapi_skip_member)
2 changes: 1 addition & 1 deletion docs/source/tutorials/automated-publication-with-ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ Each step in the publication workflow has its own section.

Configure HERMES to:

- harvest metadata from Git and `CITATION.cff`
- harvest metadata from `CITATION.cff`
- deposit on Zenodo Sandbox (which is built on the InvenioRDM)
- use Zenodo Sandbox as the target publication repository

Expand Down
Loading
Loading