diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index 6a77fa7..f3b862a 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -20,7 +20,7 @@ jobs: contents: read steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - name: Get Package Version from pyproject.toml id: get_version run: | @@ -60,7 +60,7 @@ jobs: id-token: write steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - name: Prepare uv run: | pip install uv @@ -70,6 +70,9 @@ jobs: run: | . venv/bin/activate uv build + - name: Generate PEP 740 Attestations + if: steps.check_package.outputs.should_publish == 'true' + uses: astral-sh/attest-action@f589a42a7efb6fe400b4f400de60b4bc90390027 # v0.0.6 - name: Publish distribution 📦 to PyPI run: | . venv/bin/activate @@ -84,10 +87,10 @@ jobs: contents: write steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - name: Create release tag id: tag_release - uses: actions/github-script@v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 with: script: | const version = process.env.PACKAGE_VERSION; diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index bbfa56f..e8a7190 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - name: Run ShellCheck uses: ludeeus/action-shellcheck@master @@ -29,11 +29,11 @@ jobs: name: Ruff check and force steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: persist-credentials: false - name: Use python - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Prepare python @@ -65,9 +65,9 @@ jobs: - ruff steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - name: Use python - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Prepare python @@ -90,12 +90,12 @@ jobs: - commitcheck strategy: matrix: - python-version: ["3.13", "3.14"] + python-version: ["3.14"] steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - name: Use python ${{matrix.python-version}} - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 with: python-version: ${{matrix.python-version}} - name: Prepare python @@ -109,7 +109,7 @@ jobs: . venv/bin/activate pytest --log-level info tests/ --cov='airos/' - name: Upload coverage artifact - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a with: name: coverage-${{ matrix.python-version }} path: .coverage @@ -124,11 +124,11 @@ jobs: - pytest steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: persist-credentials: false - name: Use python - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Prepare python @@ -152,9 +152,9 @@ jobs: - mypy steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - name: Use python - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Prepare python @@ -164,7 +164,7 @@ jobs: . venv/bin/activate uv pip install -r requirements.txt -r requirements-test.txt - name: Download all coverage artifacts - uses: actions/download-artifact@v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c with: pattern: coverage-* merge-multiple: true @@ -176,7 +176,7 @@ jobs: coverage report --fail-under=80 coverage xml - name: Upload coverage to Codecov - uses: codecov/codecov-action@v6 + uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} slug: CoMPaTech/python-airos @@ -186,15 +186,16 @@ jobs: runs-on: ubuntu-latest environment: testpypi permissions: + contents: read id-token: write needs: - coverage # - mypy steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - name: Use python - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Prepare python @@ -223,6 +224,9 @@ jobs: run: | . venv/bin/activate uv build + - name: Generate PEP 740 Attestations + if: steps.check_package.outputs.should_publish == 'true' + uses: astral-sh/attest-action@f589a42a7efb6fe400b4f400de60b4bc90390027 # v0.0.6 - name: Publish distribution 📦 to TestPyPI if: steps.check_package.outputs.should_publish == 'true' run: | @@ -237,9 +241,9 @@ jobs: - coverage steps: - name: Check out committed code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 - name: Use python - uses: actions/setup-python@v6 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Prepare python diff --git a/CHANGELOG.md b/CHANGELOG.md index 44ec832..0eea2e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. +## [0.6.10] - 2026-07-05 + +### Added + +- PEP 740 digital attestations (astral workaround until uv publish handles this) + ## [0.6.9] - 2026-06-23 ### Added diff --git a/airos/helpers.py b/airos/helpers.py index cb13604..0ca8f09 100644 --- a/airos/helpers.py +++ b/airos/helpers.py @@ -48,7 +48,7 @@ async def async_get_firmware_data( ): _LOGGER.exception("Error connecting to device at %s", host) raise - except (AirOSConnectionAuthenticationError, AirOSDataMissingError): + except AirOSConnectionAuthenticationError, AirOSDataMissingError: _LOGGER.exception("Authentication error connecting to device at %s", host) raise except AirOSKeyDataMissingError: diff --git a/mypy.ini b/mypy.ini index 67755f1..bfae963 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,5 +1,5 @@ [mypy] -python_version = 3.13 +python_version = 3.14 platform = linux plugins = pydantic.mypy, pydantic.v1.mypy show_error_codes = true @@ -41,4 +41,4 @@ disallow_untyped_calls = false disallow_untyped_decorators = false disallow_untyped_defs = false warn_return_any = false -warn_unreachable = false \ No newline at end of file +warn_unreachable = false diff --git a/pyproject.toml b/pyproject.toml index 42cdaa1..6d83b87 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "airos" -version = "0.6.9" +version = "0.6.10" license = "MIT" description = "Ubiquiti airOS module(s) for Python 3." readme = "README.md" @@ -14,13 +14,12 @@ classifiers = [ "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3.14", - "Programming Language :: Python :: 3.13", "Topic :: Home Automation", ] maintainers = [ { name = "CoMPaTech" } ] -requires-python = ">=3.13" +requires-python = ">=3.14" dependencies = [ "aiohttp>=3.8.0", "mashumaro>=3.14.0",