{"action":"created","issue":{"url":"https://api.github.com/repos/NixOS/nixpkgs/issues/43755","repository_url":"https://api.github.com/repos/NixOS/nixpkgs","labels_url":"https://api.github.com/repos/NixOS/nixpkgs/issues/43755/labels{/name}","comments_url":"https://api.github.com/repos/NixOS/nixpkgs/issues/43755/comments","events_url":"https://api.github.com/repos/NixOS/nixpkgs/issues/43755/events","html_url":"https://github.com/NixOS/nixpkgs/pull/43755","id":342443526,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAyMzQyMzMz","number":43755,"title":"[WIP] sage: use proper overlays","user":{"login":"timokau","id":3799330,"node_id":"MDQ6VXNlcjM3OTkzMzA=","avatar_url":"https://avatars0.githubusercontent.com/u/3799330?v=4","gravatar_id":"","url":"https://api.github.com/users/timokau","html_url":"https://github.com/timokau","followers_url":"https://api.github.com/users/timokau/followers","following_url":"https://api.github.com/users/timokau/following{/other_user}","gists_url":"https://api.github.com/users/timokau/gists{/gist_id}","starred_url":"https://api.github.com/users/timokau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timokau/subscriptions","organizations_url":"https://api.github.com/users/timokau/orgs","repos_url":"https://api.github.com/users/timokau/repos","events_url":"https://api.github.com/users/timokau/events{/privacy}","received_events_url":"https://api.github.com/users/timokau/received_events","type":"User","site_admin":false},"labels":[{"id":292322837,"node_id":"MDU6TGFiZWwyOTIzMjI4Mzc=","url":"https://api.github.com/repos/NixOS/nixpkgs/labels/2.status:%20merge%20conflict","name":"2.status: merge conflict","color":"e6e6e6","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":14,"created_at":"2018-07-18T18:34:13Z","updated_at":"2018-07-19T21:06:37Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/NixOS/nixpkgs/pulls/43755","html_url":"https://github.com/NixOS/nixpkgs/pull/43755","diff_url":"https://github.com/NixOS/nixpkgs/pull/43755.diff","patch_url":"https://github.com/NixOS/nixpkgs/pull/43755.patch"},"body":"###### Motivation for this change\r\n\r\nSage has lots of dependencies and integrates tightly with them. Some of them have to be (temporarily) pinned at older versions. Currently that is done by simply using `<pkg>.override`. But since there are so many dependencies, they are likely to depend on each other. That makes it necessary to \"wire them up\" using lots of `inherit`'s (as seen in #43679).\r\n\r\nSince `packageOverrides` was deprecated, I'm unsure how to solve this. Here I use the variant mentioned in the manual, but not used anywhere in nixpkgs (yet). That re-imports nixpkgs however:\r\n\r\n```\r\nsagepkgs = import nixpkgs.path {\r\n    overlays = [ ... ];\r\n}\r\n```\r\n\r\nIs this a terrible idea? Will this lead to even more memory consumption? Will this ignore all previous user-defined overlays? Is there a better way?\r\n\r\n@grahamc @matthewbauer @7c6f434c @FRidh \r\n\r\nOther than the change from simple `.override` to overlays nothing has changed. So there is no need to review the details here (although you're of course free to do so).\r\n\r\n###### Things done\r\n\r\n<!-- Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers. -->\r\n\r\n- [ ] Tested using sandboxing ([nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS, or option `sandbox` in [`nix.conf`](http://nixos.org/nix/manual/#sec-conf-file) on non-NixOS)\r\n- Built on platform(s)\r\n   - [ ] NixOS\r\n   - [ ] macOS\r\n   - [ ] other Linux distributions\r\n- [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))\r\n- [ ] Tested compilation of all pkgs that depend on this change using `nix-shell -p nox --run \"nox-review wip\"`\r\n- [ ] Tested execution of all binary files (usually in `./result/bin/`)\r\n- [ ] Determined the impact on package closure size (by running `nix path-info -S` before and after)\r\n- [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md).\r\n\r\n---\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/NixOS/nixpkgs/issues/comments/406414457","html_url":"https://github.com/NixOS/nixpkgs/pull/43755#issuecomment-406414457","issue_url":"https://api.github.com/repos/NixOS/nixpkgs/issues/43755","id":406414457,"node_id":"MDEyOklzc3VlQ29tbWVudDQwNjQxNDQ1Nw==","user":{"login":"timokau","id":3799330,"node_id":"MDQ6VXNlcjM3OTkzMzA=","avatar_url":"https://avatars0.githubusercontent.com/u/3799330?v=4","gravatar_id":"","url":"https://api.github.com/users/timokau","html_url":"https://github.com/timokau","followers_url":"https://api.github.com/users/timokau/followers","following_url":"https://api.github.com/users/timokau/following{/other_user}","gists_url":"https://api.github.com/users/timokau/gists{/gist_id}","starred_url":"https://api.github.com/users/timokau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timokau/subscriptions","organizations_url":"https://api.github.com/users/timokau/orgs","repos_url":"https://api.github.com/users/timokau/repos","events_url":"https://api.github.com/users/timokau/events{/privacy}","received_events_url":"https://api.github.com/users/timokau/received_events","type":"User","site_admin":false},"created_at":"2018-07-19T21:06:37Z","updated_at":"2018-07-19T21:06:37Z","author_association":"CONTRIBUTOR","body":"> > Should those overlaps in namespaces be considered an issue and fixed? They lead to pretty subtle bugs...\n> \n> They're annoying, but package names eventually will overlap. That's one reason why we use namespaces.\n\nThat's true. Maybe the python (and similar) infrastructure's `callPackage` should refuse to pick a package if there are multiple options and force the user to specify one explicitly. No idea if that's technically feasible though.\n\n> > Are there reasons for this? Wouldn't it be nicer to treat python pkgs and \"regular\" pkgs as uniformly as possible?\n> \n> Python libraries belong in the Python package set. That way we're also preventing possible naming collisions.\n\nBut the name collision still happened this way. Probably I'm just idealizing in my thinking that implementation language should be an implementation detail :)\n\n> > Also if `fix -> fix'` isn't acceptable, can't we use the same mechanism overlays use to make it possible to do deep overrides from within nixpkgs? Its not a unique sage problem, sage just needs it at a bigger scale than most packages. `pythonPackages` offers it, why not `nixpkgs`?\n> \n> We are using the same mechanism: the package set we've defined here is exactly the same. The issue is that we need to re-evaluate the main package set. In order to do that, we need to access it, and there's two ways: the method you originally proposed, and attaching it to the evaluated package set as `__unfix__` with `fix'`.\n\nThat makes sense, I didn't consider that the original proposal just \"fixed\" this issue by re-importing.\n\n"}}
{"actor":{"display_login":"timokau"}}