From f1fc524b7efe3f5b6979b5b35d6a2205adb396c3 Mon Sep 17 00:00:00 2001 From: Christoph Ladurner Date: Sat, 30 Nov 2024 00:18:51 +0100 Subject: [PATCH 1/6] setup: bump major dependencies --- setup.cfg | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/setup.cfg b/setup.cfg index 534bdc6..bbd8f8d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,7 +2,7 @@ # # This file is part of Invenio. # Copyright (C) 2015-2018 CERN. -# Copyright (C) 2022 Graz University of Technology. +# Copyright (C) 2022-2024 Graz University of Technology. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. @@ -29,30 +29,30 @@ zip_safe = False install_requires = arrow>=0.17.0 dojson>=1.3.0,<2.0.0 - invenio-base>=1.2.11,<2.0.0 - invenio-i18n>=2.0.0,<3.0.0 - invenio-pidstore>=1.2.2,<2.0.0 - invenio-records>=2.0.0,<3.0.0 - invenio-rest>=1.2.4,<2.0.0 + invenio-base>=2.0.0,<3.0.0 + invenio-i18n>=3.0.0,<4.0.0 + invenio-pidstore>=2.0.0,<3.0.0 + invenio-records>=3.0.0,<4.0.0 + invenio-rest>=2.0.0,<3.0.0 lxml>=4.3.0 [options.extras_require] tests = - pytest-black>=0.3.0 - invenio-indexer>=2.1.0,<3.0.0 - invenio-jsonschemas>=1.1.3,<2.0.0 + pytest-black-ng>=0.4.0 + invenio-indexer>=3.0.0,<4.0.0 + invenio-jsonschemas>=2.0.0,<3.0.0 mock>=1.3.0 - pytest-invenio>=2.1.0,<3.0.0 + pytest-invenio>=3.0.0,<4.0.0 invenio-admin>=1.3.0,<2.0.0 - invenio-celery>=1.2.5,<2.0.0 + invenio-celery>=2.0.0,<3.0.0 Sphinx>=4.5.0 - invenio-db[mysql,postgresql,versioning]>=1.0.9,<2.0.0 + invenio-db[mysql,postgresql,versioning]>=2.0.0,<3.0.0 elasticsearch7 = - invenio-search[elasticsearch7]>=2.1.0,<3.0.0 + invenio-search[elasticsearch7]>=3.0.0,<4.0.0 opensearch1 = - invenio-search[opensearch1]>=2.1.0,<3.0.0 + invenio-search[opensearch1]>=3.0.0,<4.0.0 opensearch2 = - invenio-search[opensearch2]>=2.1.0,<3.0.0 + invenio-search[opensearch2]>=3.0.0,<4.0.0 [options.entry_points] invenio_base.apps = From 9f3e20c2f241d84f6b5069df2aaf29283d1bf420 Mon Sep 17 00:00:00 2001 From: Christoph Ladurner Date: Sat, 30 Nov 2024 00:20:25 +0100 Subject: [PATCH 2/6] setup: change to reusable workflows --- .github/workflows/pypi-publish.yml | 29 +++------------ .github/workflows/tests.yml | 57 ++---------------------------- 2 files changed, 7 insertions(+), 79 deletions(-) diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 441d04b..11ca439 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -2,6 +2,7 @@ # # This file is part of Invenio. # Copyright (C) 2020 CERN. +# Copyright (C) 2024 Graz University of Technology. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. @@ -15,27 +16,7 @@ on: jobs: Publish: - runs-on: ubuntu-20.04 - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: 3.7 - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install setuptools wheel babel - - - name: Build package - run: | - python setup.py compile_catalog sdist bdist_wheel - - - name: Publish on PyPI - uses: pypa/gh-action-pypi-publish@v1.3.1 - with: - user: __token__ - password: ${{ secrets.pypi_token }} + uses: inveniosoftware/workflows/.github/workflows/pypi-publish.yml@master + secrets: inherit + with: + babel-compile-catalog: true diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8ef8bfd..c2ec5ba 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,7 +2,7 @@ # # This file is part of Invenio. # Copyright (C) 2020 CERN. -# Copyright (C) 2022 Graz University of Technology. +# Copyright (C) 2022-2024 Graz University of Technology. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. @@ -26,57 +26,4 @@ on: jobs: Tests: - runs-on: ubuntu-20.04 - timeout-minutes: 20 - strategy: - matrix: - python-version: [3.8, 3.9] - requirements-level: [pypi] - db-service: [postgresql14,postgresql13,mysql8] - mq-service: [rabbitmq] - search-service: [opensearch2,elasticsearch7] - include: - - db-service: postgresql14 - DB_EXTRAS: "postgresql" - - - db-service: postgresql13 - DB_EXTRAS: "postgresql" - - - db-service: mysql8 - DB_EXTRAS: "mysql" - env: - DB: ${{ matrix.db-service }} - MQ: ${{ matrix.mq-service }} - SEARCH: ${{ matrix.search-service }} - EXTRAS: tests,${{ matrix.search-service }} - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - - name: Generate dependencies - run: | - pip install wheel requirements-builder - requirements-builder -e "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt - - - name: Cache pip - uses: actions/cache@v2 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('.${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt') }} - - - name: Install dependencies - run: | - pip install -r .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt - pip install ".[$EXTRAS]" - pip freeze - docker --version - docker compose --version - - - name: Run tests - run: | - ./run-tests.sh + uses: inveniosoftware/workflows/.github/workflows/tests-python.yml@master From 2ebaa8aee726386cd54edde86127454c0889bdec Mon Sep 17 00:00:00 2001 From: Christoph Ladurner Date: Fri, 6 Dec 2024 14:15:00 +0100 Subject: [PATCH 3/6] tests: apply changes for sqlalchemy>=2.0 --- tests/conftest.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index d6593ff..e040fa6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,6 +2,7 @@ # # This file is part of Invenio. # Copyright (C) 2015-2018 CERN. +# Copyright (C) 2024 Graz University of Technology. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. @@ -75,10 +76,12 @@ def app(): app.register_blueprint(blueprint) with app.app_context(): - if str(db.engine.url) != "sqlite://" and not database_exists( - str(db.engine.url) + if str( + db.engine.url.render_as_string(hide_password=False) + ) != "sqlite://" and not database_exists( + str(db.engine.url.render_as_string(hide_password=False)) ): - create_database(str(db.engine.url)) + create_database(str(db.engine.url.render_as_string(hide_password=False))) db.create_all() list(search.delete(ignore=[404])) list(search.create()) @@ -89,8 +92,8 @@ def app(): with app.app_context(): db.session.close() - if str(db.engine.url) != "sqlite://": - drop_database(str(db.engine.url)) + if str(db.engine.url.render_as_string(hide_password=False)) != "sqlite://": + drop_database(str(db.engine.url.render_as_string(hide_password=False))) list(search.delete(ignore=[404])) search.client.indices.delete("*-percolators") shutil.rmtree(instance_path) From aa1be1bfd073d9fba800797358086d77f51e79a4 Mon Sep 17 00:00:00 2001 From: Christoph Ladurner Date: Fri, 6 Dec 2024 14:24:20 +0100 Subject: [PATCH 4/6] fix: docs reference target not found --- docs/conf.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 6cffe2a..326d476 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -2,7 +2,7 @@ # # This file is part of Invenio. # Copyright (C) 2015-2018 CERN. -# Copyright (C) 2022-2023 Graz University of Technology. +# Copyright (C) 2022-2024 Graz University of Technology. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. @@ -35,6 +35,9 @@ nitpick_ignore = [ ("py:class", "types.StrSequenceOrSet"), ("py:class", "flask_admin.contrib.sqla.filters.BaseSQLAFilter"), + ("py:class", "t.ClassVar"), + ("py:class", "Query"), + ("py:attr", "query_class"), ] # Add any paths that contain templates here, relative to this directory. From f1c8709566fae344eab92312fa9d9cdc39de2668 Mon Sep 17 00:00:00 2001 From: Christoph Ladurner Date: Fri, 6 Dec 2024 14:52:24 +0100 Subject: [PATCH 5/6] fix: tests, apply invenio-indexer change --- tests/conftest.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/conftest.py b/tests/conftest.py index e040fa6..2dc45df 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -55,6 +55,7 @@ def app(): OAISERVER_QUERY_PARSER_FIELDS=["title_statement"], OAISERVER_RECORD_INDEX="_all", OAISERVER_REGISTER_SET_SIGNALS=True, + INDEXER_DEFAULT_INDEX="records-record-v1.0.0", ) if not hasattr(app, "cli"): from flask_cli import FlaskCLI From 4e28f1bee1f8e64186b362b8122edd1c2d00f429 Mon Sep 17 00:00:00 2001 From: Christoph Ladurner Date: Fri, 6 Dec 2024 14:53:07 +0100 Subject: [PATCH 6/6] release: v3.0.0 --- CHANGES.rst | 10 ++++++++++ invenio_oaiserver/__init__.py | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index d9eda5d..bd32a9f 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,7 @@ .. This file is part of Invenio. Copyright (C) 2016-2022 CERN. + Copyright (C) 2024 Graz University of Technology. Invenio is free software; you can redistribute it and/or modify it under the terms of the MIT License; see LICENSE file for more details. @@ -8,6 +9,15 @@ Changes ======= +Version 3.0.0 (release 2024-12-06) + +- fix: tests, apply invenio-indexer change +- fix: docs reference target not found +- tests: apply changes for sqlalchemy>=2.0 +- setup: change to reusable workflows +- setup: bump major dependencies +- ci: fix docker compose call + Version v2.2.3 (released 2024-09-25) - percolator: allow lazy strings from config for deletions diff --git a/invenio_oaiserver/__init__.py b/invenio_oaiserver/__init__.py index 4d3865e..50a9532 100644 --- a/invenio_oaiserver/__init__.py +++ b/invenio_oaiserver/__init__.py @@ -2,6 +2,7 @@ # # This file is part of Invenio. # Copyright (C) 2015-2024 CERN. +# Copyright (C) 2024 Graz University of Technology. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. @@ -185,6 +186,6 @@ from .ext import InvenioOAIServer from .proxies import current_oaiserver -__version__ = "2.2.3" +__version__ = "3.0.0" __all__ = ("__version__", "InvenioOAIServer", "current_oaiserver")