diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6a7695c..d2dea4e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,3 +4,7 @@ updates: directory: "/" schedule: interval: "weekly" + groups: + weekly-batch: + patterns: + - "*" diff --git a/.github/workflows/build-with-profiles.yml b/.github/workflows/build-with-profiles.yml index e56aad8..41de793 100644 --- a/.github/workflows/build-with-profiles.yml +++ b/.github/workflows/build-with-profiles.yml @@ -43,8 +43,8 @@ jobs: # Add the five-safes profile (via EXTRA_PROFILES_PATH) and warm its # cache, using the shared Dockerfile's build args. build-args: | - FIVE_SAFES_PROFILE_VERSION=five-safes-0.7.4-beta - PROFILES_ARCHIVE_URL=https://github.com/eScienceLab/rocrate-validator/archive/refs/tags/five-safes-0.7.4-beta.tar.gz + FIVE_SAFES_PROFILE_VERSION=five-safes-0.8.0 + PROFILES_ARCHIVE_URL=https://github.com/eScienceLab/rocrate-validator/archive/refs/tags/five-safes-0.8.0.tar.gz EXTRA_PROFILES_PATH=/app/extra-profiles tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 768dd8f..e0d505f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: run: | python -m pip install --upgrade pip # Keep in sync with requirements-dev.txt - pip install ruff==0.15.17 + pip install ruff==0.16.8 - name: Lint run: ruff check . diff --git a/.github/workflows/test_docker.yml b/.github/workflows/test_docker.yml index 2bd6bc9..d63f8b1 100644 --- a/.github/workflows/test_docker.yml +++ b/.github/workflows/test_docker.yml @@ -21,7 +21,7 @@ jobs: run: | python -m pip install --upgrade pip # Keep in sync with requirements-dev.txt - pip install pytest==9.1.0 requests==2.34.2 boto3==1.43.29 + pip install pytest==9.1.1 requests==2.34.2 boto3==1.43.97 - name: Run integration tests (brings up the compose stack) run: | diff --git a/docker-compose.yml b/docker-compose.yml index 73c9e2d..ef3f77e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: flask: platform: linux/x86_64 - image: "ghcr.io/esciencelab/ro-crate-validation-service:0.1" + image: "ghcr.io/esciencelab/ro-crate-validation-service:latest" ports: - "5001:5000" environment: @@ -28,7 +28,7 @@ services: celery_worker: platform: linux/x86_64 - image: "ghcr.io/esciencelab/ro-crate-validation-service:0.1" + image: "ghcr.io/esciencelab/ro-crate-validation-service:latest" command: celery -A app.celery_worker.celery worker --loglevel=info -E environment: - CELERY_BROKER_URL=redis://redis:6379/0 diff --git a/pyproject.toml b/pyproject.toml index 74c6205..fed3923 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,14 +14,14 @@ authors = [{ name = "eScience Lab, The University of Manchester" }] # Direct runtime dependencies: dependencies = [ "celery==5.6.3", - "boto3==1.43.29", + "boto3==1.43.97", "requests==2.34.2", "Flask==3.1.3", "Werkzeug==3.1.8", - "redis==8.0.1", - "python-dotenv==1.2.2", - "apiflask==3.1.0", - "roc-validator==0.11.2", + "redis==8.1.0", + "python-dotenv==1.2.3", + "apiflask==3.1.2", + "roc-validator==0.11.4", ] [project.optional-dependencies] diff --git a/requirements-dev.txt b/requirements-dev.txt index 76b4f4d..d984ee4 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,13 +2,13 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --extra=dev --output-file=requirements-dev.txt pyproject.toml +# pip-compile --extra=dev --no-index --output-file=requirements-dev.txt # amqp==5.3.1 # via kombu -annotated-types==0.7.0 +annotated-types==0.8.0 # via pydantic -apiflask==3.1.0 +apiflask==3.1.2 # via ro-crate-validation-service (pyproject.toml) apispec==6.10.0 # via apiflask @@ -16,32 +16,32 @@ attrs==26.1.0 # via # cattrs # requests-cache -billiard==4.2.4 +billiard==4.3.0 # via celery blinker==1.9.0 # via flask -boto3==1.43.29 +boto3==1.43.97 # via # moto # ro-crate-validation-service (pyproject.toml) -botocore==1.43.31 +botocore==1.43.97 # via # boto3 # moto # s3transfer -build==1.5.0 +build==1.6.1 # via pip-tools -cattrs==26.1.0 +cattrs==26.2.0 # via requests-cache celery==5.6.3 # via ro-crate-validation-service (pyproject.toml) -certifi==2026.6.17 +certifi==2026.7.22 # via requests -cffi==2.1.0 +cffi==2.1.1 # via cryptography -charset-normalizer==3.4.7 +charset-normalizer==3.5.1 # via requests -click==8.4.1 +click==8.5.0 # via # celery # click-didyoumean @@ -55,11 +55,11 @@ click-didyoumean==0.3.1 # via celery click-plugins==1.1.1.2 # via celery -click-repl==0.3.0 +click-repl==0.4.0 # via celery colorlog==6.12.0 # via roc-validator -cryptography==50.0.0 +cryptography==50.0.1 # via moto dnspython==2.8.0 # via email-validator @@ -79,12 +79,12 @@ flask-marshmallow==1.5.0 # via apiflask html5rdf==1.2.1 # via rdflib -idna==3.15 +idna==3.20 # via # email-validator # requests # url-normalize -importlib-metadata==9.0.0 +importlib-metadata==9.0.1 # via pyshacl iniconfig==2.3.0 # via pytest @@ -107,18 +107,18 @@ markupsafe==3.0.3 # flask # jinja2 # werkzeug -marshmallow==4.3.0 +marshmallow==4.3.1 # via # apiflask # flask-marshmallow # webargs mdurl==0.1.2 # via markdown-it-py -moto[s3]==5.2.2 +moto[s3]==5.2.3 # via ro-crate-validation-service (pyproject.toml) -owlrl==7.1.4 +owlrl==7.6.2 # via pyshacl -packaging==26.2 +packaging==26.3 # via # apispec # build @@ -131,11 +131,11 @@ pfzy==0.3.4 # via inquirerpy pip-tools==7.6.1 # via ro-crate-validation-service (pyproject.toml) -platformdirs==4.10.0 +platformdirs==4.11.10 # via requests-cache pluggy==1.6.0 # via pytest -prettytable==3.17.0 +prettytable==3.18.0 # via pyshacl prompt-toolkit==3.0.53 # via @@ -145,24 +145,24 @@ py-partiql-parser==0.6.3 # via moto pycparser==3.0 # via cffi -pydantic[email]==2.13.4 +pydantic[email]==2.13.5 # via apiflask -pydantic-core==2.46.4 +pydantic-core==2.46.5 # via pydantic -pygments==2.20.0 +pygments==2.21.0 # via # enum-tools # pytest # rich pyparsing==3.3.2 # via rdflib -pyproject-hooks==1.2.0 +pyproject-hooks==1.3.3 # via # build # pip-tools -pyshacl==0.31.0 +pyshacl==0.40.1 # via roc-validator -pytest==9.1.0 +pytest==9.1.1 # via # pytest-mock # ro-crate-validation-service (pyproject.toml) @@ -172,7 +172,7 @@ python-dateutil==2.9.0.post0 # via # botocore # celery -python-dotenv==1.2.2 +python-dotenv==1.2.3 # via ro-crate-validation-service (pyproject.toml) pyyaml==6.0.3 # via @@ -183,7 +183,7 @@ rdflib[html]==7.6.0 # owlrl # pyshacl # roc-validator -redis==8.0.1 +redis==8.1.0 # via ro-crate-validation-service (pyproject.toml) requests==2.34.2 # via @@ -194,40 +194,41 @@ requests==2.34.2 # roc-validator requests-cache==1.3.3 # via roc-validator -responses==0.26.2 +responses==0.26.3 # via moto rich==13.9.4 # via # rich-click # roc-validator -rich-click==1.9.8 +rich-click==1.9.9 # via roc-validator -roc-validator==0.11.2 +roc-validator==0.11.4 # via ro-crate-validation-service (pyproject.toml) -ruff==0.15.17 +ruff==0.16.8 # via ro-crate-validation-service (pyproject.toml) -s3transfer==0.18.0 +s3transfer==0.19.2 # via boto3 six==1.17.0 # via python-dateutil toml==0.10.2 # via roc-validator -typing-extensions==4.15.0 +typing-extensions==4.16.0 # via # cattrs + # click-repl # enum-tools # pydantic # pydantic-core # typing-inspection -typing-inspection==0.4.2 +typing-inspection==0.4.4 # via pydantic -tzdata==2026.2 +tzdata==2026.4 # via kombu -tzlocal==5.4.3 +tzlocal==5.4.4 # via celery url-normalize==3.0.0 # via requests-cache -urllib3==2.7.0 +urllib3==2.8.0 # via # botocore # requests @@ -238,7 +239,7 @@ vine==5.1.0 # amqp # celery # kombu -wcwidth==0.8.1 +wcwidth==0.8.4 # via # prettytable # prompt-toolkit @@ -249,7 +250,7 @@ werkzeug==3.1.8 # flask # moto # ro-crate-validation-service (pyproject.toml) -wheel==0.47.0 +wheel==0.48.0 # via pip-tools xmltodict==1.0.4 # via moto diff --git a/requirements.txt b/requirements.txt index 28c5ac9..397703e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,39 +2,39 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --output-file=requirements.txt pyproject.toml +# pip-compile --no-index --output-file=requirements.txt # amqp==5.3.1 # via kombu -annotated-types==0.7.0 +annotated-types==0.8.0 # via pydantic -apiflask==3.1.0 +apiflask==3.1.2 # via ro-crate-validation-service (pyproject.toml) -apispec==6.8.2 +apispec==6.10.0 # via apiflask -attrs==25.3.0 +attrs==26.1.0 # via # cattrs # requests-cache -billiard==4.2.4 +billiard==4.3.0 # via celery blinker==1.9.0 # via flask -boto3==1.43.29 +boto3==1.43.97 # via ro-crate-validation-service (pyproject.toml) -botocore==1.43.29 +botocore==1.43.97 # via # boto3 # s3transfer -cattrs==25.1.1 +cattrs==26.2.0 # via requests-cache celery==5.6.3 # via ro-crate-validation-service (pyproject.toml) -certifi==2025.8.3 +certifi==2026.7.22 # via requests -charset-normalizer==3.4.2 +charset-normalizer==3.5.1 # via requests -click==8.2.1 +click==8.5.0 # via # celery # click-didyoumean @@ -47,7 +47,7 @@ click-didyoumean==0.3.1 # via celery click-plugins==1.1.1.2 # via celery -click-repl==0.3.0 +click-repl==0.4.0 # via celery colorlog==6.12.0 # via roc-validator @@ -65,16 +65,16 @@ flask==3.1.3 # ro-crate-validation-service (pyproject.toml) flask-httpauth==4.8.1 # via apiflask -flask-marshmallow==1.3.0 +flask-marshmallow==1.5.0 # via apiflask html5rdf==1.2.1 # via rdflib -idna==3.15 +idna==3.20 # via # email-validator # requests # url-normalize -importlib-metadata==9.0.0 +importlib-metadata==9.0.1 # via pyshacl inquirerpy==0.3.4 # via roc-validator @@ -88,23 +88,23 @@ jmespath==1.1.0 # botocore kombu==5.6.2 # via celery -markdown-it-py==3.0.0 +markdown-it-py==4.2.0 # via rich markupsafe==3.0.3 # via # flask # jinja2 # werkzeug -marshmallow==4.1.2 +marshmallow==4.3.1 # via # apiflask # flask-marshmallow # webargs mdurl==0.1.2 # via markdown-it-py -owlrl==7.1.4 +owlrl==7.6.2 # via pyshacl -packaging==26.2 +packaging==26.3 # via # apispec # kombu @@ -112,38 +112,38 @@ packaging==26.2 # webargs pfzy==0.3.4 # via inquirerpy -platformdirs==4.3.8 +platformdirs==4.11.10 # via requests-cache -prettytable==3.16.0 +prettytable==3.18.0 # via pyshacl prompt-toolkit==3.0.53 # via # click-repl # inquirerpy -pydantic[email]==2.12.4 +pydantic[email]==2.13.5 # via apiflask -pydantic-core==2.41.5 +pydantic-core==2.46.5 # via pydantic -pygments==2.20.0 +pygments==2.21.0 # via # enum-tools # rich -pyparsing==3.2.3 +pyparsing==3.3.2 # via rdflib -pyshacl==0.30.1 +pyshacl==0.40.1 # via roc-validator python-dateutil==2.9.0.post0 # via # botocore # celery -python-dotenv==1.2.2 +python-dotenv==1.2.3 # via ro-crate-validation-service (pyproject.toml) -rdflib[html]==7.1.4 +rdflib[html]==7.6.0 # via # owlrl # pyshacl # roc-validator -redis==8.0.1 +redis==8.1.0 # via ro-crate-validation-service (pyproject.toml) requests==2.34.2 # via @@ -156,33 +156,33 @@ rich==13.9.4 # via # rich-click # roc-validator -rich-click==1.8.9 +rich-click==1.9.9 # via roc-validator -roc-validator==0.11.2 +roc-validator==0.11.4 # via ro-crate-validation-service (pyproject.toml) -s3transfer==0.18.0 +s3transfer==0.19.2 # via boto3 six==1.17.0 # via python-dateutil toml==0.10.2 # via roc-validator -typing-extensions==4.14.1 +typing-extensions==4.16.0 # via # cattrs + # click-repl # enum-tools # pydantic # pydantic-core - # rich-click # typing-inspection -typing-inspection==0.4.2 +typing-inspection==0.4.4 # via pydantic -tzdata==2025.2 +tzdata==2026.4 # via kombu -tzlocal==5.3.1 +tzlocal==5.4.4 # via celery -url-normalize==2.2.1 +url-normalize==3.0.0 # via requests-cache -urllib3==2.7.0 +urllib3==2.8.0 # via # botocore # requests @@ -192,15 +192,15 @@ vine==5.1.0 # amqp # celery # kombu -wcwidth==0.2.13 +wcwidth==0.8.4 # via # prettytable # prompt-toolkit -webargs==8.7.0 +webargs==8.7.1 # via apiflask werkzeug==3.1.8 # via # flask # ro-crate-validation-service (pyproject.toml) -zipp==3.23.0 +zipp==4.1.0 # via importlib-metadata