MFEK / glif

A stand-alone glyph viewer and editor (UFO .glif). (ꞵ quality)
Apache License 2.0
189 stars 14 forks source link

Add Nix flake support #370

Open jakeisnt opened 1 year ago

jakeisnt commented 1 year ago

This helps anyone who uses NixOS or nix get started with a development environment seamlessly. If someone has nix and direnv installed, upon entering this repository they'll have a development environment with the exact versions of rust and all of the system packages necessary to build the repo.

It:

I put this together to get glif to run on my end; merge if others would use, OK to close if not.

ctrlcctrlv commented 1 year ago

If you do this then probably these files belong in a new repo, MFEK/flake.nix. I can create it for you and leave it empty if you want me to.

ctrlcctrlv commented 1 year ago

Oh and last thought. MFEK's IPC uses --version and $PATH only to find its fellow modules so there's nothing special you have to do besides put all those binaries in the NixOS $PATH.

alerque commented 1 year ago

I would suggest a flake in each of those other repositories, then depend on them from the flake in this repository. Having a "parking" repository just for a combined flake kind of defeats the purpose and expected usage.

ctrlcctrlv commented 1 year ago

Oh, I see. Well, I still think a parking repository makes sense, as even though this is the org's most popular project, it's not the "root" module in any sense. You can use MFEKstroke / MFEKpathops / MFEKmetadata without it just fine.

But perhaps that actually makes this easier for @jakeisnt. If he adds a flake to MFEKmetadata, and makes this rely on that, I'll consider that enough to merge this. (That's the only IPC-checked dependency at current.)

jakeisnt commented 1 year ago

Agree that the flake-per-repo approach is more reasonable, as it allows developers to make use of nix shell environments. On it!

ctrlcctrlv commented 1 year ago

Thanks! Sorry for my ignorance of NixOS :-)

If there's enough interest I'll make MFEK/flake.nix myself after merging this and the MFEKmetadata PR.

ctrlcctrlv commented 1 year ago

Agree that the flake-per-repo approach is more reasonable, as it allows developers to make use of nix shell environments.

Do you think that the idea of having an MFEK/flake.nix with all the binary tools isn't useful then?

The best supported installation method, if you can even call it one, is basically that:

ctrlcctrlv commented 1 year ago

Marked as draft as blocked on https://github.com/MFEK/metadata/pull/139#issuecomment-1364631789 (see subsequent comment on potential fix).