!rWxyQqNqMUDLECdsIf:blad.is

Poetry2nix

314 Members
https://github.com/nix-community/poetry2nix59 Servers

Load older messages


SenderMessageTime
28 Nov 2023
@k900:0upti.meK900* Is poetry2nix your flake input? 15:58:14
@k900:0upti.meK900Check the flake example in the repo 15:58:20
29 Nov 2023
@benbot:matrix.orgBenBot
In reply to @k900:0upti.me
Is
poetry2nix your flake input?
It was my misunderstanding of how scope works in nix. I got past that, but now there are other problems :(
15:58:06
@benbot:matrix.orgBenBot

we're using protobuf to generate some classes at build time, but I can't figure out how to run protoc during the build phase of makePoetryApplication.

It doesn't seem like whatever mkPoetryApplication outputs has override or overrideAttrs so i'm at a loss 😓

15:58:57
@k900:0upti.meK900Ideally you'd run it as part of your normal Python build15:59:16
@k900:0upti.meK900Probably with a Poetry plugin15:59:30
@benbot:matrix.orgBenBotI'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 it16:00:35
@k900:0upti.meK900There isn't16:02:07
@benbot:matrix.orgBenBot 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:0upti.meK900Well16:03:08
@k900:0upti.meK900You can do it in Nix16:03:10
@k900:0upti.meK900And then copy in the files16:03:13
@benbot:matrix.orgBenBot

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:matrix.orgBenBot

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:0upti.meK900 It should have overridePythonAttrs 16:06:08
@k900:0upti.meK900But also if you're doing that, you're basically making your thing not buildable without Nix16:06:20
@k900:0upti.meK900Which may or may not be a problem for you16:06:24
@benbot:matrix.orgBenBot 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:matrix.orgBenBot let me try that overridePythonAttrs 16:07:47
@benbot:matrix.orgBenBot
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:matrix.orgBenBot
          default = nn.mkPoetryApplication ({
            buildInputs = [ self.packages.${system}.proto ];
            projectDir = "${self.packages.${system}.proto}";
            preferWheels = true;
          }).overridePythonAttrs (old: { buildPhase = "asdf"; });

16:10:14
@k900:0upti.meK900 I'm pretty sure you're doing nn.mkPoetryApplication ({}).overrideAttrs 16:10:14
@k900:0upti.meK900Yes16:10:17
@benbot:matrix.orgBenBot:016:10:29
@k900:0upti.meK900 Where you want (nn.mkPoetryApplication {}).overrideAttrs 16:10:29
@benbot:matrix.orgBenBot:facepalm:16:11:35
@benbot:matrix.orgBenBot

overrideAttrs AND overridePythonAttrs both work now

I guess i'm still pretty fuzzy on the ( and ) semantics in nix

16:12:04
@k900:0upti.meK900Function application doesn't need spaces16:15:11
@k900:0upti.meK900 So you can do foo bar instead of foo(bar) 16:15:22
@k900:0upti.meK900 But foo (bar) is parsed as foo bar 16:15:37

Show newer messages


Back to Room ListRoom Version: 6