Skip to content

Commit

Permalink
pyre: init at 0.0.8 (#43212)
Browse files Browse the repository at this point in the history
  • Loading branch information
teh authored and xeji committed Jul 10, 2018
1 parent 60629ce commit 17fe19f
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 0 deletions.
71 changes: 71 additions & 0 deletions pkgs/development/tools/pyre/default.nix
@@ -0,0 +1,71 @@
{ stdenv, fetchFromGitHub, ocamlPackages, makeWrapper, writeScript }:
let
# Manually set version - the setup script requires
# hg and git + keeping the .git directory around.
version = "0.0.8";
versionFile = writeScript "version.ml" ''
cat > "./version.ml" <<EOF
let build_info () =
"pyre-nixpkgs ${version}"
let version () =
"${version}"
EOF
'';
in stdenv.mkDerivation {
name = "pyre-${version}";

src = fetchFromGitHub {
owner = "facebook";
repo = "pyre-check";
rev = "v${version}";
sha256 = "0c4km27xnzsqcqvjqxmqak37x473z6azlbldy7f05ghkms7mchrw";
};

nativeBuildInputs = [ makeWrapper ];

buildInputs = with ocamlPackages; [
ocaml
findlib
menhir
yojson
core
sedlex
ppx_deriving_yojson
ocamlbuild
ppxlib
];

buildPhase = ''
# build requires HOME to be set
export HOME=.
# "external" because https://github.com/facebook/pyre-check/pull/8/files
sed "s/%VERSION%/external ${version}/" Makefile.template > Makefile
cp ${versionFile} ./scripts/generate-version-number.sh
mkdir $(pwd)/build
export OCAMLFIND_DESTDIR=$(pwd)/build
export OCAMLPATH=$OCAMLPATH:$(pwd)/build
make release
'';

checkPhase = ''
make test
'';

# Note that we're not installing the typeshed yet.
# Improvement for a future version.
installPhase = ''
mkdir -p $out/bin
cp _build/all/main.native $out/bin/pyre
'';

meta = with stdenv.lib; {
description = "A performant type-checker for Python 3";
homepage = https://pyre-check.org;
license = licenses.mit;
platforms = with platforms; linux;
maintainers = with maintainers; [ teh ];
};
}
4 changes: 4 additions & 0 deletions pkgs/top-level/all-packages.nix
Expand Up @@ -6579,6 +6579,10 @@ with pkgs;
ocamlPackages = ocaml-ng.ocamlPackages_4_06;
};

pyre = callPackage ../development/tools/pyre {
ocamlPackages = ocaml-ng.ocamlPackages_4_06;
};

dotnetPackages = recurseIntoAttrs (callPackage ./dotnet-packages.nix {});

glslang = callPackage ../development/compilers/glslang { };
Expand Down

0 comments on commit 17fe19f

Please sign in to comment.