diff --git a/.copier-answers.yml b/.copier-answers.yml index 87c64d5..8a90ddd 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: 5.2.0 +_commit: 5.5.0 _src_path: https://github.com/DiamondLightSource/python-copier-template.git author_email: lee.hudson@diamond.ac.uk author_name: Lee Hudson @@ -10,7 +10,6 @@ description: A collection of tools to facilitate EPICS commissioning of PLC base systems distribution_name: dls-plc-tools docker: true -docker_debug: false docs_type: README git_platform: github.com github_org: DiamondLightSource diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 5481628..a8ee54f 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects. -For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/5.2.0/how-to.html). +For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/5.5.0/how-to.html). diff --git a/.github/workflows/_container.yml b/.github/workflows/_container.yml index 1d02e99..0446d2e 100644 --- a/.github/workflows/_container.yml +++ b/.github/workflows/_container.yml @@ -11,25 +11,25 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v7 with: # Need this to get version number from last tag fetch-depth: 0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Log in to GitHub Docker Registry if: github.event_name != 'pull_request' - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and export to Docker local cache - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 env: DOCKER_BUILD_RECORD_UPLOAD: false with: @@ -43,7 +43,7 @@ jobs: - name: Create tags for publishing image id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: ghcr.io/${{ github.repository }} tags: | @@ -52,7 +52,7 @@ jobs: - name: Push cached image to container registry if: inputs.publish && github.ref_type == 'tag' - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 env: DOCKER_BUILD_RECORD_UPLOAD: false # This does not build the image again, it will find the image in the diff --git a/.github/workflows/_dist.yml b/.github/workflows/_dist.yml index 9fdb47f..71b50aa 100644 --- a/.github/workflows/_dist.yml +++ b/.github/workflows/_dist.yml @@ -7,13 +7,13 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v7 with: # Need this to get version number from last tag fetch-depth: 0 - name: Install uv - uses: astral-sh/setup-uv@v7 + uses: astral-sh/setup-uv@v10.3.2 - name: Build sdist and wheel run: > @@ -21,7 +21,7 @@ jobs: uvx --from build pyproject-build - name: Upload sdist and wheel as artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: dist path: dist diff --git a/.github/workflows/_pypi.yml b/.github/workflows/_pypi.yml index fa78b9e..22b772b 100644 --- a/.github/workflows/_pypi.yml +++ b/.github/workflows/_pypi.yml @@ -8,7 +8,7 @@ jobs: steps: - name: Download dist artifact - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v8 with: name: dist path: dist diff --git a/.github/workflows/_release.yml b/.github/workflows/_release.yml index 15171d4..59b9292 100644 --- a/.github/workflows/_release.yml +++ b/.github/workflows/_release.yml @@ -7,7 +7,7 @@ jobs: steps: - name: Download artifacts - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v8 with: merge-multiple: true @@ -23,7 +23,7 @@ jobs: - name: Create GitHub Release # We pin to the SHA, not the tag, for security reasons. # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions - uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1 + uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3 with: prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }} files: "*" diff --git a/.github/workflows/_test.yml b/.github/workflows/_test.yml index 46cd49d..b563e8b 100644 --- a/.github/workflows/_test.yml +++ b/.github/workflows/_test.yml @@ -21,19 +21,19 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v7 with: # Need this to get version number from last tag fetch-depth: 0 - name: Install uv - uses: astral-sh/setup-uv@v7 + uses: astral-sh/setup-uv@v10.3.2 - name: Run tests run: uv run --locked tox -e tests - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@v7 with: name: ${{ inputs.python-version }}/${{ inputs.runs-on }} files: cov.xml diff --git a/.github/workflows/_tox.yml b/.github/workflows/_tox.yml index 56eddd4..c259f52 100644 --- a/.github/workflows/_tox.yml +++ b/.github/workflows/_tox.yml @@ -13,10 +13,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v7 - name: Install uv - uses: astral-sh/setup-uv@v7 + uses: astral-sh/setup-uv@v10.3.2 - name: Run tox run: uv run --locked tox -e ${{ inputs.tox }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f3246a..4489b6f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,7 @@ on: tags: - '*' pull_request: + merge_group: jobs: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a43ed57..10d7415 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-added-large-files exclude: ^uv.lock @@ -32,6 +32,6 @@ repos: files: ^(uv\.lock|pyproject\.toml)$ - repo: https://github.com/gitleaks/gitleaks - rev: v8.28.0 + rev: v8.30.1 hooks: - id: gitleaks diff --git a/Dockerfile b/Dockerfile index 98730fe..34fa508 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,6 @@ ENV UV_PYTHON_INSTALL_DIR=/python RUN --mount=type=cache,target=/root/.cache/uv \ uv sync --locked --no-editable --no-dev --managed-python - # The runtime stage copies the built venv into a runtime container FROM ubuntu:resolute AS runtime diff --git a/pyproject.toml b/pyproject.toml index abdcbcb..785af01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,6 @@ requires-python = ">=3.11" [dependency-groups] dev = [ - "copier", "pre-commit", "pyright", "pytest", @@ -47,6 +46,10 @@ GitHub = "https://github.com/DiamondLightSource/dls-plc-tools" email = "lee.hudson@diamond.ac.uk" name = "Lee Hudson" +[tool.uv] +# Minimum uv to fix eMudhra CA cert incident (see discuss.python.org/t/109576) +required-version = ">=0.13.5" + [tool.setuptools_scm] version_file = "src/dls_plc_tools/_version.py" diff --git a/renovate.json b/renovate.json index 376b9a8..144ee22 100644 --- a/renovate.json +++ b/renovate.json @@ -35,6 +35,17 @@ "github-actions" ], "enabled": false + }, + { + "description": "Disable Dockerfile base images that are managed by python-copier-template", + "matchManagers": [ + "dockerfile" + ], + "matchDepNames": [ + "ubuntu", + "ghcr.io/diamondlightsource/ubuntu-devcontainer" + ], + "enabled": false } ] }