| 3 Dec 2025 |
dish [Fox/It/She] | if you need a nightly or beta version then you'd be better off with an external project | 22:26:55 |
dish [Fox/It/She] | i dont have a preference personally since I dont use them | 22:27:03 |
dish [Fox/It/She] | but that's the main reason to use them | 22:27:09 |
dish [Fox/It/She] | since they have binary caches so you dont have to build rustc from source(which would happen if you overrode nixpkgs' rustc version) | 22:27:29 |
neobrain | Oh, I was thinking among the other nix options (naersk, carnix, etc) that are listed on the wiki | 22:32:52 |
rosssmyth | Yes!
- Currently if cross compiling for mingw
buildRustPackage makes it a bit worse than the other builders
buildRustPackage does no caching of dependencies. This means that every time you run nix build it will rebuild every dependency. The others generally do not to varying levels of granularity.
For projects I author I generally use Crane. You can do some smart caching so that it's pretty fast in CI.
| 22:33:06 |
neobrain | For development I'm just going to nix develop either way | 22:33:08 |
neobrain | * Oh, I was thinking among the other nix options (naersk, crane, etc) that are listed on the wiki | 22:33:42 |
neobrain | Interesting point about caching of dependencies. I would've assumed the mapping of Cargo.lock would create a separate nix store entry for each dependency (and hence trivially cache things), but I'm probably underestimating the problem space :) | 22:35:27 |
dish [Fox/It/She] | sorry, thats what I meant. I see the main value prob of the {naersk,crane,fenix,etc} solutions as being that they allow using betas/nightlys if wanted | 22:35:42 |
dish [Fox/It/She] | I'm not a rust dev but that is one of the main things I've noticed | 22:35:52 |
neobrain | Ah, gotcha | 22:36:04 |
dish [Fox/It/She] | maybe I'm wrong in that way but from my usage in the past thats been my reason to use them | 22:36:10 |
dish [Fox/It/She] | * maybe I'm wrong in that way but from my usage in the past thats been my reason to use them over buildRustPackage | 22:36:13 |
dish [Fox/It/She] | since I just use cargo during active dev | 22:36:42 |
rosssmyth | For an example of the caching, you can see what I did with Wild. Basically the assumption is "the Cargo.lock and flake.lock files do not change very often (compared to the rest of the souce)"
So there's a dedicated job that refreshes the cache when the lockfiles change Then another job for running with the cached dependencies And a cron job to periodically update the flake lockfile
| 22:37:03 |
rosssmyth | You can use nightly and beta with buildRustPackage just as easily as the other options, so I wouldn't really say that's an advantage. It's even shown in the reference how to | 22:38:21 |
rosssmyth | You just can't in Nixpkgs | 22:38:34 |
neobrain | rosssmyth: How do you handle day-to-day development? Do you enter a nix shell or do you always nix run/build? If it's purely the former, I'm guessing the main benefit of the caching is for CI? | 22:39:26 |
neobrain | * rosssmyth: How do you handle day-to-day development? Do you enter a nix shell (and then use Cargo manually) or do you always nix run/build? If it's purely the former, I'm guessing the main benefit of the caching is for CI? | 22:39:45 |
rosssmyth | The packages that allow it are rust-overlay and the other one I can't remember https://nixos.org/manual/nixpkgs/unstable/#using-rust-nightly-in-a-derivation-with-buildrustpackage | 22:40:03 |
rosssmyth | Generally both. The caching in CI is pretty much always a win, then caching when I'm just doing day-to-day dev is also great cause I always like to verify that things build alright in the sandbox when I'm developing | 22:41:26 |
Marien Zwart | In reply to @rosssmyth:matrix.org The packages that allow it are rust-overlay and the other one I can't remember https://nixos.org/manual/nixpkgs/unstable/#using-rust-nightly-in-a-derivation-with-buildrustpackage https://github.com/nix-community/fenix ? | 22:42:22 |
rosssmyth | yeah | 22:42:30 |
neobrain | I see, makes sense. Thanks for the explanation! | 22:43:29 |
| 4 Dec 2025 |
| Ido Samuelson joined the room. | 01:45:35 |
| onur-ozkan joined the room. | 04:20:40 |
| @curid:matrix.org left the room. | 08:59:20 |
| isabel changed their profile picture. | 16:42:04 |
| Tanja (she/her) - ☎️ 4201 changed their display name from Tanja (she/her) to Tanja (she/her) - ☎️ 4201. | 18:09:36 |