Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
08e1c23
Test user agent name
sdruskat Jul 31, 2025
8bf6343
Use distribution version in test
sdruskat Aug 1, 2025
9ff39d7
Update pyproject.toml to adhere to PEP 621
sdruskat Aug 1, 2025
d83c93c
Fix retrieving URLs from distribution metadata
sdruskat Aug 1, 2025
9dfcd30
Remove superfluous poetry-related sections
sdruskat Aug 1, 2025
45435dc
Fix Poetry build backend version
sdruskat Aug 1, 2025
5ac060e
Make dev dependencies fully optional
sdruskat Aug 1, 2025
ca4a11c
Restore poetry-defined dependency groups
sdruskat Aug 1, 2025
f90cb4d
Change authorship back to align with CFF
sdruskat Aug 1, 2025
b46a7a5
Reset authorship policy to align with CFF
sdruskat Aug 1, 2025
a2e20e0
Update lock
sdruskat Aug 1, 2025
6a95ebf
Disambiguate var name
sdruskat Aug 1, 2025
c90002a
Update poetry version to use for docs build
sdruskat Aug 1, 2025
eb1dfca
Update readthedocs config
sdruskat Aug 1, 2025
e26fb3b
Replace link to CFF file with absolute URL to fix RTD build
sdruskat Aug 1, 2025
588f372
Reduce scope of import
sdruskat Aug 1, 2025
f149a9a
Use concrete path of test file to read file into toml
sdruskat Aug 1, 2025
d04a47e
Import Path from pathlib
sdruskat Aug 1, 2025
4fd43a9
Format comprehension for better readability
sdruskat Aug 1, 2025
b0b84a7
Merge pull request #407 from softwarepub/feature/347-update-build_bac…
sdruskat Aug 1, 2025
ac639bb
Update copyright header
sdruskat Aug 5, 2025
86d8def
Re-lock dependencies
sdruskat Aug 5, 2025
bfd0b29
Merge branch 'refactor/data-model' into develop
sdruskat Aug 5, 2025
7a38f8b
Revert "Merge branch 'refactor/data-model' into develop"
sdruskat Aug 5, 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
11 changes: 8 additions & 3 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,15 @@ build:
tools:
python: "3.10"
jobs:
post_create_environment:
# Install poetry
# https://python-poetry.org/docs/#installing-manually
- pip install "poetry>=2.1.3,<3.0.0"
post_install:
- pip install "poetry>=1.2.0,<1.3.0"
- poetry config virtualenvs.create false
- poetry install --with docs
# Install dependencies with 'docs' dependency group
# https://python-poetry.org/docs/managing-dependencies/#dependency-groups
# VIRTUAL_ENV needs to be set manually for now, see #11150
- VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH poetry install --with docs

# Build documentation in the docs/source directory with Sphinx
sphinx:
Expand Down
4 changes: 2 additions & 2 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,5 @@ 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.

In addition, all contributors with write access to repositories and regular activities should be added as "authors" to project and build system metadata in alphabetical order.
They may also qualify for scholarly authorship, which is managed in citation metadata as necessary and may be ordered by other criteria.
Authorship is defined by the [steering group](#hermes-steering-group) and declared in
[`CITATION.cff`](https://github.com/softwarepub/hermes/blob/main/CITATION.cff).
120 changes: 60 additions & 60 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,60 +1,74 @@
# SPDX-FileCopyrightText: 2022 German Aerospace Center (DLR)
# SPDX-FileCopyrightText: 2022 German Aerospace Center (DLR), Helmholtz-Zentrum Dresden-Rossendorf
#
# SPDX-License-Identifier: CC0-1.0

# SPDX-FileContributor: Stephan Druskat
# SPDX-FileContributor: Stephan Druskat <stephan.druskat@dlr.de>
# SPDX-FileContributor: Michael Meinel
# SPDX-FileContributor: David Pape

[tool.poetry]
# Reference at https://python-poetry.org/docs/pyproject/
[project]
name = "hermes"
version = "0.10.0.dev0"
version = "0.10.0.dev1"
description = "Workflow to publish research software with rich metadata"
homepage = "https://software-metadata.pub"
license = "Apache-2.0"
# All natural persons doing regular contributions and equipped with write access to the repo.
# Alphabetical order of last name. See also GOVERNANCE.md.
license = "Apache-2.0 AND LicenseRef-BSD-Caltech"
authors = [
"Oliver Bertuch <o.bertuch@fz-juelich.de>",
"Stephan Druskat <stephan.druskat@dlr.de>",
"Nitai Heeb <n.heeb@fz-juelich.de>",
"Sophie Kernchen <sohpie.kernchen@dlr.de>",
"Michael Meinel <michael.meinel@dlr.de>",
"David Pape <d.pape@hzdr.de>"
{ name = "Michael Meinel", email = "michael.meinel@dlr.de" },
{ name = "Stephan Druskat", email = "stephan.druskat@dlr.de" },
{ name = "Oliver Bertuch", email = "o.bertuch@fz-juelich.de" },
{ name = "Oliver Knodel", email = "o.knodel@hzdr.de" },
{ name = "David Pape", email = "d.pape@hzdr.de" },
{ name = "Sophie Kernchen", email = "sohpie.kernchen@dlr.de" },
{ name = "Nitai Heeb", email = "n.heeb@fz-juelich.de" },
]
maintainers = [
{ name = "Stephan Druskat", email = "stephan.druskat@dlr.de" },
]

readme = "README.md"
repository = "https://github.com/softwarepub/hermes"
keywords = ["software", "publication", "metadata", "automation"]

dependencies = [
"ruamel.yaml>=0.17.21, <0.18.0",
"jsonschema>=3.0.0, <4.0.0",
"pyld>=2.0.3, <3.0.0",
"cffconvert>=2.0.0, <3.0.0",
"toml>=0.10.2, <1.0.0",
"pyparsing>=3.0.9, <4.0.0",
"requests>=2.28.1, <3.0.0",
"pydantic>=2.5.1, <3.0.0",
"pydantic-settings>=2.1.0, <3.0.0",
"requests-oauthlib>=2.0.0, <3.0.0",
"pynacl>=1.5.0, <2.0.0",
]
requires-python = ">=3.10, <4.0.0"

[project.urls]
homepage = "https://hermes.software-metadata.pub"
documentation = "https://hermes.software-metadata.pub"
keywords = ["publishing", "metadata", "automation"]
repository = "https://github.com/softwarepub/hermes.git"
issues = "https://github.com/softwarepub/hermes/issues"

include = [
"hermes/schema/*.json",
]

# Stating our package explicitely here to enable
# a) including contrib packages in the future and
# b) rename the package for development snapshot releases to TestPyPI
packages = [
{ include = "hermes", from = "src" }
]
[project.scripts]
hermes = "hermes.commands.cli:main"
hermes-marketplace = "hermes.commands.marketplace:main"


[project.entry-points."hermes.harvest"]
cff = "hermes.commands.harvest.cff:CffHarvestPlugin"
codemeta = "hermes.commands.harvest.codemeta:CodeMetaHarvestPlugin"

[project.entry-points."hermes.deposit"]
file = "hermes.commands.deposit.file:FileDepositPlugin"
invenio = "hermes.commands.deposit.invenio:InvenioDepositPlugin"
invenio_rdm = "hermes.commands.deposit.invenio_rdm:IvenioRDMDepositPlugin"
rodare = "hermes.commands.deposit.rodare:RodareDepositPlugin"

[project.entry-points."hermes.postprocess"]
config_invenio_record_id = "hermes.commands.postprocess.invenio:config_record_id"
config_invenio_rdm_record_id = "hermes.commands.postprocess.invenio_rdm:config_record_id"
cff_doi = "hermes.commands.postprocess.invenio:cff_doi"

[tool.poetry.dependencies]
python = "^3.10"
"ruamel.yaml" = "^0.17.21"
jsonschema = "^3.0.0"
pyld = "^2.0.3"
cffconvert = "^2.0.0"
toml = "^0.10.2"
pyparsing = "^3.0.9"
requests = "^2.28.1"
pydantic = "^2.5.1"
pydantic-settings = "^2.1.0"
requests-oauthlib = "^2.0.0"
pynacl = "^1.5.0"
schemaorg = "^0.1.1"
rdflib = "^7.1.4"

[tool.poetry.group.dev.dependencies]
pytest = "^7.1.1"
Expand Down Expand Up @@ -85,38 +99,24 @@ sphinx-togglebutton="^0.3.2"
reuse = "^1.1.2"
sphinxcontrib-datatemplates = "^0.11.0"

[tool.poetry.plugins.console_scripts]
hermes = "hermes.commands.cli:main"
hermes-marketplace = "hermes.commands.marketplace:main"

[tool.poetry.plugins."hermes.harvest"]
cff = "hermes.commands.harvest.cff:CffHarvestPlugin"
codemeta = "hermes.commands.harvest.codemeta:CodeMetaHarvestPlugin"

[tool.poetry.plugins."hermes.deposit"]
file = "hermes.commands.deposit.file:FileDepositPlugin"
invenio = "hermes.commands.deposit.invenio:InvenioDepositPlugin"
invenio_rdm = "hermes.commands.deposit.invenio_rdm:IvenioRDMDepositPlugin"
rodare = "hermes.commands.deposit.rodare:RodareDepositPlugin"

[tool.poetry.plugins."hermes.postprocess"]
config_invenio_record_id = "hermes.commands.postprocess.invenio:config_record_id"
config_invenio_rdm_record_id = "hermes.commands.postprocess.invenio_rdm:config_record_id"
cff_doi = "hermes.commands.postprocess.invenio:cff_doi"

[tool.taskipy.tasks]
docs-build = "poetry run sphinx-build -M html docs/source docs/build -W"
docs-clean = "poetry run sphinx-build -M clean docs/source docs/build"
docs-live = "poetry run sphinx-autobuild docs/source docs/build"
flake8 = "poetry run flake8 ./test/ ./src/ --count --select=E9,F63,F7,F82 --statistics"


[tool.pytest.ini_options]
norecursedirs = "docs/*"
testpaths = [
"test"
]
addopts = "--cov=hermes --cov-report term"


[build-system]
requires = ["poetry-core>=1.2.0"]
requires = [
"poetry-core>=2.1.3, <3.0.0"
]
build-backend = "poetry.core.masonry.api"
Loading