chore: add a nix flake develop environment setup#1417
chore: add a nix flake develop environment setup#1417sunng87 wants to merge 7 commits intogeoarrow:mainfrom
Conversation
|
Thanks for the PR. I don't know anything about nix and I'm a little wary of adding another development setup that I don't understand. What if dependencies change and the nix recipe becomes outdated? Do we have to keep versions in sync with rust versions, etc. I don't know whether it should be the concern of this repo to ensure that users can install rustc. The JS bindings are very outdated, and rather than complicate the development environment here, I'd be more receptive to moving the JS WASM code to a new repo (maybe called Then I feel like the only native dependencies that we have are GEOS and rustc? And can't GEOS build during the Rust build process? |
|
This nix flake module is totally optional: it's only for user who has nix/direnv installed and activate via For native dependencies, yes, we need geos development files installed. In the In order to keep the nix setup validated, I can include additional github CI tasks to 1. run build commands in nix environment; 2. run scheduled tasks to update For updating rustc, because we don't have a rust-toolchain file in the repo, stable rustc is used by default. Anytime a new version of rustc is released in nix repo, we can update Anyway, no pressure for this. I use this flake to setup my dev environment when working on geoarrow-rs, just guess it can be helpful for other nix users who is also working on this. |
We have a lot of dependencies and tools required in this project, and some of them are hidden ones. this nix flake setup will help developers to setup a full environment with just one call.
I'm also happy to include an instruction about setup this in top level
README.mdorDEVELOP.md. But users who familiar with nix flake should know about this once they saw the flake files.I also got an deprecation warnings with
uv.tools.dev-dependenciesso I update it to latest recommended form. Will check CI to see if it works.For js module,
wasm-packand the headless test on firefox should work.