Skip to content

Quality tooling

dpone quality tooling protects code, documentation, packaging, and runtime contracts.

Core commands

uv run ruff check .
uv run ruff format --check .
uv run mypy --config-file mypy.ini
uv run pytest -m "not integration_live"

Documentation checks

uv run pytest tests/test_docs_language_contracts.py -q
uv run mkdocs build --strict

Public MkDocs pages must be English-only and should use consistent link labels.

Import checks

uv run python tools/check_import_rules.py
uv run pytest tests/test_lazy_imports.py -q

Use these checks whenever adding optional dependencies or new connectors.

Generated metrics

uv run dpone docs update-dev-metrics --check
uv run dpone docs check-generated-references
uv run dpone docs check-compatibility
uv run dpone docs check-import-rules
uv run dpone docs check-layer-metrics
uv run dpone docs check-architecture-fitness
uv run dpone docs check-module-size
uv run dpone docs check-module-size --package packages/dpone-airflow-pack/src/dpone_airflow_pack --no-baseline
uv run dpone docs check-module-size --package packages/apache-airflow-providers-dpone/src/airflow/providers/dpone --no-baseline
uv run dpone docs check-airflow-public-contracts
uv run dpone docs update-airflow-public-contract-reference --check

Run without --check when intentionally refreshing generated sections. When adding new Python files, stage or commit those files before running dpone docs update-dev-metrics; the generator intentionally uses git ls-files so local scratch files and generated artifacts do not affect CI metrics.

check-module-size reports LOC and SLOC per Python module. Existing debt must be explicit in docs/module_size_baseline.json; new modules above the hard threshold fail CI. The current default warning threshold is 450 LOC and the hard failure threshold is 600 LOC.

Use --package <python-dir> for focused guards outside src/dpone, such as repository-local tooling and dedicated test scopes. Agent-control changes must keep both tools/agent_policy and tests/agent_policy below their stricter CI budget. The Airflow provider is a separate distribution, so CI checks its package explicitly; adding it only to the root src/dpone baseline would leave provider debt invisible.

Package checks

uv build
twine check dist/*

For release candidates, also run fresh virtual-environment smoke installs for base, selected extras, and dpone[full].