From b708a13eb02510925b5fd964fe933b4896093185 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 28 Aug 2024 14:17:47 -0400 Subject: feat: improve lockfile v4 to store normalized version constraints and be more terse (#25247) Stores normalized version constraints in the lockfile, which will improve reproducibility and will fix a bug with duplicate specifiers ending up in the lockfile. Also, gets rid of some duplicate data in the specifiers area of the lockfile. --- cli/npm/managed/resolution.rs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'cli/npm/managed/resolution.rs') diff --git a/cli/npm/managed/resolution.rs b/cli/npm/managed/resolution.rs index 3d13e1735..486e87816 100644 --- a/cli/npm/managed/resolution.rs +++ b/cli/npm/managed/resolution.rs @@ -22,6 +22,7 @@ use deno_npm::NpmPackageCacheFolderId; use deno_npm::NpmPackageId; use deno_npm::NpmResolutionPackage; use deno_npm::NpmSystemInfo; +use deno_semver::jsr::JsrDepPackageReq; use deno_semver::package::PackageNv; use deno_semver::package::PackageReq; use deno_semver::VersionReq; @@ -329,16 +330,10 @@ fn populate_lockfile_from_snapshot( ) { let mut lockfile = lockfile.lock(); for (package_req, nv) in snapshot.package_reqs() { + let id = &snapshot.resolve_package_from_deno_module(nv).unwrap().id; lockfile.insert_package_specifier( - format!("npm:{}", package_req), - format!( - "npm:{}", - snapshot - .resolve_package_from_deno_module(nv) - .unwrap() - .id - .as_serialized() - ), + JsrDepPackageReq::npm(package_req.clone()), + format!("{}{}", id.nv.version, id.peer_deps_serialized()), ); } for package in snapshot.all_packages_for_every_system() { -- cgit v1.2.3