deno: 1.46.3 -> 2.0.0
Updates deno to v2. Slight refactor of fetcher code for grabbing librusty_v8. Updated the update scripts to use new Deno v2 interfaces and pull latest toml dependency from jsr rather than the deno.land registry. Added release note.
This commit is contained in:
parent
e57567d326
commit
43984407b5
@ -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.
|
||||
|
||||
- `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.
|
||||
|
21
pkgs/by-name/de/deno/fetchers.nix
Normal file
21
pkgs/by-name/de/deno/fetchers.nix
Normal file
@ -0,0 +1,21 @@
|
||||
# not a stable interface, do not reference outside the deno package but make a
|
||||
# copy if you need
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
}:
|
||||
|
||||
{
|
||||
fetchLibrustyV8 =
|
||||
args:
|
||||
fetchurl {
|
||||
name = "librusty_v8-${args.version}";
|
||||
url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a.gz";
|
||||
sha256 = args.shas.${stdenv.hostPlatform.system};
|
||||
meta = {
|
||||
inherit (args) version;
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
};
|
||||
}
|
@ -1,23 +1,12 @@
|
||||
# auto-generated file -- DO NOT EDIT!
|
||||
{ lib, stdenv, fetchurl }:
|
||||
{ fetchLibrustyV8 }:
|
||||
|
||||
let
|
||||
fetch_librusty_v8 = args: fetchurl {
|
||||
name = "librusty_v8-${args.version}";
|
||||
url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a.gz";
|
||||
sha256 = args.shas.${stdenv.hostPlatform.system};
|
||||
meta = {
|
||||
inherit (args) version;
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
};
|
||||
in
|
||||
fetch_librusty_v8 {
|
||||
version = "0.105.0";
|
||||
fetchLibrustyV8 {
|
||||
version = "0.106.0";
|
||||
shas = {
|
||||
x86_64-linux = "sha256-9yON4DNPxm4IUZSLZp9VZtzSRPPWX1tEuQLVJmN8cLs=";
|
||||
aarch64-linux = "sha256-5vAjw2vimjCHKPxjIp5vcwMCWUUDYVlk4QyOeEI0DLY=";
|
||||
x86_64-darwin = "sha256-o4WRkg4ptiJTNMkorn5K+P8xOJwpChM5PqkZCjP076g=";
|
||||
aarch64-darwin = "sha256-ZuWBnvxu1PgDtjtguxtj3BhFO01AChlbjAS0kZUws3A=";
|
||||
x86_64-linux = "sha256-jLYl/CJp2Z+Ut6qZlh6u+CtR8KN+ToNTB+72QnVbIKM=";
|
||||
aarch64-linux = "sha256-uAkBMg6JXA+aILd8TzDtuaEdM3Axiw43Ad5tZzxNt5w=";
|
||||
x86_64-darwin = "sha256-60aR0YvQT8KyacY8J3fWKZcf9vny51VUB19NVpurS/A=";
|
||||
aarch64-darwin = "sha256-pd/I6Mclj2/r/uJTIywnolPKYzeLu1c28d/6D56vkzQ=";
|
||||
};
|
||||
}
|
||||
|
@ -9,20 +9,26 @@
|
||||
installShellFiles,
|
||||
libiconv,
|
||||
darwin,
|
||||
librusty_v8 ? callPackage ./librusty_v8.nix { },
|
||||
librusty_v8 ? callPackage ./librusty_v8.nix {
|
||||
inherit (callPackage ./fetchers.nix { }) fetchLibrustyV8;
|
||||
},
|
||||
}:
|
||||
|
||||
let
|
||||
canExecute = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "deno";
|
||||
version = "1.46.3";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "denoland";
|
||||
repo = "deno";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-AM6SjcIHo6Koxcnznhkv3cXoKaMy2TEVpiWe/bczDuA=";
|
||||
hash = "sha256-3PfAjn2zWgxJOYgKwR7lvXu+rIENIHBMPwMM6dWNgR4=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-D+CZpb6OTzM5Il0k8GQB7qSONy4myE5yKlaSkLLqHT8=";
|
||||
cargoHash = "sha256-3r5B9yWXKO/8ah+Etflws8RnlRTAdaaC5HZMlZduyHE=";
|
||||
|
||||
postPatch = ''
|
||||
# upstream uses lld on aarch64-darwin for faster builds
|
||||
@ -54,14 +60,13 @@ rustPlatform.buildRustPackage rec {
|
||||
])
|
||||
);
|
||||
|
||||
# work around "error: unknown warning group '-Wunused-but-set-parameter'"
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unknown-warning-option";
|
||||
|
||||
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
|
||||
RUSTY_V8_ARCHIVE = librusty_v8;
|
||||
env.RUSTY_V8_ARCHIVE = librusty_v8;
|
||||
|
||||
# Tests have some inconsistencies between runs with output integration tests
|
||||
# Skipping until resolved
|
||||
@ -71,15 +76,15 @@ rustPlatform.buildRustPackage rec {
|
||||
find ./target -name libswc_common${stdenv.hostPlatform.extensions.sharedLibrary} -delete
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
postInstall = lib.optionalString (canExecute) ''
|
||||
installShellCompletion --cmd deno \
|
||||
--bash <($out/bin/deno completions bash) \
|
||||
--fish <($out/bin/deno completions fish) \
|
||||
--zsh <($out/bin/deno completions zsh)
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
doInstallCheck = canExecute;
|
||||
installCheckPhase = lib.optionalString (canExecute) ''
|
||||
runHook preInstallCheck
|
||||
$out/bin/deno --help
|
||||
$out/bin/deno --version | grep "deno ${version}"
|
||||
|
@ -1,43 +1,54 @@
|
||||
{ deno, runCommand, lib, testers }:
|
||||
{
|
||||
deno,
|
||||
runCommand,
|
||||
lib,
|
||||
testers,
|
||||
}:
|
||||
let
|
||||
testDenoRun =
|
||||
name:
|
||||
{ args ? ""
|
||||
, dir ? ./. + "/${name}"
|
||||
, file ? "index.ts"
|
||||
, expected ? ""
|
||||
, expectFailure ? false
|
||||
{
|
||||
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
|
||||
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 " output did not match what was expected." >&2
|
||||
echo "The expected was:" >&2
|
||||
echo '${expected}' >&2
|
||||
echo "The output was:" >&2
|
||||
echo " returned a non-zero exit code." >&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 = {
|
||||
@ -59,8 +70,8 @@ in
|
||||
expectFailure = true;
|
||||
dir = ./read-file;
|
||||
};
|
||||
}) //
|
||||
{
|
||||
})
|
||||
// {
|
||||
version = testers.testVersion {
|
||||
package = deno;
|
||||
command = "deno --version";
|
||||
|
@ -1,2 +1,2 @@
|
||||
import file from "./data.json" assert { type: "json" };
|
||||
import file from "./data.json" with { type: "json" };
|
||||
console.log(file.msg);
|
||||
|
@ -3,15 +3,11 @@ interface GHRelease {
|
||||
}
|
||||
|
||||
const decode = (buffer: Uint8Array) => new TextDecoder("utf-8").decode(buffer);
|
||||
const decodeTrim = (b: Uint8Array) => decode(b).trimEnd();
|
||||
export const run = async (command: string, args: string[]) => {
|
||||
const cmd = Deno.run({
|
||||
cmd: [command, ...args],
|
||||
stdout: "piped",
|
||||
stderr: "piped",
|
||||
});
|
||||
if (!(await cmd.status()).success) {
|
||||
const error = await cmd.stderrOutput().then(decodeTrim);
|
||||
const cmd = new Deno.Command(command, { args });
|
||||
const { code, stdout, stderr } = await cmd.output();
|
||||
if (code !== 0) {
|
||||
const error = decode(stderr).trimEnd();
|
||||
// Known error we can ignore
|
||||
if (error.includes("'allow-unsafe-native-code-during-evaluation'")) {
|
||||
// Extract the target sha256 out of the error
|
||||
@ -26,7 +22,7 @@ export const run = async (command: string, args: string[]) => {
|
||||
}
|
||||
throw new Error(error);
|
||||
}
|
||||
return cmd.output().then(decodeTrim);
|
||||
return decode(stdout).trimEnd();
|
||||
};
|
||||
|
||||
// Exports
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as toml from "https://deno.land/std@0.202.0/toml/mod.ts";
|
||||
import * as toml from "jsr:@std/toml@1.0.1";
|
||||
import { getExistingVersion, logger, run, write } from "./common.ts";
|
||||
|
||||
const log = logger("librusty_v8");
|
||||
@ -40,22 +40,15 @@ fetchurl {
|
||||
|
||||
const templateDeps = (version: string, deps: PrefetchResult[]) =>
|
||||
`# auto-generated file -- DO NOT EDIT!
|
||||
{ lib, stdenv, fetchurl }:
|
||||
{ fetchLibrustyV8 }:
|
||||
|
||||
let
|
||||
fetch_librusty_v8 = args: fetchurl {
|
||||
name = "librusty_v8-\${args.version}";
|
||||
url = "https://github.com/denoland/rusty_v8/releases/download/v\${args.version}/librusty_v8_release_\${stdenv.hostPlatform.rust.rustcTarget}.a.gz";
|
||||
sha256 = args.shas.\${stdenv.hostPlatform.system};
|
||||
meta = {
|
||||
inherit (args) version;
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
};
|
||||
in
|
||||
fetch_librusty_v8 {
|
||||
fetchLibrustyV8 {
|
||||
version = "${version}";
|
||||
shas = {
|
||||
x86_64-linux = "sha256-jLYl/CJp2Z+Ut6qZlh6u+CtR8KN+ToNTB+72QnVbIKM=";
|
||||
aarch64-linux = "sha256-uAkBMg6JXA+aILd8TzDtuaEdM3Axiw43Ad5tZzxNt5w=";
|
||||
x86_64-darwin = "sha256-60aR0YvQT8KyacY8J3fWKZcf9vny51VUB19NVpurS/A=";
|
||||
aarch64-darwin = "sha256-pd/I6Mclj2/r/uJTIywnolPKYzeLu1c28d/6D56vkzQ=";
|
||||
${deps.map(({ arch, sha256 }) => ` ${arch.nix} = "${sha256}";`).join("\n")}
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user