Reproducibility, Pants, Nix #19537
Replies: 5 comments 6 replies
-
ping @pantsbuild/maintainers |
Beta Was this translation helpful? Give feedback.
-
So I really only know the broad strokes of how Nix works. From everything I can tell, Nix and Pants have similar goals, but Pants focuses mainly on existing language-level ecosystems and works to create reproducible builds largely within those. Unlike Nix, really aims to be full-suite development tool, supporting not only reproducible builds, but also hermetic, reproducible tests, linting, formatting, etc. Most of its DX/UX efforts are focused around that. But we do take reproducibility quite seriously. I don't see any reason why we couldn't support publishing Nix derivations via plugins. "Publish" in Pants world means to produce some kinda artifact, so adding that on should just be a plugin like any other. I don't think any current maintainers have any plans to do this, but there's nothing stopping you from contributing. See the docs on plugins for how to implement one, or ask questions in #plugins on our Slack. On the other hand, consuming Nix packages and using them as part of Pants would be a much larger undertaking. Pants' backends (which are the bits of plugins that implement logic for particular ecosystems) are coupled tightly to the tools and ecosystems typical of the languages they support; e.g., the Python backend makes heavy use of Pip and Pex, the Go backend uses the standard Go tools, etc. So if you're aiming at a deeper integration, that would be entail a much longer discussion. |
Beta Was this translation helpful? Give feedback.
-
Hi, Here are two blog posts from Tweag on using Bazel with Nix: https://www.tweag.io/blog/2022-12-15-bazel-nix-migration-experience/ Just substitute Bazel with Pants? 😸 |
Beta Was this translation helpful? Give feedback.
-
Interesting. So is this something we can use environments for? There seems to be some overlap. A nix environment could be an alternative to a docker one, or something? |
Beta Was this translation helpful? Give feedback.
-
Here's a good TLDR workflow showcase with FastAPI showing how Python developers are using nix for developing software: |
Beta Was this translation helpful? Give feedback.
-
Hi Pants Build System developers,
With projects like the Nix package manager and related tooling/systems existing, how does pants see itself addressing the issue/solution to reproducibility in a software project?
Could Pants consider integrating with Nix at some point in the future?
Has this not been considered before?
Does pants have an alternative answer to handling reproducibility in a software project?
Is this out of scope for the Pants project?
Beta Was this translation helpful? Give feedback.
All reactions