For the full contributor guide (code generation lineage, build commands, release process, and debugging generation drift), see CONTRIBUTING.md.
Most code under src/airbyte_api/ is generated by Speakeasy. Do not hand-edit generated files. To make durable changes, work at the correct layer (overlay, post-generation script, or upstream spec). See CONTRIBUTING.md — Code Generation Lineage.
When a drift CI check fails, download the generated artifacts and compare. See CONTRIBUTING.md — Debugging Generation Drift Failures.
Do not guess or iterate blindly. Download the artifact first.
overlays/python_speakeasy.yaml— Speakeasy overlayscripts/post_generate.uv— Post-generation patch script (standalone uv script)poe_tasks.toml— Build task definitions.github/workflows/— CI workflows.github/dependabot.yml— Dependabot configuration.github/speakeasy/dummy-compose.yml— Speakeasy CLI version pin.speakeasy/workflow.yaml— Speakeasy workflow configurationgen.yaml— Speakeasy generator configurationpyproject.toml— Human-managed (excluded from Speakeasy via.genignore)CONTRIBUTING.md,AGENTS.md,README.md— Documentation
src/airbyte_api/— Generated by Speakeasypy.typed— Generated by Speakeasy
uv run poe generate-full # Full pipeline (generate + readme + patches)
uv run poe build # Build the Python package
uv run poe lint # Lint checks
uv run poe fix # Auto-fix lint/format
uv run poe test # Run tests
uv run poe typecheck # Type checkingUse the /generate slash command on a PR, or trigger manually from Actions > Generate SDK.
Do not attempt to run speakeasy run locally — the SPEAKEASY_API_KEY is only available in CI.