rjgoyln opened a new issue, #71121:
URL: https://github.com/apache/airflow/issues/71121

   `dev/breeze/pyproject.toml` pins `flit==3.12.0` and `flit-core==3.12.0` 
exactly, so that `breeze release-management prepare-provider-distributions` 
keeps building provider distributions with a backend that emits valid core 
metadata. The pin should come off once upstream ships a fix.
   
   ### Why the pin is there
   
   `flit build` does not use PEP 517 build isolation — `flit/wheel.py` is 
`import flit_core.wheel as core_wheel`, so the backend is whichever `flit_core` 
happens to be installed in the environment. That makes the `flit_core==3.12.0` 
pin every provider declares in `[build-system] requires` inert on the path we 
actually release from, and leaves breeze's own dependency as the only thing 
deciding it.
   
   `flit_core` 4.0.1 writes `Import-Name` and `Import-Namespace` without a 
trailing newline (https://github.com/pypa/flit/issues/813), which consumes the 
blank line separating the metadata headers from the description. The resulting 
`METADATA` parses with `MissingHeaderBodySeparatorDefect` and its description 
is swallowed into the header block. Providers are namespace packages, so each 
one would emit three such fields concatenated onto a single line.
   
   Since `flit` 4.0.1 requires `flit_core>=4.0.1` and `flit` 3.12.0 requires 
`flit_core>=3.12.0` with no upper bound, both distributions have to be pinned — 
pinning only `flit` would still admit the 4.x backend.
   
   ### Follow-up work
   
   Relax both pins back to floors once a `flit_core` release carrying the fix 
is available. That is also the right moment to evaluate the flit 4 migration on 
its own merits, which this pin defers: metadata version 2.5, `--no-use-vcs` 
becoming the default for sdists, the tar `data` filter on Python 3.12+, and 
whether any of it perturbs reproducible builds.
   
   ### Acceptance criteria
   
   - A `flit_core` release containing the fix for 
https://github.com/pypa/flit/issues/813 exists.
   - Provider wheels built with it parse with no `email` defects and carry 
their description in the body.
   - `Generate constraints`, `Providers sdist tests`, `Providers wheel tests` 
and the `Compat` jobs are green.
   - The pins in `dev/breeze/pyproject.toml` are floors again and the tracking 
comment at the pin site is removed.
   
   ---
   Drafted-by: Claude Code (Opus 5) (no human review before posting)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to