tweag / FawltyDeps

Python dependency checker
Other
201 stars 14 forks source link

Support Pixi projects configured with `pixi.toml` files? #454

Closed jherland closed 1 month ago

jherland commented 2 months ago

Triggered by #453 and largely related to #447.

Pixi is a new package management tool that appears to be designed to replace Conda. In addition to supporting project configuration in pyproject.toml (as discussed in #453), it also allows projects to be configured in its own pixi.toml file format.

Similar to other modern package management tools, Pixi preaches a clean split between direct/intentional dependency declarations (in pyproject.toml or pixi.toml) and pixi.lock lockfiles that encompass the transitive closure of dependencies.

From FawltyDeps' POV, given this clear philosophy and modern approach, Pixi appears to be easier to support than Conda. However, given its strong ties to (and clear preference for) the conda package ecosystem, there are still some common conda-related challenges to build this support into FawltyDeps:

The above steps clearly depend on FD having access to an actual local Pixi/Conda environment. The way FawltyDeps handles mapping package names to import names today will probably need some rework: