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.flask-oldsessions: init at 0.10 #38787
Conversation
Is there a reason for packaging this? |
I don't think we should package flask packages in Nixpkgs. None of our software needs it, and it typically is a pain to maintain because of dependency incompatibilities. |
Also, if you have multiple packages that relate to each other that you want to get in, then please open a single PR with multiple commits. Often that works better. |
Yes, it is a dependency of the sage notebook.
The sage notebook tests pass with it, so I don't think thats the case.
There are already some flask packages and I'm packaging sagenb, which does depend on it.
I'll keep that in mind for the future. |
@timokau I suggest you create a |
+1 for putting sage in an overlay |
Actually, should this overlay only contain |
As an overlay it would be more effort to maintain, more effort to install and would not have the benefits of binary substitutions. I'd be disappointed if there is no way around it but I can't do anything against it of courrse. I really don't see the big burden of these packages. If they fail to build, they can be disabled or removed. If thats still a problem, I can inline them into the sage expression and not expose them to the nixpkgs tree. |
I don't see why.
Most of the PRs consisting of C libraries were already merged anyway. These profit the most from binary substitution. |
Because failures cause by changes in dependencies would no longer be caught at the PR introducing these changes (or shortly after), but just when somebody builds with the new nixpkgs. That makes it hard to find where the changes were introduced. Fixing all this would probably fall on me.
It would at leas need some doctest patching, because |
Those updating/modifying dependencies are also not going to make sure all dependents are going to work. If you need a package, you need to maintain it, but typically also put in some effort to guarantee the entire dependency tree builds. This especially is lacking with the Python packages which are also tightly connected. |
@FRidh What's your opinion on inlining the rejected packages' expressions in the I think we should definitely first of all talk to upstream about whether they are willing the get rid of the outdated dependencies ( |
They usually should. But even if they don't, hydra will catch it shortly after.
I and hopefully others would maintain it in the nixpkgs tree. Maintaining it as an overlay would make that harder and I don't see it as a big advantage. |
Agreed.
That is one possibility that could work. It's like an overlay but in-tree and as we do for other, though smaller, applications. First, though, I would like to see a branch with a functioning |
+1 for having a single branch/PR with all new packages Brial and cypari2 look mostly fine as they are while the others require many sage-specific patches, so I'd say we can merge these two and you can put all other packages in a single branch. |
I opened sagemath/sagenb#440, I hope I described your concerns accurately. |
I'd prefer to first incrementally upstream all the non-controversial changes because
I can then include the controversial ones (hopefully not many) in one PR together with sage itself if you prefer. |
If you have further questions about Sage, there is a dedicated mailing list for packaging: https://groups.google.com/forum/#!forum/sage-packaging |
Thanks for that pointer! I don't think this problem could have been solved by that mailing list however -- best case somebody has a patch that removes those dependencies, in which case that should probably be upstreamed anyways. |
Motivation for this change
Package
flask-oldsessions
.Things done
build-use-sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)