diff --git a/.copier-answers.yml b/.copier-answers.yml index 09431b180..d40f26eeb 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: 5.0.2 +_commit: 5.5.0 _src_path: https://github.com/DiamondLightSource/python-copier-template author_email: gary.yendell@diamond.ac.uk author_name: Gary Yendell diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index c19b4cf6c..ad50674cf 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.0.2/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/_dist.yml b/.github/workflows/_dist.yml index 7b3ffcbd7..4568ca544 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/_docs.yml b/.github/workflows/_docs.yml index 272a30f2c..acc52652b 100644 --- a/.github/workflows/_docs.yml +++ b/.github/workflows/_docs.yml @@ -12,7 +12,7 @@ jobs: run: sleep 60 - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v7 with: # Need this to get version number from last tag fetch-depth: 0 @@ -21,7 +21,7 @@ jobs: run: sudo apt-get install graphviz - name: Install uv - uses: astral-sh/setup-uv@v7 + uses: astral-sh/setup-uv@v10.3.2 - name: Build docs run: uv run --locked tox -e docs @@ -30,7 +30,7 @@ jobs: run: rm build/html/.doctrees/environment.pickle - name: Upload built docs artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: docs path: build @@ -48,7 +48,7 @@ jobs: if: github.ref_type == 'tag' || github.ref_name == 'main' # 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: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 + uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: .github/pages diff --git a/.github/workflows/_pypi.yml b/.github/workflows/_pypi.yml index fa78b9eae..22b772ba1 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 15171d447..59b929293 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 46cd49df6..b563e8b0f 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 56eddd4e4..c259f52ab 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 68174e760..07598e47d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,7 @@ on: tags: - '*' pull_request: + merge_group: jobs: @@ -19,7 +20,7 @@ jobs: strategy: matrix: runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.11", "3.12", "3.13", "3.14"] fail-fast: false uses: ./.github/workflows/_test.yml with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6e182dfb4..e7f246c76 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 @@ -33,6 +33,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 e8462413c..7b1d73450 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # The devcontainer should use the developer target and run as root with podman # or docker with user namespaces. -FROM ghcr.io/diamondlightsource/ubuntu-devcontainer:noble AS developer +FROM ghcr.io/diamondlightsource/ubuntu-devcontainer:resolute AS developer # Add any system dependencies for the developer/build environment here RUN apt-get update -y && apt-get install -y --no-install-recommends \ diff --git a/README.md b/README.md index 1aeda609b..360f9bc71 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,9 @@ # FastCS -Source | +What | Where :---: | :---: +Source | PyPI | `pip install fastcs` Documentation | Releases | diff --git a/pyproject.toml b/pyproject.toml index da948b3e6..4de89355e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,6 +14,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] description = "Control system agnostic framework for building Device support in Python that will work for both EPICS and Tango" dependencies = [ @@ -44,9 +45,12 @@ all = ["fastcs[epics]", "fastcs[tango]", "fastcs[graphql]", "fastcs[rest]"] [dependency-groups] dev = [ +<<<<<<< before updating "copier", "fastcs[all]", "fastcs[demo]", +======= +>>>>>>> after updating "myst-parser", "pre-commit", "pydata-sphinx-theme>=0.12", @@ -78,6 +82,17 @@ fastcs-demo = "fastcs.demo.__main__:main" [project.urls] GitHub = "https://github.com/DiamondLightSource/fastcs" +<<<<<<< before updating +======= +[[project.authors]] # Further authors may be added by duplicating this section +email = "gary.yendell@diamond.ac.uk" +name = "Gary Yendell" + +[tool.uv] +# Minimum uv to fix eMudhra CA cert incident (see discuss.python.org/t/109576) +required-version = ">=0.13.5" + +>>>>>>> after updating [tool.setuptools_scm] version_file = "src/fastcs/_version.py" diff --git a/renovate.json b/renovate.json index b78a2f870..8fc35a48d 100644 --- a/renovate.json +++ b/renovate.json @@ -32,6 +32,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 } ] }