• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

astronomer / astro-cli / 7fbd087c-0308-4fa9-af77-861aba9664f4
36%
main: 39%

Build:
Build:
LAST BUILD BRANCH: af2_standalone
DEFAULT BRANCH: main
Ran 26 Mar 2026 02:40AM UTC
Jobs 1
Files 199
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

26 Mar 2026 02:33AM UTC coverage: 36.24% (+0.2%) from 36.08%
7fbd087c-0308-4fa9-af77-861aba9664f4

Pull #2055

circleci

kaxil
Add pyproject.toml as project definition format

Replace the Dockerfile-centric project definition with pyproject.toml
(PEP 621) for Airflow 3 projects. This aligns with the Python ecosystem,
enables the uv-based standalone runtime, and lays the groundwork for
multi-target compilation.

Parser and detection (airflow/project.go):
- ReadProject(), IsPyProject(), DetectProjectFormat(), PinRuntimeVersion()
- Detection requires [tool.astro] to avoid false positives from
  ruff/pytest pyproject.toml files

astro dev init --format pyproject:
- Scaffolds pyproject.toml projects with no Dockerfile or requirements.txt
- Resolves airflow-version and runtime-version from the API
- Validates: AF3 only, mutual exclusion with --from-template

Standalone mode reads pyproject.toml:
- Reads versions and dependencies from [tool.astro] and [project]
- Falls back to Dockerfile parsing for legacy projects

Docker mode generates Dockerfile from pyproject.toml:
- GenerateDockerfile() produces FROM + optional apt-get for system packages
- EnsureDockerfile() called at build time so pyproject.toml edits are
  always picked up
- Generated file written to .astro/Dockerfile.pyproject (gitignored)
- System package names validated against Debian naming rules

Runtime version resolution:
- runtime-version is optional in pyproject.toml — resolved from
  airflow-version on first start/build and pinned back to pyproject.toml
- Mismatch between airflow-version and runtime-version triggers a warning
- Warns users that multiple runtimes exist per Airflow version to prevent
  accidental upgrades on deploy
Pull Request #2055: Add pyproject.toml as project definition format

261 of 368 new or added lines in 8 files covered. (70.92%)

1 existing line in 1 file now uncovered.

24708 of 68179 relevant lines covered (36.24%)

8.64 hits per line

Uncovered Changes

Lines Coverage ∆ File
33
76.44
-0.49% airflow/standalone.go
26
71.56
-10.06% airflow_versions/airflow_versions.go
19
72.86
airflow/dockerfile_gen.go
11
91.39
-0.82% cmd/airflow.go
8
91.4
airflow/project.go
4
84.17
-0.37% airflow/airflow.go
4
77.09
-0.16% airflow/docker.go
2
79.79
-0.21% airflow/docker_image.go

Coverage Regressions

Lines Coverage ∆ File
1
91.39
-0.82% cmd/airflow.go
Jobs
ID Job ID Ran Files Coverage
1 7fbd087c-0308-4fa9-af77-861aba9664f4.1 26 Mar 2026 02:40AM UTC 199
36.24
Source Files on build 7fbd087c-0308-4fa9-af77-861aba9664f4
  • Tree
  • List 199
  • Changed 8
  • Source Changed 8
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • CircleCI Build #7FBD087C...
  • Pull Request #2055
  • PR Base - main (#144547F3...)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc