Unverified Commit 0cdc5260 authored by Fabián Heredia Montiel's avatar Fabián Heredia Montiel Committed by GitHub
Browse files

deno: 1.46.3 -> 2.0.0, deno_1: init at 1.46.3 (#347484)

parents fd9d4b60 dfce2bc3
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -205,6 +205,8 @@

- `grafana` has been updated to version 11.1. This version doesn't support setting `http_addr` to a hostname anymore, an IP address is expected.

- `deno` has been updated to v2 which has breaking changes. Upstream will be abandoning v1 soon but for now you can use `deno_1` if you are yet to migrate (will be removed prior to cutting a final 24.11 release).

- `knot-dns` has been updated to version 3.4.x. Check the [migration guide](https://www.knot-dns.cz/docs/latest/html/migration.html#upgrade-3-3-x-to-3-4-x) for breaking changes.

- `services.kubernetes.kubelet.clusterDns` now accepts a list of DNS resolvers rather than a single string, bringing the module more in line with the upstream Kubelet configuration schema.
+12 −0
Original line number Diff line number Diff line
# auto-generated file -- DO NOT EDIT!
{ fetchLibrustyV8 }:

fetchLibrustyV8 {
  version = "0.105.0";
  shas = {
    x86_64-linux = "sha256-9yON4DNPxm4IUZSLZp9VZtzSRPPWX1tEuQLVJmN8cLs=";
    aarch64-linux = "sha256-5vAjw2vimjCHKPxjIp5vcwMCWUUDYVlk4QyOeEI0DLY=";
    x86_64-darwin = "sha256-o4WRkg4ptiJTNMkorn5K+P8xOJwpChM5PqkZCjP076g=";
    aarch64-darwin = "sha256-ZuWBnvxu1PgDtjtguxtj3BhFO01AChlbjAS0kZUws3A=";
  };
}
+118 −0
Original line number Diff line number Diff line
{
  stdenv,
  lib,
  callPackage,
  fetchFromGitHub,
  rustPlatform,
  cmake,
  protobuf,
  installShellFiles,
  libiconv,
  darwin,
  librusty_v8 ? callPackage ./librusty_v8.nix {
    inherit (callPackage ../fetchers.nix { }) fetchLibrustyV8;
  },
}:
rustPlatform.buildRustPackage rec {
  pname = "deno";
  version = "1.46.3";

  src = fetchFromGitHub {
    owner = "denoland";
    repo = "deno";
    rev = "refs/tags/v${version}";
    hash = "sha256-AM6SjcIHo6Koxcnznhkv3cXoKaMy2TEVpiWe/bczDuA=";
  };

  cargoHash = "sha256-D+CZpb6OTzM5Il0k8GQB7qSONy4myE5yKlaSkLLqHT8=";

  postPatch = ''
    # upstream uses lld on aarch64-darwin for faster builds
    # within nix lld looks for CoreFoundation rather than CoreFoundation.tbd and fails
    substituteInPlace .cargo/config.toml --replace "-fuse-ld=lld " ""
  '';

  # uses zlib-ng but can't dynamically link yet
  # https://github.com/rust-lang/libz-sys/issues/158
  nativeBuildInputs = [
    # required by libz-ng-sys crate
    cmake
    # required by deno_kv crate
    protobuf
    installShellFiles
  ];
  buildInputs = lib.optionals stdenv.isDarwin (
    [
      libiconv
      darwin.libobjc
    ]
    ++ (with darwin.apple_sdk_11_0.frameworks; [
      Security
      CoreServices
      Metal
      MetalPerformanceShaders
      Foundation
      QuartzCore
    ])
  );

  buildAndTestSubdir = "cli";

  # work around "error: unknown warning group '-Wunused-but-set-parameter'"
  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unknown-warning-option";
  # The v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
  # To avoid this we pre-download the file and export it via RUSTY_V8_ARCHIVE
  env.RUSTY_V8_ARCHIVE = librusty_v8;

  # Tests have some inconsistencies between runs with output integration tests
  # Skipping until resolved
  doCheck = false;

  preInstall = ''
    find ./target -name libswc_common${stdenv.hostPlatform.extensions.sharedLibrary} -delete
  '';

  postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
    installShellCompletion --cmd deno \
      --bash <($out/bin/deno completions bash) \
      --fish <($out/bin/deno completions fish) \
      --zsh <($out/bin/deno completions zsh)
  '';

  doInstallCheck = true;
  installCheckPhase = ''
    runHook preInstallCheck
    $out/bin/deno --help
    $out/bin/deno --version | grep "deno ${version}"
    runHook postInstallCheck
  '';

  passthru.tests = callPackage ./tests { };

  meta = with lib; {
    homepage = "https://deno.land/";
    changelog = "https://github.com/denoland/deno/releases/tag/v${version}";
    description = "Secure runtime for JavaScript and TypeScript";
    longDescription = ''
      Deno aims to be a productive and secure scripting environment for the modern programmer.
      Deno will always be distributed as a single executable.
      Given a URL to a Deno program, it is runnable with nothing more than the ~15 megabyte zipped executable.
      Deno explicitly takes on the role of both runtime and package manager.
      It uses a standard browser-compatible protocol for loading modules: URLs.
      Among other things, Deno is a great replacement for utility scripts that may have been historically written with
      bash or python.
    '';
    license = licenses.mit;
    mainProgram = "deno";
    maintainers = with maintainers; [ jk ];
    platforms = [
      "x86_64-linux"
      "aarch64-linux"
      "x86_64-darwin"
      "aarch64-darwin"
    ];
    # NOTE: `aligned_alloc` error on darwin SDK < 10.15. Can't do usual overrideSDK with rust toolchain in current implementation.
    # Should be fixed with darwin SDK refactor and can be revisited.
    badPlatforms = [ "x86_64-darwin" ];
  };
}
+1 −0
Original line number Diff line number Diff line
console.log(1 + 1)
+79 −0
Original line number Diff line number Diff line
{
  deno,
  runCommand,
  lib,
  testers,
}:
let
  testDenoRun =
    name:
    {
      args ? "",
      dir ? ./. + "/${name}",
      file ? "index.ts",
      expected ? "",
      expectFailure ? false,
    }:
    let
      command = "deno run ${args} ${dir}/${file}";
    in
    runCommand "deno-test-${name}"
      {
        nativeBuildInputs = [ deno ];
        meta.timeout = 60;
      }
      ''
        HOME=$(mktemp -d)
        if output=$(${command} 2>&1); then
          if [[ $output =~ '${expected}' ]]; then
            echo "Test '${name}' passed"
            touch $out
          else
            echo -n ${lib.escapeShellArg command} >&2
            echo " output did not match what was expected." >&2
            echo "The expected was:" >&2
            echo '${expected}' >&2
            echo "The output was:" >&2
            echo "$output" >&2
            exit 1
          fi
        else
          if [[ "${toString expectFailure}" == "1" ]]; then
            echo "Test '${name}' failed as expected"
            touch $out
            exit 0
          fi
          echo -n ${lib.escapeShellArg command} >&2
          echo " returned a non-zero exit code." >&2
          echo "$output" >&2
          exit 1
        fi
      '';
in
(lib.mapAttrs testDenoRun {
  basic = {
    dir = ./.;
    file = "basic.ts";
    expected = "2";
  };
  import-json = {
    expected = "hello from JSON";
  };
  import-ts = {
    expected = "hello from ts";
  };
  read-file = {
    args = "--allow-read";
    expected = "hello from a file";
  };
  fail-read-file = {
    expectFailure = true;
    dir = ./read-file;
  };
})
// {
  version = testers.testVersion {
    package = deno;
    command = "deno --version";
  };
}
Loading