-
-
Notifications
You must be signed in to change notification settings - Fork 13.7k
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
graphql-cohttp: ocaml-crunch
-> crunch
#170664
base: master
Are you sure you want to change the base?
Conversation
@@ -10,7 +10,7 @@ buildDunePackage rec { | |||
|
|||
useDune2 = true; | |||
|
|||
nativeBuildInputs = [ ocaml-crunch ]; | |||
nativeBuildInputs = [ crunch ]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nativeBuildInputs = [ crunch ]; | |
nativeBuildInputs = [ crunch.bin ]; |
Not tested.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see where is the magic but it seems superfluous #213222 (comment)
Also what is the interest of this change? |
In a project that depends on |
|
Maybe I should have phrased it better. |
The same happens with |
The issue is also in the other sense: ocaml5.0.0-mirage-block-unix-2.14.2 depends on opaline which is build by default with ocaml4.14 Most package that use dune use the dune of ocamlPackages. So this change look good. Dune is defined inside ocamlPackages, could we define opaline the same way so we can avoid double inclusion ? I understand that opaline is top-level package because the behavior doesn't depends on ocaml version but it does imply more package to be build which is not specially optimal. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMHO the current design is strictly better.
Why? |
See the globally pinned issue: And opaline take a package set
Unless I am misunderstanding we will need to change the current design. It is either non explicit (so against the goal of nix ?), non-cross compilation friendly. One advantage of the current design is that only one version is built by hydra, so one variant of ocaml get also cached by hydra. In the described scenario we will need to build another variant (ocamlPackages_4_x.ocaml). So we are storing two compiler to avoid rebuilding a 2Mo package that should be quick to compile (only fives .ml for ocaml-crunch and one for opaline). Re-building should be as fast as fetching ocaml-crunch/opaline and should be more space efficient. We can keep the top-level attribute (like dune) for binary cache entry so we get the best of both world. |
Why not? The |
Ah my bad It is accessible from top level so it get a binary cache entry and packages in ocamlPackages sub level doesn't get cached. Ok updated my argument. I still think this change is a good thing but I think the correct patch is to find why it keep reference on ocaml used to build it. |
Description of changes
Use
crunch
from the current scope of packages rather than a global one that might import another OCaml version.Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)nixos/doc/manual/md-to-db.sh
to update generated release notes