New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pythonPackages.drmaa: init at 0.7.9 #50900
Conversation
@GrahamcOfBorg build pythonPackages.drmaa python3Packages.drmaa |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
5a9b3ab
to
1870492
Compare
When I try to open this I get the following error message:
As we aim to produce pure package builds I'd suggest to patch the software to ensure that |
@Ma27 |
I'm sorry, but I have to disagree with you here. I don't think that we want to have packages that are not functional by default. An important part of providing a functional and reproducible setup for any given package (or environment) is that you have explicitly defined dependencies and don't rely on any global state (which may happen, especially on non-NixOS systems with Nix as additional package manager in your case). Instead I'd propose the following: we package |
My plan for
Unfortunately simply nailing |
In the end this fairly similar to the approach I proposed earlier: in the end I want to have a sensitive default (that can be easily changed using the override mechanism in
I partially agree. Of course we can't ensure purity in distributed systems, especially if most (or all) of the systems don't run Nix(OS). But here we're talking about some bindings to talk to any The reason why I brought in explicit dependencies (for purity) is that I'd like to see a setup, where the user of any In this case we would've achieved the following goals:
I guess I got your point and hope that I made my problem with this patch a bit clearer :) |
@Ma27 Thank you for your continued interest. I think we are still not on the same page. Let me go through your points. You mention some of your preferred properties for
Overall I'm not against your approach. I have some reservations because I'm not sure how it would work to wrap proprietary backends for it. At this point I can't really tell which way would be better here. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
First of all thanks a lot for the detailed explanation! Just to set this straight: there are a lot of (hard to package) implementations that can be used, to make the package actually usable you have to specify an environment variable which points to the actual library right? (sorry if I missed something, I never used this ecosystem before ^^) If that's the case, I still have some concerns about encouraging users to use a different package not built with Nix (I'm referring to It's certainly possible that we simply have different opinions if the above is the case, then I'd rather ask in the IRC what experienced maintainers think about this (I'm rather new here as maintainer, so I don't want to reject packages when the author has an understandable position I simply disagree with).
Agreed, I'm doing this myself in certain cases :) But here you have a setup which is pure by default (explicitly defined Python packages living inside store paths). If a user modifies this (and maybe disables sandboxing) it's obviously possible to pull in additional (implicit) dependencies, but that's IMHO not what Nix was made for :) |
Yes. The backends are dynamically linked libraries, this is specified by the DRMAA spec.
I would not say I encourage someone to have an impure setup. There is a way to package some of the backends ( export DRMAA_LIBRARY_PATH=/opt/sge/lib/lx-amd64/libdrmaa.so but is it that much different from using pythonPackages.drmaa.override {
libdrmaa = runCommand "libdrmaa.so" {}
"install -m444 /opt/sge/lib/lx-amd64/libdrmaa.so $out";
} There is not much we can do to really prevent an impure setup.
Absolutely pure software is useless as it has no side effects. We are implementing as much purity as we can reasonably get. My proposed expression for |
I'm talking not about the software itself, I'm talking about the software build where we have explicitly defined dependencies and an isolated environment to provide a working build result in the end. My point is that relying on an external, not explicitly defined package to make your python bindings work is needed and I think that's a problem (that's basically the detail I'm criticising) :) But it's getting late now, please let me write an answer tomorrow :) |
That's as you mentioned not pure either. You don't know what exactly lives in
The more I think about this, the more I agree with this. As expressed previously I (personally) don't think that such a package should live in I absolutely understand though if you disagree with me here, in that case let's ask an experienced maintainer, ok? :) |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
So datrie is fixed, here we go again: @GrahamcOfBorg build snakemake |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Good @GrahamcOfBorg build libcondordrmaa |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@Ma27 nix-shell -p python3 -p python3Packages.drmaa -p libcondordrmaa \
--run "python -c 'import drmaa; print(\"Success\")'" |
Motivation for this change
Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)