aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/tools/pyre/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/pyre/default.nix')
-rw-r--r--nixpkgs/pkgs/development/tools/pyre/default.nix137
1 files changed, 0 insertions, 137 deletions
diff --git a/nixpkgs/pkgs/development/tools/pyre/default.nix b/nixpkgs/pkgs/development/tools/pyre/default.nix
deleted file mode 100644
index 060875924d8..00000000000
--- a/nixpkgs/pkgs/development/tools/pyre/default.nix
+++ /dev/null
@@ -1,137 +0,0 @@
-{ stdenv, fetchFromGitHub, ocamlPackages, writeScript
-, dune, python3, rsync, buck, watchman, sqlite }:
-let
- # Manually set version - the setup script requires
- # hg and git + keeping the .git directory around.
- pyre-version = "0.0.22"; # also change typeshed revision below with $pyre-src/.typeshed-version
- pyre-src = fetchFromGitHub {
- owner = "facebook";
- repo = "pyre-check";
- rev = "v${pyre-version}";
- sha256 = "057vy6zmgwsi0ag9n4m6sszhahmfk2s1ywm36nyfs7w4d0wnk92s";
- };
- versionFile = writeScript "version.ml" ''
- cat > "./version.ml" <<EOF
- open Core
- let build_info () =
- "pyre-nixpkgs ${pyre-version}"
- let version () =
- "${pyre-version}"
-
- let log_version_banner () =
- Log.info "Running as pid: %d" (Pid.to_int (Unix.getpid ()));
- Log.info "Version: %s" (version ());
- Log.info "Build info: %s" (build_info ())
- EOF
- '';
- pyre-bin = stdenv.mkDerivation {
- name = "pyre-${pyre-version}";
-
- src = pyre-src;
-
- buildInputs = with ocamlPackages; [
- ocaml
- findlib
- menhir
- yojson
- core
- sedlex
- ppx_deriving_yojson
- ocamlbuild
- ppxlib
- dune
- ounit
- base64
- sqlite.dev
- # python36Packages.python36Full # TODO
- ];
-
- preBuild = ''
- # build requires HOME to be set
- export HOME=$TMPDIR
-
- # "external" because https://github.com/facebook/pyre-check/pull/8/files
- sed "s/%VERSION%/external/" dune.in > dune
-
- ln -sf ${versionFile} ./scripts/generate-version-number.sh
-
- mkdir $(pwd)/build
- export OCAMLFIND_DESTDIR=$(pwd)/build
- export OCAMLPATH=$OCAMLPATH:$(pwd)/build
- '';
-
- buildFlags = [ "release" ];
-
- doCheck = true;
- # ./scripts/run-python-tests.sh # TODO: once typeshed and python bits are added
-
- # Note that we're not installing the typeshed yet.
- # Improvement for a future version.
- installPhase = ''
- install -D ./_build/default/main.exe $out/bin/pyre.bin
- '';
-
- meta = with stdenv.lib; {
- description = "A performant type-checker for Python 3";
- homepage = https://pyre-check.org;
- license = licenses.mit;
- platforms = ocamlPackages.ocaml.meta.platforms;
- maintainers = with maintainers; [ teh ];
- };
-};
-typeshed = stdenv.mkDerivation {
- pname = "typeshed";
- version = pyre-version;
- src = fetchFromGitHub {
- owner = "python";
- repo = "typeshed";
- rev = "0b49ce75b478fdf283dda5dd1368759ac342dfe2";
- sha256 = "1w5aqbbcfk5ki8n9fgdikkyadjb318ipqyi517s9xnwlzi1jv0fh";
- };
- phases = [ "unpackPhase" "installPhase" ];
- installPhase = "cp -r $src $out";
-};
-in python3.pkgs.buildPythonApplication {
- pname = "pyre-check";
- version = pyre-version;
- src = pyre-src;
- patches = [ ./pyre-bdist-wheel.patch ];
-
- # The build-pypi-package script does some funky stuff with build
- # directories - easier to patch it a bit than to replace it
- # completely though:
- postPatch = ''
- mkdir ./build
- substituteInPlace scripts/build-pypi-package.sh \
- --replace 'NIX_BINARY_FILE' '${pyre-bin}/bin/pyre.bin' \
- --replace 'BUILD_ROOT="$(mktemp -d)"' "BUILD_ROOT=$PWD/build"
- for file in client/pyre.py client/commands/initialize.py client/commands/tests/initialize_test.py; do
- substituteInPlace "$file" \
- --replace '"watchman"' '"${watchman}/bin/watchman"'
- done
- substituteInPlace client/buck.py \
- --replace '"buck"' '"${buck}/bin/buck"'
- substituteInPlace client/tests/buck_test.py \
- --replace '"buck"' '"${buck}/bin/buck"'
- '';
-
- buildInputs = [ pyre-bin ];
- nativeBuildInputs = [ rsync ]; # only required for build-pypi-package.sh
- propagatedBuildInputs = with python3.pkgs; [
- docutils
- typeshed
- click-log
- ipython
- sqlalchemy
- munch
- xxhash
- ujson
- ];
- buildPhase = ''
- bash scripts/build-pypi-package.sh --version ${pyre-version} --bundle-typeshed ${typeshed}
- cp -r build/dist dist
- '';
- checkPhase = ''
- bash scripts/run-python-tests.sh
- '';
-}