diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 177f5e8..cc5e70d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,8 @@ concurrency: env: # Common versions - PYTHON_VERSION: '3.11.5' + PYTHON_VERSION: '3.11' + HATCH_VERSION: '1.12.0' # The PyPi project version to push. The default is v0.0.0+gitdate-gitsha. PYPI_VERSION: ${{ inputs.version }} @@ -45,10 +46,10 @@ jobs: python-version: ${{ env.PYTHON_VERSION }} - name: Setup Hatch - run: pipx install hatch==1.7.0 + run: pipx install hatch==${{ env.HATCH_VERSION }} - name: Lint - run: hatch run lint:check + run: hatch fmt unit-test: runs-on: ubuntu-22.04 @@ -62,10 +63,10 @@ jobs: python-version: ${{ env.PYTHON_VERSION }} - name: Setup Hatch - run: pipx install hatch==1.7.0 + run: pipx install hatch==${{ env.HATCH_VERSION }} - name: Run Unit Tests - run: hatch run test:unit + run: hatch test --all --randomize build: @@ -80,7 +81,7 @@ jobs: python-version: ${{ env.PYTHON_VERSION }} - name: Setup Hatch - run: pipx install hatch==1.7.0 + run: pipx install hatch==${{ env.HATCH_VERSION }} # If a version wasn't explicitly passed as a workflow_dispatch input we # default to version v0.0.0+-, for example @@ -143,7 +144,7 @@ jobs: python-version: ${{ env.PYTHON_VERSION }} - name: Setup Hatch - run: pipx install hatch==1.7.0 + run: pipx install hatch==${{ env.HATCH_VERSION }} - name: Build Documentation run: hatch run docs:pdoc -d google crossplane/function -o docs diff --git a/README.md b/README.md index ad1f88e..87e6e24 100644 --- a/README.md +++ b/README.md @@ -34,11 +34,11 @@ Some useful commands: # Generate gRPC stubs. hatch run generate:protoc -# Lint the code. -hatch run lint:check +# Format and lint the code. +hatch fmt # Run unit tests. -hatch run test:unit +hatch test # Build an sdist and wheel. hatch build diff --git a/pyproject.toml b/pyproject.toml index 08a6eb3..40c2cb9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,23 +49,6 @@ dependencies = ["grpcio-tools==1.66.2"] [tool.hatch.envs.generate.scripts] protoc = "python -m grpc_tools.protoc --proto_path=. --python_out=. --pyi_out=. --grpc_python_out=. crossplane/function/proto/v1beta1/run_function.proto crossplane/function/proto/v1/run_function.proto" -[tool.hatch.envs.lint] -type = "virtual" -detached = true -path = ".venv-lint" -dependencies = ["ruff==0.6.9"] - -[tool.hatch.envs.lint.scripts] -check = "ruff format crossplane tests && ruff check --fix crossplane tests" - - -[tool.hatch.envs.test] -type = "virtual" -path = ".venv-test" - -[tool.hatch.envs.test.scripts] -unit = "python -m unittest tests/*.py" - [tool.hatch.envs.docs] type = "virtual" path = ".venv-docs" @@ -77,6 +60,11 @@ generate = "pdoc -m google crossplane/function -o docs" [tool.hatch.build.targets.wheel] packages = ["crossplane"] +# This special environment is used by hatch fmt. +[tool.hatch.envs.hatch-static-analysis] +dependencies = ["ruff==0.6.9"] +config-path = "none" # Disable Hatch's default Ruff config. + [tool.ruff] target-version = "py311" exclude = ["crossplane/function/proto/*", "tests/testdata/*"] diff --git a/tests/test_resource.py b/tests/test_resource.py index 47fb18b..e9c818f 100644 --- a/tests/test_resource.py +++ b/tests/test_resource.py @@ -22,8 +22,7 @@ import crossplane.function.proto.v1.run_function_pb2 as fnv1 from crossplane.function import logging, resource - -from .testdata.models.io.upbound.aws.s3 import v1beta2 +from tests.testdata.models.io.upbound.aws.s3 import v1beta2 class TestResource(unittest.TestCase):