Skip to content

Commit

Permalink
chore(nix): clean up nix files, avoid ocaml conflicts (#573)
Browse files Browse the repository at this point in the history
  • Loading branch information
anmonteiro authored May 12, 2023
1 parent 9d6ff19 commit f37a015
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 47 deletions.
11 changes: 5 additions & 6 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 7 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,13 @@
} // (flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages."${system}".appendOverlays [
(self: super: { ocamlPackages = super.ocaml-ng.ocamlPackages_4_14; })
(self: super: {
ocamlPackages = super.ocaml-ng.ocamlPackages_4_14.overrideScope' (oself: osuper: {
menhirLib = osuper.menhirLib_20230415;
menhirSdk = osuper.menhirSdk_20230415;
menhir = osuper.menhir_20230415;
});
})
melange-compiler-libs.overlays.default
];
in
Expand All @@ -36,7 +42,6 @@

devShells = {
default = pkgs.callPackage ./nix/shell.nix {
# dream2nix = dream2nix.lib2;
inherit packages;
};
release = pkgs.callPackage ./nix/shell.nix {
Expand Down
31 changes: 19 additions & 12 deletions nix/ci/test.nix
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,23 @@ let
src = super.fetchFromGitHub {
owner = "ocaml";
repo = "dune";
rev = "a08e0f7f8a857b348267b30b10b9297ef881bb4d";
hash = "sha256-MK6hCjbNFIbE/sTR2xuVzrMqtdOIp52QKVuqfmjmwoY=";
rev = "239e6aca68aaa27bc429425b4aab32f4a9ee9bcd";
hash = "sha256-aQbk1YqC62BocL6SNopfJsf8LpxMTvw4KlobPrJJECk=";
};
});

melange-compiler-libs = osuper.melange-compiler-libs.overrideAttrs (_: {
src = super.fetchFromGitHub {
owner = "melange-re";
repo = "melange-compiler-libs";
rev = "575ac4c24b296ea897821f9aaee1146ff258c704";
hash = "sha256-icjQmfRUpo2nexX4XseQLPMhyffIxCftd0LHFW+LOwM=";
rev = "17a06ec6c8a5da27adeb76496ff7fab6c58091f5";
hash = "sha256-EZ8JAeJQMfZQJr9CPwdWVnaa8bHdnr+FiiVbC1hG7oM=";
};
});

menhirLib = osuper.menhirLib_20230415;
menhirSdk = osuper.menhirSdk_20230415;
menhir = osuper.menhir_20230415;
});
})
];
Expand All @@ -48,6 +52,8 @@ let
(builtins.unsafeDiscardStringContext packages.melange.outPath);
in

with ocamlPackages;

stdenv.mkDerivation {
name = "melange-tests-${inputString}";

Expand All @@ -57,7 +63,6 @@ stdenv.mkDerivation {
# the dream of running fixed-output-derivations is dead -- somehow after
# Nix 2.4 it results in `error: unexpected end-of-file`.
# Example: https://github.com/melange-re/melange/runs/4132970590

outputHashMode = "flat";
outputHashAlgo = "sha256";
outputHash = builtins.hashString "sha256" "melange";
Expand All @@ -68,19 +73,21 @@ stdenv.mkDerivation {
phases = [ "unpackPhase" "checkPhase" "installPhase" ];

doCheck = true;
dontDetectOcamlConflicts = true;

nativeBuildInputs = with ocamlPackages; [ ocaml findlib dune ];
buildInputs = [
nativeBuildInputs = [
ocaml
findlib
dune
nodePackages.mocha
packages.melange
packages.reactjs-jsx-ppx
packages.rescript-syntax
ocamlPackages.reason
tree
nodejs
yarn
];
buildInputs = [
packages.melange
packages.reactjs-jsx-ppx
packages.rescript-syntax
];

checkPhase = ''
cat > dune-project <<EOF
Expand Down
23 changes: 11 additions & 12 deletions nix/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
, nodejs
}:

with ocamlPackages;

rec {
melange = ocamlPackages.buildDunePackage {
melange = buildDunePackage {
pname = "melange";
version = "dev";
duneVersion = "3";
Expand Down Expand Up @@ -38,13 +40,13 @@ rec {
nativeCheckInputs = [
tree
nodejs
ocamlPackages.reason
reason
];
checkInputs = with ocamlPackages; [ ounit2 reactjs-jsx-ppx ];
checkInputs = [ ounit2 reactjs-jsx-ppx ];

nativeBuildInputs = with ocamlPackages; [ cppo ];
nativeBuildInputs = [ cppo ];
buildInputs = [ makeWrapper ];
propagatedBuildInputs = with ocamlPackages; [
propagatedBuildInputs = [
dune-build-info
base64
melange-compiler-libs
Expand All @@ -54,7 +56,7 @@ rec {
meta.mainProgram = "melc";
};

rescript-syntax = ocamlPackages.buildDunePackage {
rescript-syntax = buildDunePackage {
pname = "rescript-syntax";
version = "dev";
duneVersion = "3";
Expand All @@ -68,15 +70,12 @@ rec {
];
};

propagatedBuildInputs = with ocamlPackages; [
ppxlib
melange
];
propagatedBuildInputs = [ ppxlib melange ];

meta.mainProgram = "rescript-syntax";
};

reactjs-jsx-ppx = ocamlPackages.buildDunePackage {
reactjs-jsx-ppx = buildDunePackage {
pname = "reactjs-jsx-ppx";
version = "dev";
duneVersion = "3";
Expand All @@ -89,6 +88,6 @@ rec {
"reactjs-jsx-ppx"
];
};
propagatedBuildInputs = with ocamlPackages; [ ppxlib ];
propagatedBuildInputs = [ ppxlib ];
};
}
4 changes: 2 additions & 2 deletions nix/overlay.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ final: prev:
src = prev.fetchFromGitHub {
owner = "ocaml";
repo = "dune";
rev = "a08e0f7f8a857b348267b30b10b9297ef881bb4d";
hash = "sha256-MK6hCjbNFIbE/sTR2xuVzrMqtdOIp52QKVuqfmjmwoY=";
rev = "239e6aca68aaa27bc429425b4aab32f4a9ee9bcd";
hash = "sha256-aQbk1YqC62BocL6SNopfJsf8LpxMTvw4KlobPrJJECk=";
};
});
})).overrideScope' (oself: osuper:
Expand Down
22 changes: 9 additions & 13 deletions nix/shell.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,20 @@ let

in

with ocamlPackages;

mkShell {
dontDetectOcamlConflicts = true;
inputsFrom = lib.attrValues derivations;
nativeBuildInputs = [ ocamlPackages.reason ];
buildInputs = [
inputsFrom = lib.attrValues derivations ++ [ melange-compiler-libs ];
nativeBuildInputs = [
ocamlformat
utop
ocaml-lsp
merlin
python3
nodejs_latest
yarn
nodePackages.mocha
]
++ (with ocamlPackages; [
merlin
ppxlib
utop
ocamlformat
ocaml-lsp
])
++ lib.optionals release-mode [ cacert curl ocamlPackages.dune-release git ];
] ++ lib.optionals release-mode [ cacert curl dune-release git ];
shellHook = ''
PATH=$PWD/_build/install/default/bin:$PATH
'';
Expand Down

0 comments on commit f37a015

Please sign in to comment.