| 13 Mar 2024 |
accelbread | for autoloading could have:
{ pkgs, inputs, ... }:
inputs.devenv.lib.mkShell {
inherit inputs pkgs;
modules = [
# Your stuff here
];
};
and put that in nix/devShell.nix or nix/devShells/devenv.nix or such
| 16:17:03 |
cmacrae | oh great, okay that's perfect - thanks! | 16:17:34 |
cmacrae | any idea why a package definition in nix/packages/example/default.nix, looking like this would complain lib.customisation.callPackageWith: Function called without required argument "buildPythonPackage" at /nix/store/... ?
{ buildPythonPackage }:
buildPythonPackage rec {
pname = "example"....
haven't run into this with other packages I've defined wherein I use a bunch of build inputs from nixpkgs. sorry for all the questions 😅
| 16:48:29 |
accelbread | Huh it does not seem to exist in nixpkgs anymore. Maybe it was moved? | 16:58:42 |
accelbread |  Download image.png | 16:59:30 |
accelbread | no problem about questions, ask away | 16:59:56 |
cmacrae | that is very confusing 😅 I was using example = callPackage ./packages/example { inherit buildPythonPackage; }; in a previous iteration of this project and it worked | 17:01:24 |
accelbread | it seems packages in nixpkgs are also using it which is wierd | 17:01:47 |
accelbread | * it seems packages in nixpkgs are also using it which is weird | 17:01:51 |
accelbread | Ah | 17:02:05 |
cmacrae | its under pythonPackages, is that perhaps why? | 17:02:44 |
accelbread | the inherit buildPythonPackage; there adds/overrides stuff to the package set for that callPackage | 17:02:48 |
accelbread | if its pythonPackages.buildPythonPackage you'll want your to take { pythonPackages } and go from there | 17:03:51 |
cmacrae | oh good, I'm glad you suggested that, haha. I thought "maybe I just use that, but then I don't want it to all be in scope", but I guess it doesn't matter anyway because of lazy eval? | 17:04:46 |
accelbread | Yeah, lazy eval takes care of it | 17:05:02 |
accelbread | Though I think I usually pull in like python3 and do python3.buildPythonPackage? Don't remember at the moment and only have python stuff on work laptop ha | 17:05:54 |
accelbread | Though I usually end up needing specific python versions like python311 or python312 | 17:06:45 |
accelbread | Ah its python3.pkgs.buildPythonPackage | 17:08:43 |
cmacrae | ahhh, that's it | 17:08:52 |
cmacrae | thank you! | 17:08:57 |
cmacrae | woo | 17:09:24 |
cmacrae | it worked :) | 17:09:29 |
accelbread | 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 |
accelbread | 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 |
cmacrae | 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 |
accelbread | 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 |
accelbread | Ideally could just have a package to run, but machnix is deprecated and dream2nix isn't ready to replace it yet | 17:14:11 |
cmacrae | 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 |
cmacrae | did you see that? I haven't dug into it yet | 17:15:12 |
accelbread | Oh, I wasn't aware | 17:15:46 |