kraken-build/: feature: Add a `PexBuildTask` and add support for most Python tooling tasks to defer to an alternative binary (which the DAG builder can use to point to a PEX) #161
Using separate PEX binaries (or isolated environments) for these Python tools has several advantages:
We can introduce a dependency on a new tool in our DAG for Python projects without having to get people to update their pyproject.toml
We can control the default version of the tools in the Kraken code
You can make use of tools that would otherwise have conflicting common dependencies
The PEX binaries can be cached well in CI or remotely (we don't do individual remote caching for this but we very easily could!)
There's one potential disadvantage for Python projects using Nix however, because these tools would eventually no longer be listed in a Project's poetry.lock or pdm.lock file. This will require building additional Nix logic that pulls in these dependencies from nixpkgs directly.
Using separate PEX binaries (or isolated environments) for these Python tools has several advantages:
pyproject.toml
There's one potential disadvantage for Python projects using Nix however, because these tools would eventually no longer be listed in a Project's
poetry.lock
orpdm.lock
file. This will require building additional Nix logic that pulls in these dependencies from nixpkgs directly.