flakelight | 38 Members | |
| https://github.com/nix-community/flakelight | 12 Servers |
| Sender | Message | Time |
|---|---|---|
| 13 Mar 2024 | ||
| thank you! | 17:08:57 | |
| woo | 17:09:24 | |
| it worked :) | 17:09:29 | |
| Nice. Python stuff ends up kinda complicated. Nix imo makes it a lot easier but python is still a bit of a mess ha | 17:10:02 | |
| I've had an issue where pytest needs 3.12 and pylsp needs 3.11 but I want both to share a python 🙃 | 17:10:56 | |
| absolutely - I've joined a company where I'm just seeing these horrible solutions to managing lang & lib versions (python virtualenv, nvm, etc...) and I absolutely have to show them the Nix way, haha | 17:11:44 | |
For stuff like tests (we write C code with tests usually in python), I usually use a venv; people can just do python -m venv venv and if it doesn't work, I have them do nix run nixpkgs#python312 -- -m venv venv | 17:13:33 | |
| Ideally could just have a package to run, but machnix is deprecated and dream2nix isn't ready to replace it yet | 17:14:11 | |
| nice, yeah for sure. there's the new python nix stuff that the author/leader of dream2nix just released the other week, right? | 17:15:01 | |
| did you see that? I haven't dug into it yet | 17:15:12 | |
| Oh, I wasn't aware | 17:15:46 | |
| I'll have to look into that; would be nice to package our tests properly lol | 17:16:05 | |
| yeah it looked pretty comprehensive when I had a brief read over the site/docs | 17:17:50 | |
| What I need is just a function that takes a locked requirements.txt, and gives me a nix file that I can import to get a python environment matching the requirements.txt | 17:19:32 | |
ah yeah, like all the old 2nix tools. as you already mentioned, dream2nix looks very promising | 17:20:25 | |
| hmm still seems like a bit of a hefty dependency. pip2nix is almost perfect except for being quite out-of-date and not working on Mac. Maybe I ought to just fork it and update it one of these days | 17:26:20 | |
| yeah that's a fair point. I think it has some very lofty goals and is nothing like the smaller converters we're historically used to | 17:32:22 | |
| Yeah, I'm also usually not creating a package, but creating a python environment used by devShell, formatter, and multiple packages | 17:33:09 | |
| Or doing something like creating the python env esp-idf requires, and using the esp-idf build system in my derivation | 17:33:50 | |
| yeah exactly 👍️ | 17:56:15 | |
| 14 Mar 2024 | ||
| 11:02:44 | ||
| 18:44:30 | ||
| 15 Mar 2024 | ||
me again accelbread 👋😅 looking at using flakelight-rust for our company's mono-repo. when using flakelight-rust in a flakelight flake, where I'm importing the flakelightModule, how can I set the fileset option? | 14:51:25 | |
also, out of curiosity, maybe you can help me figure out: looks like they're using a top level Cargo.toml in the root of the repo. it uses a large members section to define all its components, of which some are cargo packages. the top level Cargo.toml doesn't have a package section defined, so I added one and called it "<thing>-meta". which in turn seems like it's then instructing to build everything (the desired outcome). do you think this is a good approach for using flakelight-rust? | 14:51:28 | |
| Sounds like its using a cargo workspace; currently flakelight-rust builds the default package if it is set (it can be set to one of the other crates or the workspace itself can have a package section) If you want to build everything, a meta package seems fine for now with current support. Would be best if we add support for building all the crates in a workspace as separate packages though; that way nothing special has to be done. | 15:17:38 | |
|
Above is easy way which gives pacakges access to all files in the repo | 15:19:32 | |
| best practice to have a more restricted set though so that changes to README/etc dont cause a rebuild and better build isolation | 15:20:03 | |
| Docs for what you can do with filesets is here: https://nixos.org/manual/nixpkgs/unstable/#sec-fileset | 15:21:17 | |
| can just build one and pass it to flakelight. The default flakelight-rust one just uses Rust and Toml files | 15:21:57 | |
okay, that's great, thanks for all that info! in your example for setting fileset above, that's just using flakelight-rust. how can I do that in a flakelight ./. { call where I'm using flakelight-rust's flakelightModule.default in flakelight's imports arg? | 15:22:26 | |