diff --git a/AGENTS.md b/AGENTS.md index fa1c473..f5722b8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,11 +8,14 @@ Teslemetry, Tessie and vehicle BLE. Published to PyPI as `tesla-fleet-api`. ```bash uv sync # install uv run pyright tesla_fleet_api # type check (strict) -uv run ruff check tesla_fleet_api # lint -uv run ruff format tesla_fleet_api +uv run ruff check tesla_fleet_api tests # lint (as CI runs it) uv run pytest tests ``` +CI does not check formatting and the tree is not `ruff format`-clean. Run +`ruff format` only on the files you change; on a whole directory it rewrites +unrelated files. + Tests use `unittest.IsolatedAsyncioTestCase` collected by pytest (no `pytest-asyncio`), except `tests/powerwall/`, whose plain `async def` tests run through its `conftest.py`. BLE command tests build on `MockedBleTransportTestCase` @@ -28,25 +31,27 @@ through its `conftest.py`. BLE command tests build on `MockedBleTransportTestCas ## Release -No release automation. Bump `version` in `pyproject.toml` and `__version__` in -`tesla_fleet_api/__init__.py`, run `uv lock` (CI uses `uv sync --locked`), commit -on `main`, push a `vX.Y.Z` tag. `release.yml` publishes to PyPI via OIDC trusted -publishing in the `pypi` environment, which has **no required reviewers**: -merging the version-bump PR is the publish approval. Keep `release.yml` a plain -top-level workflow, never `workflow_call` — the trusted publisher is bound to -`release.yml` + `pypi`. +No release automation; the `release` skill has the steps. Bump `version` in +`pyproject.toml` and `__version__` in `tesla_fleet_api/__init__.py`, run `uv lock` +(CI uses `uv sync --locked`), and merge a `Bump version to X.Y.Z` PR that changes +only those three files. Then push a `vX.Y.Z` tag on the merge commit. +`release.yml` publishes to PyPI via OIDC trusted publishing in the `pypi` +environment, which has **no required reviewers**: merging the version-bump PR is +the publish approval. Keep `release.yml` a plain top-level workflow, never +`workflow_call` — the trusted publisher is bound to `release.yml` + `pypi`. ## Dependencies - Protobuf bindings come from the `tesla-protocol` PyPI package (`tesla_protocol.command._pb2`); `tesla/vehicle/proto/` holds only - re-export shims. There is no local regeneration step: bump the floor instead. + re-export shims. There is no local regeneration step: bump the pin instead, + floor and major cap together (`>=X.Y.Z,