| 29 Nov 2023 |
K900 | Ideally you'd run it as part of your normal Python build | 15:59:16 |
K900 | Probably with a Poetry plugin | 15:59:30 |
BenBot | I'll look into that then. From a quick google search last night, I didn't see an easy way to run a make command or anything like that during poetry's build. But i'm no poetry expert, so i may have missed it | 16:00:35 |
K900 | There isn't | 16:02:07 |
BenBot | this seems like a huge limitation then :( I'm having a similar issue with an elixir flake. No way to generate protobuf modules before running the mixRelease function in nix | 16:02:58 |
K900 | Well | 16:03:08 |
K900 | You can do it in Nix | 16:03:10 |
K900 | And then copy in the files | 16:03:13 |
BenBot | Yeah, that's the hack i have now.
Generate the files in a package named proto then use the $out from that as the projectDir for mkPoetryApplication.
It's weirder for elixir since I need to install a remote dep (a protoc plugin) to generate the modules
| 16:04:32 |
BenBot | Is there any reason the derivation that mkPoetryApplication returns doesn't have override or overrideAttrs on it?
I feel like just prepending a make python-proto command to the buildPhase would be really simple
| 16:05:23 |
K900 | It should have overridePythonAttrs | 16:06:08 |
K900 | But also if you're doing that, you're basically making your thing not buildable without Nix | 16:06:20 |
K900 | Which may or may not be a problem for you | 16:06:24 |
BenBot | I'm okay with that. Currently my build process is a very hacky dockerfile, so anything is better than that 😅 Plus it's just an additional make command | 16:07:30 |
BenBot | let me try that overridePythonAttrs | 16:07:47 |
BenBot | In reply to @k900:0upti.me It should have overridePythonAttrs at /nix/store/wzjdajqfi4v7agn3s8hszvg0z8lkbnpw-source/flake.nix:40:21:
39| };
40| default = nn.mkPoetryApplication ({
| ^
41| buildInputs = [ self.packages.${system}.proto ];
error: attribute 'overridePythonAttrs' missing
doesn't seem like it :(
| 16:09:45 |
BenBot | default = nn.mkPoetryApplication ({
buildInputs = [ self.packages.${system}.proto ];
projectDir = "${self.packages.${system}.proto}";
preferWheels = true;
}).overridePythonAttrs (old: { buildPhase = "asdf"; });
| 16:10:14 |
K900 | I'm pretty sure you're doing nn.mkPoetryApplication ({}).overrideAttrs | 16:10:14 |
K900 | Yes | 16:10:17 |
BenBot | :0 | 16:10:29 |
K900 | Where you want (nn.mkPoetryApplication {}).overrideAttrs | 16:10:29 |
BenBot | :facepalm: | 16:11:35 |
BenBot | overrideAttrs AND overridePythonAttrs both work now
I guess i'm still pretty fuzzy on the ( and ) semantics in nix
| 16:12:04 |
K900 | Function application doesn't need spaces | 16:15:11 |
K900 | So you can do foo bar instead of foo(bar) | 16:15:22 |
K900 | But foo (bar) is parsed as foo bar | 16:15:37 |
K900 | So foo(bar).baz is parsed as foo (bar.baz), not foo(bar).baz | 16:15:52 |
BenBot | ahhh, that's what's tripping me up | 16:16:10 |
| 1 Dec 2023 |
| @ilpianista:kde.org joined the room. | 08:30:32 |
@ilpianista:kde.org | 'morning, I just upgraded to 23.11 and now I got the error about poetry2nix not being anymore in nixpkgs. Does this means that I've to switch my project to flakes to use poetry2nix? because I don't get how to fix my default.nix file to keep it working without flakes (I'm not against them, but I haven't explored them yet). Thanks! | 08:31:20 |