Unverified Commit 4dd3c85a authored by Yt's avatar Yt Committed by GitHub
Browse files

{prisma,prisma-engines}: 5.16.1 -> 5.18.0 (#337521)

parents bf73293a dcbcaee4
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -246,6 +246,8 @@
  and `nodePackages.vscode-json-languageserver-bin` were dropped due to an unmaintained upstream.
  The `vscode-langservers-extracted` package is a maintained drop-in replacement.

- `nodePackages.prisma` has been replaced by `prisma`.

- `fetchNextcloudApp` has been rewritten to use `fetchurl` rather than
  `fetchzip`. This invalidates all existing hashes but you can restore the old
  behavior by passing it `unpack = true`.
+4 −2
Original line number Diff line number Diff line
{ lib
, fetchFromGitHub
, buildNpmPackage
, nodePackages
, prisma
, nix-update-script
}:
let
@@ -18,12 +18,14 @@ buildNpmPackage {
    hash = "sha256-uKOJVZ0GRHo/CYvd/Ix/tq1WDhutRji1tSGdcITsNlo=";
  };

  nativeBuildInputs = [ prisma ];

  preBuild = ''
    # somehow for linux, npm is not finding the prisma package with the
    # packages installed with the lockfile.
    # This generates a prisma version incompatibility warning and is a kludge
    # until the upstream package-lock is modified.
    ${nodePackages.prisma}/bin/prisma generate
    prisma generate
  '';

  npmDepsHash = "sha256-+JbvFMi8xoyxkuL9k96K1Vq0neciCGkkyZUPd15ES2E=";
+101 −0
Original line number Diff line number Diff line
{
  lib,
  fetchFromGitHub,
  stdenv,
  nodejs,
  pnpm_8,
  prisma-engines,
  jq,
  makeWrapper,
  moreutils,
  callPackage,
}:

stdenv.mkDerivation (finalAttrs: {
  pname = "prisma";
  version = "5.18.0";

  src = fetchFromGitHub {
    owner = "prisma";
    repo = "prisma";
    rev = finalAttrs.version;
    hash = "sha256-BLD2nKryigXr03BCgGwb3PnCcBLMyDfSFb9Snj0VPKI=";
  };

  nativeBuildInputs = [
    nodejs
    pnpm_8.configHook
    jq
    makeWrapper
    moreutils
  ];

  pnpmDeps = pnpm_8.fetchDeps {
    inherit (finalAttrs) pname version src;
    hash = "sha256-lgdJk7HCfX3cAvdEI8xG/IVBiLWezdUN0q+e/0LtVUQ=";
  };

  patchPhase = ''
    runHook prePatch

    for package in packages/*; do
      jq --arg version $version '.version = $version' $package/package.json | sponge $package/package.json
    done

    runHook postPatch
  '';

  buildPhase = ''
    runHook preBuild

    pnpm build

    runHook postBuild
  '';

  # FIXME: Use pnpm deploy: https://github.com/pnpm/pnpm/issues/5315
  installPhase = ''
    runHook preInstall

    mkdir -p $out/lib/prisma

    # Fetch CLI workspace dependencies
    deps_json=$(pnpm list --filter ./packages/cli --prod --depth Infinity --json)
    deps=$(jq -r '[.. | strings | select(startswith("link:../")) | sub("^link:../"; "")] | unique[]' <<< "$deps_json")

    # Remove unnecessary external dependencies
    rm -rf node_modules
    pnpm install --offline --ignore-scripts --frozen-lockfile --prod --filter ./packages/cli
    cp -r node_modules $out/lib/prisma

    # Only install cli and its workspace dependencies
    for package in cli $deps; do
      filename=$(npm pack --json ./packages/$package | jq -r '.[].filename')
      mkdir -p $out/lib/prisma/packages/$package
      cp -r packages/$package/node_modules $out/lib/prisma/packages/$package
      tar xf $filename --strip-components=1 -C $out/lib/prisma/packages/$package
    done

    makeWrapper "${lib.getExe nodejs}" "$out/bin/prisma" \
      --add-flags "$out/lib/prisma/packages/cli/build/index.js" \
      --set PRISMA_SCHEMA_ENGINE_BINARY ${prisma-engines}/bin/schema-engine \
      --set PRISMA_QUERY_ENGINE_BINARY ${prisma-engines}/bin/query-engine \
      --set PRISMA_QUERY_ENGINE_LIBRARY ${lib.getLib prisma-engines}/lib/libquery_engine.node

    runHook postInstall
  '';

  dontStrip = true;

  passthru.tests = {
    cli = callPackage ./test-cli.nix { };
  };

  meta = with lib; {
    description = "Next-generation ORM for Node.js and TypeScript";
    homepage = "https://www.prisma.io/";
    license = licenses.asl20;
    maintainers = with maintainers; [ aqrln ];
    platforms = platforms.unix;
  };
})
+17 −9
Original line number Diff line number Diff line
{ lib, pkgs, runCommand, prisma }:
{
  lib,
  runCommand,
  prisma,
  prisma-engines,
  sqlite-interactive,
}:

let
  inherit (prisma) packageName;
  prismaMajorVersion = lib.versions.majorMinor prisma.version;
  enginesMajorVersion = lib.versions.majorMinor pkgs.prisma-engines.version;
  enginesMajorVersion = lib.versions.majorMinor prisma-engines.version;
in

runCommand "${packageName}-tests" {
  nativeBuildInputs = with pkgs; [ prisma sqlite-interactive ];
runCommand "prisma-cli-tests"
  {
    nativeBuildInputs = [
      prisma
      sqlite-interactive
    ];
    meta.timeout = 60;
  }
  ''
@@ -15,7 +23,7 @@ runCommand "${packageName}-tests" {
    cd $out

    if [ "${prismaMajorVersion}" != "${enginesMajorVersion}" ]; then
      echo "nodePackages.prisma in version ${prismaMajorVersion} and prisma-engines in ${enginesMajorVersion}. Major versions must match."
      echo "prisma in version ${prismaMajorVersion} and prisma-engines in ${enginesMajorVersion}. Major versions must match."
      exit 1
    fi

+0 −1
Original line number Diff line number Diff line
@@ -168,7 +168,6 @@
, "prebuild-install"
, "prettier"
, "prettier-plugin-toml"
, "prisma"
, "@prisma/language-server"
, "pscid"
, "pulp"
Loading