diff --git a/.github/workflows/CI-wheels.yaml b/.github/workflows/CI-wheels.yaml index 469fe0a..8d01c88 100644 --- a/.github/workflows/CI-wheels.yaml +++ b/.github/workflows/CI-wheels.yaml @@ -7,7 +7,7 @@ on: - main env: - LIBZIM_DL_VERSION: "9.4.0-1" + LIBZIM_DL_VERSION: "9.5.1" MACOSX_DEPLOYMENT_TARGET: "13.0" CIBW_ENVIRONMENT_PASS_LINUX: "LIBZIM_DL_VERSION" CIBW_BUILD_VERBOSITY: "3" @@ -22,18 +22,18 @@ jobs: os: [macos-14, windows-2022, ubuntu-24.04] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up QEMU if: runner.os == 'Linux' - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@v4 with: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v3.2 + uses: pypa/cibuildwheel@v3.4 - - uses: actions/upload-artifact@v5 + - uses: actions/upload-artifact@v7 with: name: wheels-${{ matrix.os }} path: ./wheelhouse/*.whl @@ -42,12 +42,12 @@ jobs: name: Build source distribution runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Build sdist run: pipx run build --sdist - - uses: actions/upload-artifact@v5 + - uses: actions/upload-artifact@v7 with: name: sdist path: dist/*.tar.gz diff --git a/.github/workflows/Publish.yaml b/.github/workflows/Publish.yaml index 6fe4eb0..268843d 100644 --- a/.github/workflows/Publish.yaml +++ b/.github/workflows/Publish.yaml @@ -6,7 +6,7 @@ on: - published env: - LIBZIM_DL_VERSION: "9.4.0-1" + LIBZIM_DL_VERSION: "9.5.1" MACOSX_DEPLOYMENT_TARGET: "13.0" CIBW_ENVIRONMENT_PASS_LINUX: "LIBZIM_DL_VERSION" # APPLE_SIGNING_KEYCHAIN_PATH set in prepare keychain step @@ -25,11 +25,11 @@ jobs: os: [ubuntu-24.04, macos-14, windows-2022] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up QEMU if: runner.os == 'Linux' - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@v4 with: platforms: all @@ -68,7 +68,7 @@ jobs: security unlock-keychain -p mysecretpassword ${APPLE_SIGNING_KEYCHAIN_PATH} - name: Build wheels - uses: pypa/cibuildwheel@v3.2 + uses: pypa/cibuildwheel@v3.4 - name: Cleanup Apple Keychain if: matrix.os == 'macos-14' @@ -78,7 +78,7 @@ jobs: security delete-keychain ${APPLE_SIGNING_KEYCHAIN_PATH} rm -f ${APPLE_SIGNING_KEYCHAIN_PATH} - - uses: actions/upload-artifact@v5 + - uses: actions/upload-artifact@v7 with: name: wheels-${{ matrix.os }} path: ./wheelhouse/*.whl @@ -87,12 +87,12 @@ jobs: name: Build source distribution runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Build sdist run: pipx run build --sdist - - uses: actions/upload-artifact@v5 + - uses: actions/upload-artifact@v7 with: name: sdist path: dist/*.tar.gz @@ -103,19 +103,19 @@ jobs: environment: release steps: # retrieve all artifacts - - uses: actions/download-artifact@v6 + - uses: actions/download-artifact@v8 with: name: sdist path: dist - - uses: actions/download-artifact@v6 + - uses: actions/download-artifact@v8 with: name: wheels-ubuntu-24.04 path: dist - - uses: actions/download-artifact@v6 + - uses: actions/download-artifact@v8 with: name: wheels-macos-14 path: dist - - uses: actions/download-artifact@v6 + - uses: actions/download-artifact@v8 with: name: wheels-windows-2022 path: dist diff --git a/.github/workflows/QA.yaml b/.github/workflows/QA.yaml index 6381b96..dfdd382 100644 --- a/.github/workflows/QA.yaml +++ b/.github/workflows/QA.yaml @@ -2,14 +2,14 @@ name: QA on: [push] env: - LIBZIM_DL_VERSION: "9.4.0-1" + LIBZIM_DL_VERSION: "9.5.1" MACOSX_DEPLOYMENT_TARGET: "13.0" jobs: lint: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 diff --git a/.github/workflows/Tests.yaml b/.github/workflows/Tests.yaml index 9e1750d..e6d5bf4 100644 --- a/.github/workflows/Tests.yaml +++ b/.github/workflows/Tests.yaml @@ -2,7 +2,7 @@ name: Tests on: [push] env: - LIBZIM_DL_VERSION: "9.4.0-1" + LIBZIM_DL_VERSION: "9.5.1" MACOSX_DEPLOYMENT_TARGET: "13.0" # we want cython traces for coverage PROFILE: "1" @@ -16,7 +16,7 @@ jobs: python: ["3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python }} uses: actions/setup-python@v6 diff --git a/CHANGELOG.md b/CHANGELOG.md index ae3f0c2..2b524f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -* fixed broken links in docs - ### Added -- Added Changelog to docs. + +- Added Changelog to docs (#227) + +### Changed + +- Upgrade to libzim 9.5.1 and upgrade other Python dependencies, especially Cython 3.2.4 (#250) + +### Fixed + +- Fixed broken links in docs (#246) ## [3.8.0] - 2025-11-14 diff --git a/docs/scripts/generate_api_nav.py b/docs/scripts/generate_api_nav.py index 54d1af8..affe336 100644 --- a/docs/scripts/generate_api_nav.py +++ b/docs/scripts/generate_api_nav.py @@ -47,16 +47,14 @@ # Create a document with mkdocstrings placeholders. with mkdocs_gen_files.open(full_doc_path, "w") as fd: - fd.write( - f"""--- + fd.write(f"""--- title: {identifier} --- ::: {identifier} {module_options} -""" - ) +""") # Make the edit button on the page link to the source file. mkdocs_gen_files.set_edit_path(full_doc_path, Path("..") / path.relative_to(root)) diff --git a/pyproject.toml b/pyproject.toml index 126da8d..9cb995d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,8 @@ [build-system] requires = [ - "setuptools == 80.9.0", - "wheel == 0.45.1", - "cython == 3.1.6", + "setuptools == 82.0.1", + "wheel == 0.46.3", + "cython == 3.2.4", # https://github.com/pypa/cibuildwheel/blob/v2.22/cibuildwheel/resources/constraints.txt "delocate == 0.13.0 ; platform_system=='Windows'", ] @@ -46,46 +46,46 @@ Donate = "https://www.kiwix.org/en/support-us/" [project.optional-dependencies] scripts = [ - "invoke==2.2.0", + "invoke==2.2.1", ] lint = [ - "black==25.9.0", - "ruff==0.14.3", + "black==26.3.1", + "ruff==0.15.7", "libzim", "libzim[build]", ] check = [ - "pyright==1.1.407", + "pyright==1.1.408", "libzim", "libzim[build]", "libzim[test]", "types-setuptools", ] test = [ - "pytest==8.4.2", - "coverage==7.11.0", + "pytest==9.0.2", + "coverage==7.13.5", # for cython coverage plugin "libzim[build]", ] build = [ - "setuptools == 80.9.0", - "wheel == 0.45.1", - "cython == 3.1.6", + "setuptools == 82.0.1", + "wheel == 0.46.3", + "cython == 3.2.4", "delocate == 0.13.0 ; platform_system=='Windows'", ] docs = [ "mkdocs==1.6.1", - "mkdocstrings-python==1.18.2", - "mkdocs-material==9.6.23", - "pymdown-extensions==10.16.1", - "mkdocs-gen-files==0.5.0", - "mkdocs-literate-nav==0.6.2", - "mkdocs-include-markdown-plugin==7.2.0", - "griffe==1.14.0", + "mkdocstrings-python==2.0.3", + "mkdocs-material==9.7.6", + "pymdown-extensions==10.21", + "mkdocs-gen-files==0.6.1", + "mkdocs-literate-nav==0.6.3", + "mkdocs-include-markdown-plugin==7.2.1", + "griffe==2.0.0", ] dev = [ - "pre-commit==4.3.0", - "ipython==9.6.0", + "pre-commit==4.5.1", + "ipython==9.11.0", "types-setuptools", "libzim[scripts]", "libzim[lint]", diff --git a/setup.py b/setup.py index 0f7426b..4c7c93d 100755 --- a/setup.py +++ b/setup.py @@ -31,7 +31,7 @@ class Config: - libzim_dl_version: str = os.getenv("LIBZIM_DL_VERSION", "9.4.0-1") + libzim_dl_version: str = os.getenv("LIBZIM_DL_VERSION", "9.5.1") use_system_libzim: bool = bool(os.getenv("USE_SYSTEM_LIBZIM") or False) download_libzim: bool = not bool(os.getenv("DONT_DOWNLOAD_LIBZIM") or False) diff --git a/tests/test_libzim_creator.py b/tests/test_libzim_creator.py index ef00932..5d63004 100644 --- a/tests/test_libzim_creator.py +++ b/tests/test_libzim_creator.py @@ -157,11 +157,7 @@ def get_creator_output(fpath, verbose): from libzim.writer import Creator with Creator(r"{fpath}").config_verbose({verbose}) as creator: pass -""".replace( - "{fpath}", str(fpath) - ).replace( - "{verbose}", str(verbose) - ) +""".replace("{fpath}", str(fpath)).replace("{verbose}", str(verbose)) # Build command with appropriate GIL settings for free-threaded Python cmd = [sys.executable] diff --git a/tests/test_libzim_reader.py b/tests/test_libzim_reader.py index e8e0bd3..82cc95b 100644 --- a/tests/test_libzim_reader.py +++ b/tests/test_libzim_reader.py @@ -627,7 +627,7 @@ def test_reader_get_random_entry(all_zims): @pytest.mark.parametrize(*parametrize_for(["filename"])) def test_cluster_cache(all_zims, filename): zim = Archive(all_zims / filename) - default_value = 536870912 # 512M + default_value = 16777216 # 16M new_value = 1024 assert get_cluster_cache_max_size() == default_value