Description
Support building from sdist
as a build action instead of repository_rule
.
Things needed:
- A way to use a different
repository
rule that would not do any building withpip
. - Parsing the dependencies from
pyproject.toml
so that thedeps
field is populated at the repository time. - A
pip
toolchain or something similar for building packages. Maybe we should have atoolchain
for each build backend in the https://peps.python.org/pep-0621/ - A way to specify build dependencies see pip_parse: lockfile for build dependencies in repository rule #1325.
- How do we build Python extensions?
Initial thoughts:
- It would be good to create an
sdist_archive
rule, which would download a givensdist
by URL and then would parsepyproject.toml
. If thepyproject.toml
is not found or it is dynamic and requires Python to correctly infer the dependencies, we may need to fail at least in the first iteration. - Using Python in the repository context is OK, but adds a lot of complication in the long run - we should attempt to limit its usage as much as possible.
At the moment I don't have time to work on this myself, but writing it down so that an issue for PEP621 based sdist building exists. Feel free to add thoughts here on possible design.