Skip to content

Add support to --build-constraint(s) flag for our constraint preparation #54394

@potiuk

Description

@potiuk

Currently in airflow CI process we prepare constraints automatically and both our CI process and user installation are designed around using it to "stabilize" both CI (PR stability) and Reproducible installation of airflow.

This prevents Airflow from being susceptible to breaking installation and tests when new version of a dependency (including transitive dependencies) is released. We can detect such breakages and remedy and report them thanks to our canary builds, without impacting stability of regular PRs. Also our users can (almost - see below) reliably install airflow reproducibly.

However (as evidenced by pypa/setuptools-scm#1194 and pypa/setuptools-scm#1191 - when installing packages, the build isolation feature causes that installing 3rd-party packages from sources might be broken simply by a fact of releasing their build dependencies.

Uv already has --build-constraint flag and there is work on-going on adding similar flag to pip - pypa/pip#13534, and we should be able to come out with automation that gathers information about current version of build tools used for all our ".sdist" dependencies and freezes it to a separate "build-constraints" files alongside regular constraints.

That should make us resilient to future cases like that (while still allowing us to quickly detect and report such cases with our canary builds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:dev-envCI, pre-commit, pylint and other changes that do not change the behavior of the final codekind:metaHigh-level information important to the community

    Type

    No type

    Projects

    Status

    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions