mirror of
https://github.com/denoland/deno.git
synced 2025-01-11 08:33:43 -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 cache;
|
||||
mod cdp;
|
||||
mod deno_std;
|
||||
mod emit;
|
||||
mod errors;
|
||||
mod factory;
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
use crate::args::InitFlags;
|
||||
use crate::colors;
|
||||
use crate::deno_std;
|
||||
use deno_core::anyhow::Context;
|
||||
use deno_core::error::AnyError;
|
||||
use log::info;
|
||||
|
@ -46,9 +45,11 @@ pub fn init_project(init_flags: InitFlags) -> Result<(), AnyError> {
|
|||
let main_ts = include_str!("./templates/main.ts");
|
||||
create_file(&dir, "main.ts", main_ts)?;
|
||||
|
||||
let main_test_ts = include_str!("./templates/main_test.ts")
|
||||
.replace("{CURRENT_STD_URL}", deno_std::CURRENT_STD_URL_STR);
|
||||
create_file(&dir, "main_test.ts", &main_test_ts)?;
|
||||
create_file(
|
||||
&dir,
|
||||
"main_test.ts",
|
||||
include_str!("./templates/main_test.ts"),
|
||||
)?;
|
||||
create_file(&dir, "deno.json", include_str!("./templates/deno.json"))?;
|
||||
|
||||
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";
|
||||
|
||||
Deno.test(function addTest() {
|
||||
|
|
|
@ -6,7 +6,7 @@ use util::TestContextBuilder;
|
|||
|
||||
#[test]
|
||||
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 output = context.new_command().args("init").split_output().run();
|
||||
|
@ -46,7 +46,7 @@ fn init_subcommand_without_dir() {
|
|||
|
||||
#[test]
|
||||
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 output = context
|
||||
|
@ -92,7 +92,7 @@ fn init_subcommand_with_dir_arg() {
|
|||
|
||||
#[test]
|
||||
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 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");
|
||||
}
|
||||
|
||||
// update the std version used in the code
|
||||
$.logStep("Updating std version...");
|
||||
await updateStdVersion();
|
||||
|
||||
// update the lock file
|
||||
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() {
|
||||
const generateScript = workspace.repo.folderPath.join(
|
||||
".github/workflows/ci.generate.ts",
|
||||
|
|
|
@ -36,7 +36,6 @@ function getPrBody() {
|
|||
`Please ensure:\n` +
|
||||
`- [ ] Target branch is correct (\`vX.XX\` if a patch release, \`main\` if minor)\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` +
|
||||
`To make edits to this PR:\n` +
|
||||
"```shell\n" +
|
||||
|
|
|
@ -101,8 +101,7 @@ verify on GitHub that everything looks correct.
|
|||
1. Checkout the branch the release is being made on.
|
||||
2. Manually run `./tools/release/01_bump_crate_versions.ts`
|
||||
1. Ensure the crate versions were bumped correctly
|
||||
2. Ensure deno_std version was updated correctly in `cli/deno_std.rs`
|
||||
3. Ensure `Releases.md` was updated correctly
|
||||
2. Ensure `Releases.md` was updated correctly
|
||||
3. Open a PR with the changes and continue with the steps below.
|
||||
</details>
|
||||
|
||||
|
|
Loading…
Reference in a new issue