Merge pull request #99 from negz/hatchery

Update to hatch v0.12, which includes new `hatch test` and `hatch fmt` commands
This commit is contained in:
Nic Cope 2024-10-09 20:00:23 -07:00 committed by GitHub
commit 5ceb76308d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 17 additions and 29 deletions

View File

@ -27,7 +27,8 @@ concurrency:
env: env:
# Common versions # 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. # The PyPi project version to push. The default is v0.0.0+gitdate-gitsha.
PYPI_VERSION: ${{ inputs.version }} PYPI_VERSION: ${{ inputs.version }}
@ -45,10 +46,10 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Hatch - name: Setup Hatch
run: pipx install hatch==1.7.0 run: pipx install hatch==${{ env.HATCH_VERSION }}
- name: Lint - name: Lint
run: hatch run lint:check run: hatch fmt
unit-test: unit-test:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
@ -62,10 +63,10 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Hatch - name: Setup Hatch
run: pipx install hatch==1.7.0 run: pipx install hatch==${{ env.HATCH_VERSION }}
- name: Run Unit Tests - name: Run Unit Tests
run: hatch run test:unit run: hatch test --all --randomize
build: build:
@ -80,7 +81,7 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Hatch - 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 # If a version wasn't explicitly passed as a workflow_dispatch input we
# default to version v0.0.0+<git-commit-date>-<git-short-sha>, for example # default to version v0.0.0+<git-commit-date>-<git-short-sha>, for example
@ -143,7 +144,7 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }} python-version: ${{ env.PYTHON_VERSION }}
- name: Setup Hatch - name: Setup Hatch
run: pipx install hatch==1.7.0 run: pipx install hatch==${{ env.HATCH_VERSION }}
- name: Build Documentation - name: Build Documentation
run: hatch run docs:pdoc -d google crossplane/function -o docs run: hatch run docs:pdoc -d google crossplane/function -o docs

View File

@ -34,11 +34,11 @@ Some useful commands:
# Generate gRPC stubs. # Generate gRPC stubs.
hatch run generate:protoc hatch run generate:protoc
# Lint the code. # Format and lint the code.
hatch run lint:check hatch fmt
# Run unit tests. # Run unit tests.
hatch run test:unit hatch test
# Build an sdist and wheel. # Build an sdist and wheel.
hatch build hatch build

View File

@ -49,23 +49,6 @@ dependencies = ["grpcio-tools==1.66.2"]
[tool.hatch.envs.generate.scripts] [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" 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] [tool.hatch.envs.docs]
type = "virtual" type = "virtual"
path = ".venv-docs" path = ".venv-docs"
@ -77,6 +60,11 @@ generate = "pdoc -m google crossplane/function -o docs"
[tool.hatch.build.targets.wheel] [tool.hatch.build.targets.wheel]
packages = ["crossplane"] 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] [tool.ruff]
target-version = "py311" target-version = "py311"
exclude = ["crossplane/function/proto/*", "tests/testdata/*"] exclude = ["crossplane/function/proto/*", "tests/testdata/*"]

View File

@ -22,8 +22,7 @@ from google.protobuf import struct_pb2 as structpb
import crossplane.function.proto.v1.run_function_pb2 as fnv1 import crossplane.function.proto.v1.run_function_pb2 as fnv1
from crossplane.function import logging, resource from crossplane.function import logging, resource
from tests.testdata.models.io.upbound.aws.s3 import v1beta2
from .testdata.models.io.upbound.aws.s3 import v1beta2
class TestResource(unittest.TestCase): class TestResource(unittest.TestCase):