jfecher / ante

A safe, easy systems language
http://antelang.org
MIT License
1.9k stars 80 forks source link

Switch to flake-parts and nci #167

Closed ehllie closed 1 year ago

ehllie commented 1 year ago

Switched the nix expression used for building ante to use flake-parts and nci instead of manually calling buildRustPackage. It should lower the amount of maintenance required for it, since the dependency hashes won't need to be updated each time Cargo.lock changes like it did recently as those are not required by nci at all. The flake.nix is also much simpler now thanks to flake-parts.

ehllie commented 1 year ago

Oh, I've also ended up including .envrc used by direnv. Not sure if you want to include that in the repository. I can always just add it to my local .git/info/exclude instead

jfecher commented 1 year ago

@ehllie, I just pushed another commit updating some dependencies. Will this break the nix build?

ehllie commented 1 year ago

@ehllie, I just pushed another commit updating some dependencies. Will this break the nix build?

No, the nix build still works fine. It should be much more resilient now.

~
❯ nix shell github:jfecher/ante

~
❯ file $(realpath $(which ante))
/nix/store/ilipmv42z4ms0rqi1ddh4fhv25vi1dw8-ante-0.1.1/bin/ante: Mach-O 64-bit executable arm64

~
❯ ante
error: the following required arguments were not provided:
  <FILE>

Usage: ante <FILE>

For more information, try '--help'.

~
❯ exit

~ took 7m36s
❯

One extra thing could be adding a github action for building the binary and uploading it to a binary cache like cachix so that it wouldn't take ~7 minutes to compile, but instead get downloaded from the substituter. It's up to you if you think that's worthwhile. I could look into setting it up if you want.

jfecher commented 1 year ago

@ehllie I think we should be good for now, but thank you. It may be something to revisit once the compiler is more mature or if it ever becomes more widely used though.