diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 605c696..1abec92 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -41,6 +41,9 @@ jobs: runs-on: ${{ matrix.os }} steps: + - name: Setup Git + uses: frequenz-floss/gh-action-setup-git@v0.x.x + - name: Print environment (debug) run: env @@ -88,10 +91,14 @@ jobs: # The job name should match the name of the `nox` job. name: Test with nox needs: ["nox"] + # We skip this job only if nox was also skipped + if: always() && needs.nox.result != 'skipped' runs-on: ubuntu-20.04 + env: + DEPS_RESULT: ${{ needs.nox.result }} steps: - - name: Return true - run: "true" + - name: Check matrix job result + run: test "$DEPS_RESULT" = "success" nox-cross-arch: name: Cross-arch tests with nox @@ -115,6 +122,9 @@ jobs: runs-on: ${{ matrix.os }} steps: + - name: Setup Git + uses: frequenz-floss/gh-action-setup-git@v0.x.x + - name: Fetch sources uses: actions/checkout@v4 @@ -200,15 +210,22 @@ jobs: # The job name should match the name of the `nox-cross-arch` job. name: Cross-arch tests with nox needs: ["nox-cross-arch"] + # We skip this job only if nox-cross-arch was also skipped + if: always() && needs.nox-cross-arch.result != 'skipped' runs-on: ubuntu-20.04 + env: + DEPS_RESULT: ${{ needs.nox-cross-arch.result }} steps: - - name: Return true - run: "true" + - name: Check matrix job result + run: test "$DEPS_RESULT" = "success" build: name: Build distribution packages runs-on: ubuntu-20.04 steps: + - name: Setup Git + uses: frequenz-floss/gh-action-setup-git@v0.x.x + - name: Fetch sources uses: actions/checkout@v4 with: @@ -241,17 +258,24 @@ jobs: needs: ["build"] runs-on: ubuntu-20.04 steps: + - name: Setup Git + uses: frequenz-floss/gh-action-setup-git@v0.x.x + - name: Fetch sources uses: actions/checkout@v4 + - name: Download package uses: actions/download-artifact@v4 with: name: dist-packages path: dist + - name: Set up QEMU uses: docker/setup-qemu-action@v3 + - name: Set up docker-buildx uses: docker/setup-buildx-action@v3 + - name: Test Installation uses: docker/build-push-action@v6 with: diff --git a/mkdocs.yml b/mkdocs.yml index 9e2b26a..75b6ffe 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -97,7 +97,7 @@ plugins: - literate-nav: nav_file: SUMMARY.md - mike: - alias_type: redirect + alias_type: symlink canonical_version: latest - mkdocstrings: default_handler: python diff --git a/pyproject.toml b/pyproject.toml index e2e7ab4..70db839 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ requires = [ "setuptools == 68.1.0", "setuptools_scm[toml] == 7.1.0", - "frequenz-repo-config[lib] == 0.9.2", + "frequenz-repo-config[lib] == 0.10.0", ] build-backend = "setuptools.build_meta" @@ -48,43 +48,43 @@ email = "floss@frequenz.com" [project.optional-dependencies] dev-flake8 = [ - "flake8 == 7.1.0", + "flake8 == 7.1.1", "flake8-docstrings == 1.7.0", "flake8-pyproject == 1.2.3", # For reading the flake8 config from pyproject.toml - "pydoclint == 0.5.3", + "pydoclint == 0.5.9", "pydocstyle == 6.3.0", ] -dev-formatting = ["black == 24.4.2", "isort == 5.13.2"] +dev-formatting = ["black == 24.8.0", "isort == 5.13.2"] dev-mkdocs = [ - "black == 24.4.2", - "Markdown==3.6", - "mike == 2.1.2", + "black == 24.8.0", + "Markdown==3.7", + "mike == 2.1.3", "mkdocs-gen-files == 0.5.0", "mkdocs-literate-nav == 0.6.1", - "mkdocs-macros-plugin == 1.0.5", - "mkdocs-material == 9.5.27", - "mkdocstrings[python] == 0.25.1", - "mkdocstrings-python == 1.10.5", - "frequenz-repo-config[lib] == 0.9.2", + "mkdocs-macros-plugin == 1.2.0", + "mkdocs-material == 9.5.39", + "mkdocstrings[python] == 0.26.1", + "mkdocstrings-python == 1.11.1", + "frequenz-repo-config[lib] == 0.10.0", ] dev-mypy = [ - "mypy == 1.10.1", - "types-Markdown == 3.6.0.20240316", + "mypy == 1.11.2", + "types-Markdown == 3.7.0.20240822", # For checking the noxfile, docs/ script, and tests "pymdownx-superfence-filter-lines[dev-mkdocs,dev-noxfile,dev-pytest]", ] -dev-noxfile = ["nox == 2024.4.15", "frequenz-repo-config[lib] == 0.9.2"] +dev-noxfile = ["nox == 2024.4.15", "frequenz-repo-config[lib] == 0.10.0"] dev-pylint = [ - "pylint == 3.2.5", + "pylint == 3.3.1", # For checking the noxfile, docs/ script, and tests "pymdownx-superfence-filter-lines[dev-mkdocs,dev-noxfile,dev-pytest]", ] dev-pytest = [ - "pytest == 8.2.2", - "frequenz-repo-config[extra-lint-examples] == 0.9.2", + "pytest == 8.3.3", + "frequenz-repo-config[extra-lint-examples] == 0.10.0", "pytest-mock == 3.14.0", - "pytest-asyncio == 0.23.7", - "async-solipsism == 0.6", + "pytest-asyncio == 0.24.0", + "async-solipsism == 0.7", ] dev = [ "pymdownx-superfence-filter-lines[dev-mkdocs,dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]", @@ -139,10 +139,14 @@ disable = [ # pylint's unsubscriptable check is buggy and is not needed because # it is a type-check, for which we already have mypy. "unsubscriptable-object", + # Checked by mypy + "no-member", # Checked by flake8 + "f-string-without-interpolation", "redefined-outer-name", "unused-import", "line-too-long", + "missing-function-docstring", "unused-variable", "unnecessary-lambda-assignment", ]