mirror of
https://github.com/denoland/deno.git
synced 2025-03-03 17:34:47 -05:00
feat(init): use jsr specifier for @std/assert (#23073)
This commit changes "deno init" subcommand to use "jsr:" specifier for standard library "assert" module. It is unversioned, but we will change it to `@^1` once `@std/assert` release version 1.0. This allows us to start decoupling `deno` and `deno_std` release. The release scripts have been updated to take that into account.
This commit is contained in:
parent
624e3a04e7
commit
0e4d1cb5f9
12 changed files with 53 additions and 36 deletions
|
@ -1,5 +0,0 @@
|
||||||
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
|
||||||
|
|
||||||
// WARNING: Ensure this is the only deno_std version reference as this
|
|
||||||
// is automatically updated by the version bump workflow.
|
|
||||||
pub const CURRENT_STD_URL_STR: &str = "https://deno.land/std@0.220.0/";
|
|
|
@ -4,7 +4,6 @@ mod args;
|
||||||
mod auth_tokens;
|
mod auth_tokens;
|
||||||
mod cache;
|
mod cache;
|
||||||
mod cdp;
|
mod cdp;
|
||||||
mod deno_std;
|
|
||||||
mod emit;
|
mod emit;
|
||||||
mod errors;
|
mod errors;
|
||||||
mod factory;
|
mod factory;
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
use crate::args::InitFlags;
|
use crate::args::InitFlags;
|
||||||
use crate::colors;
|
use crate::colors;
|
||||||
use crate::deno_std;
|
|
||||||
use deno_core::anyhow::Context;
|
use deno_core::anyhow::Context;
|
||||||
use deno_core::error::AnyError;
|
use deno_core::error::AnyError;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
@ -46,9 +45,11 @@ pub fn init_project(init_flags: InitFlags) -> Result<(), AnyError> {
|
||||||
let main_ts = include_str!("./templates/main.ts");
|
let main_ts = include_str!("./templates/main.ts");
|
||||||
create_file(&dir, "main.ts", main_ts)?;
|
create_file(&dir, "main.ts", main_ts)?;
|
||||||
|
|
||||||
let main_test_ts = include_str!("./templates/main_test.ts")
|
create_file(
|
||||||
.replace("{CURRENT_STD_URL}", deno_std::CURRENT_STD_URL_STR);
|
&dir,
|
||||||
create_file(&dir, "main_test.ts", &main_test_ts)?;
|
"main_test.ts",
|
||||||
|
include_str!("./templates/main_test.ts"),
|
||||||
|
)?;
|
||||||
create_file(&dir, "deno.json", include_str!("./templates/deno.json"))?;
|
create_file(&dir, "deno.json", include_str!("./templates/deno.json"))?;
|
||||||
|
|
||||||
info!("✅ {}", colors::green("Project initialized"));
|
info!("✅ {}", colors::green("Project initialized"));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { assertEquals } from "{CURRENT_STD_URL}assert/mod.ts";
|
import { assertEquals } from "jsr:@std/assert";
|
||||||
import { add } from "./main.ts";
|
import { add } from "./main.ts";
|
||||||
|
|
||||||
Deno.test(function addTest() {
|
Deno.test(function addTest() {
|
||||||
|
|
|
@ -6,7 +6,7 @@ use util::TestContextBuilder;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn init_subcommand_without_dir() {
|
fn init_subcommand_without_dir() {
|
||||||
let context = TestContextBuilder::new().use_temp_cwd().build();
|
let context = TestContextBuilder::for_jsr().use_temp_cwd().build();
|
||||||
let cwd = context.temp_dir().path();
|
let cwd = context.temp_dir().path();
|
||||||
|
|
||||||
let output = context.new_command().args("init").split_output().run();
|
let output = context.new_command().args("init").split_output().run();
|
||||||
|
@ -46,7 +46,7 @@ fn init_subcommand_without_dir() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn init_subcommand_with_dir_arg() {
|
fn init_subcommand_with_dir_arg() {
|
||||||
let context = TestContextBuilder::new().use_temp_cwd().build();
|
let context = TestContextBuilder::for_jsr().use_temp_cwd().build();
|
||||||
let cwd = context.temp_dir().path();
|
let cwd = context.temp_dir().path();
|
||||||
|
|
||||||
let output = context
|
let output = context
|
||||||
|
@ -92,7 +92,7 @@ fn init_subcommand_with_dir_arg() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn init_subcommand_with_quiet_arg() {
|
fn init_subcommand_with_quiet_arg() {
|
||||||
let context = TestContextBuilder::new().use_temp_cwd().build();
|
let context = TestContextBuilder::for_jsr().use_temp_cwd().build();
|
||||||
let cwd = context.temp_dir().path();
|
let cwd = context.temp_dir().path();
|
||||||
|
|
||||||
let output = context
|
let output = context
|
||||||
|
|
9
tests/testdata/jsr/registry/@std/assert/0.220.1/assert_equals.ts
vendored
Normal file
9
tests/testdata/jsr/registry/@std/assert/0.220.1/assert_equals.ts
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
// deno-lint-ignore-file
|
||||||
|
export function assertEquals<T>(
|
||||||
|
actual: T,
|
||||||
|
expected: T,
|
||||||
|
msg?: string,
|
||||||
|
options: { formatter?: (value: unknown) => string } = {},
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
20
tests/testdata/jsr/registry/@std/assert/0.220.1/mod.ts
vendored
Normal file
20
tests/testdata/jsr/registry/@std/assert/0.220.1/mod.ts
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
||||||
|
|
||||||
|
/** A library of assertion functions.
|
||||||
|
* If the assertion is false an `AssertionError` will be thrown which will
|
||||||
|
* result in pretty-printed diff of failing assertion.
|
||||||
|
*
|
||||||
|
* This module is browser compatible, but do not rely on good formatting of
|
||||||
|
* values for AssertionError messages in browsers.
|
||||||
|
*
|
||||||
|
* ```ts
|
||||||
|
* import { assert } from "@std/assert/assert";
|
||||||
|
*
|
||||||
|
* assert("I am truthy"); // Doesn't throw
|
||||||
|
* assert(false); // Throws `AssertionError`
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @module
|
||||||
|
*/
|
||||||
|
|
||||||
|
export * from "./assert_equals.ts";
|
6
tests/testdata/jsr/registry/@std/assert/0.220.1_meta.json
vendored
Normal file
6
tests/testdata/jsr/registry/@std/assert/0.220.1_meta.json
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"exports": {
|
||||||
|
".": "./mod.ts",
|
||||||
|
"./assert_equals": "./assert_equals.ts"
|
||||||
|
}
|
||||||
|
}
|
8
tests/testdata/jsr/registry/@std/assert/meta.json
vendored
Normal file
8
tests/testdata/jsr/registry/@std/assert/meta.json
vendored
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"scope": "std",
|
||||||
|
"name": "assert",
|
||||||
|
"latest": "0.220.1",
|
||||||
|
"versions": {
|
||||||
|
"0.220.1": {}
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,10 +26,6 @@ for (const crate of workspace.getCliDependencyCrates()) {
|
||||||
await crate.increment("minor");
|
await crate.increment("minor");
|
||||||
}
|
}
|
||||||
|
|
||||||
// update the std version used in the code
|
|
||||||
$.logStep("Updating std version...");
|
|
||||||
await updateStdVersion();
|
|
||||||
|
|
||||||
// update the lock file
|
// update the lock file
|
||||||
await workspace.getCliCrate().cargoUpdate("--workspace");
|
await workspace.getCliCrate().cargoUpdate("--workspace");
|
||||||
|
|
||||||
|
@ -98,21 +94,6 @@ async function getGitLog() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function updateStdVersion() {
|
|
||||||
const compatFilePath = cliCrate.folderPath.join("deno_std.rs");
|
|
||||||
const text = await compatFilePath.readText();
|
|
||||||
const versionRe = /std@([0-9]+\.[0-9]+\.[0-9]+)/;
|
|
||||||
const stdVersionText = versionRe.exec(text)?.[1];
|
|
||||||
if (stdVersionText == null) {
|
|
||||||
throw new Error(`Could not find the deno_std version in ${compatFilePath}`);
|
|
||||||
}
|
|
||||||
const stdVersion = semver.parse(stdVersionText)!;
|
|
||||||
const newStdVersion = stdVersion.increment("minor");
|
|
||||||
await compatFilePath.writeText(
|
|
||||||
text.replace(versionRe, `std@${newStdVersion}`),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function bumpCiCacheVersion() {
|
async function bumpCiCacheVersion() {
|
||||||
const generateScript = workspace.repo.folderPath.join(
|
const generateScript = workspace.repo.folderPath.join(
|
||||||
".github/workflows/ci.generate.ts",
|
".github/workflows/ci.generate.ts",
|
||||||
|
|
|
@ -36,7 +36,6 @@ function getPrBody() {
|
||||||
`Please ensure:\n` +
|
`Please ensure:\n` +
|
||||||
`- [ ] Target branch is correct (\`vX.XX\` if a patch release, \`main\` if minor)\n` +
|
`- [ ] Target branch is correct (\`vX.XX\` if a patch release, \`main\` if minor)\n` +
|
||||||
`- [ ] Crate versions are bumped correctly\n` +
|
`- [ ] Crate versions are bumped correctly\n` +
|
||||||
`- [ ] deno_std version is incremented in the code (see \`cli/deno_std.rs\`)\n` +
|
|
||||||
`- [ ] Releases.md is updated correctly (think relevancy and remove reverts)\n\n` +
|
`- [ ] Releases.md is updated correctly (think relevancy and remove reverts)\n\n` +
|
||||||
`To make edits to this PR:\n` +
|
`To make edits to this PR:\n` +
|
||||||
"```shell\n" +
|
"```shell\n" +
|
||||||
|
|
|
@ -101,8 +101,7 @@ verify on GitHub that everything looks correct.
|
||||||
1. Checkout the branch the release is being made on.
|
1. Checkout the branch the release is being made on.
|
||||||
2. Manually run `./tools/release/01_bump_crate_versions.ts`
|
2. Manually run `./tools/release/01_bump_crate_versions.ts`
|
||||||
1. Ensure the crate versions were bumped correctly
|
1. Ensure the crate versions were bumped correctly
|
||||||
2. Ensure deno_std version was updated correctly in `cli/deno_std.rs`
|
2. Ensure `Releases.md` was updated correctly
|
||||||
3. Ensure `Releases.md` was updated correctly
|
|
||||||
3. Open a PR with the changes and continue with the steps below.
|
3. Open a PR with the changes and continue with the steps below.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue