Mach-nix seems unmaintained now -- and broken. What now?

Apparently, mach-nix modified itself so that it can no longer install (EDIT: build) cython, then declared itself unmaintained. I looked at poetry2nix, and ended up with no idea how to get either a nix-shell or a nix-env install. Their only example I could see was a default.nix that I had no idea how to use. Is the recommended way to use python on nixos now a virtual machine with Ubuntu?

Do you have a commit/PR/issue/error message to ground this?

This short video Package and deploy Python apps faster with Poetry and Nix - YouTube gives a good introduction to poetry2nix, helped me understand it. Together with poetry it is a really neat solution.

2 Likes

Here’s the bug report. Building cython with mach-nix stopped working, with no change in nixos version · Issue #538 · DavHau/mach-nix · GitHub

1 Like

I responded to the GH issue, but I’ll summarize for later readers here:

  • It does sound like mach-nix won’t currently build on master, as documented in Distlib issue after update · Issue #524 · DavHau/mach-nix · GitHub.

    This doesn’t mean mach-nix doesn’t work, but it does mean it’s not a good idea to use it directly from master if you expect your project to be stable. I’m still using 3.5.0 successfully. Mach-nix will already pin its own version in lock.toml if you bootstrap the project with its CLI workflow.

  • DavHau did mark the project unmaintained in December, but they are still around and actively working on language-ecosystem-to-nix packaging. I don’t know this, but I suspect they’d be happy to merge fixes/updates to mach-nix as long as the community steps up to create/review/test them.

1 Like

That makes sense. it turns out I hadn’t leaned enough into its features to be stuck – so I just went back to the janky manual way I was doing it before, and it seemed to work. The “janky” way is still soooo much nicer than pre-nix, so I’m still happy.

Other option is to use Dream2nix GitHub - nix-community/dream2nix: Automate reproducible packaging for various language ecosystems [maintainer=@DavHau]

That was my first thought, but I couldn’t find the python docs for it.