Skip to content
This repository has been archived by the owner on Jul 17, 2024. It is now read-only.

Commit

Permalink
fix: Fix yarn 2.4.3 version. (#38)
Browse files Browse the repository at this point in the history
  • Loading branch information
milesj authored Jun 17, 2024
1 parent d1b8b50 commit f9bbb16
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 12 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## 0.11.2

#### 🐞 Fixes

- Fixed yarn "2.4.3" not resolving or downloading correctly (it was published to the wrong package).

## 0.11.1

#### 🚀 Updates
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/node-depman/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "node_depman_plugin"
version = "0.11.1"
version = "0.11.2"
edition = "2021"
license = "MIT"
publish = false
Expand Down
22 changes: 18 additions & 4 deletions crates/node-depman/src/package_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,25 @@ impl PackageManager {
}

pub fn get_package_name(&self, version: impl AsRef<UnresolvedVersionSpec>) -> String {
if self.is_yarn_berry(version.as_ref()) {
"@yarnpkg/cli-dist".into()
} else {
self.to_string()
let version = version.as_ref();

if matches!(self, PackageManager::Yarn) {
if let UnresolvedVersionSpec::Version(inner) = &version {
// Version 2.4.3 was published to the wrong package. It should
// have been published to `@yarnpkg/cli-dist` but was published
// to `yarn`. So... we need to manually fix it.
// https://www.npmjs.com/package/yarn?activeTab=versions
if inner.major == 2 && inner.minor == 4 && inner.patch == 3 {
return "yarn".into();
}
}

if self.is_yarn_berry(version) {
return "@yarnpkg/cli-dist".into();
}
}

self.to_string()
}

pub fn is_yarn_classic(&self, version: impl AsRef<UnresolvedVersionSpec>) -> bool {
Expand Down
4 changes: 2 additions & 2 deletions crates/node-depman/src/proto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -260,8 +260,8 @@ pub fn download_prebuilt(

let package_name = manager.get_package_name(version.to_unresolved_spec());

let package_without_scope = if package_name.contains('/') {
package_name.split('/').nth(1).unwrap()
let package_without_scope = if let Some(index) = package_name.find('/') {
&package_name[index + 1..]
} else {
&package_name
};
Expand Down
7 changes: 7 additions & 0 deletions crates/node-depman/tests/download_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,13 @@ mod yarn {
}
}

mod yarn2 {
use super::*;

// Special case
generate_download_install_tests!("yarn-test", "2.4.3");
}

mod yarn_berry {
use super::*;

Expand Down
2 changes: 1 addition & 1 deletion crates/node-depman/tests/versions_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ mod yarn {
"1" => "1.22.22",
"2" => "2.4.3",
"3" => "3.8.2",
"berry" => "4.2.2",
"berry" => "4.3.0",
});

#[test]
Expand Down
2 changes: 1 addition & 1 deletion crates/node/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "node_plugin"
version = "0.11.1"
version = "0.11.2"
edition = "2021"
license = "MIT"
publish = false
Expand Down
2 changes: 1 addition & 1 deletion crates/node/tests/versions_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ generate_resolve_versions_tests!("node-test", {
"lts-gallium" => "16.20.2",
"lts/fermium" => "14.21.3",
"stable" => "20.14.0",
"node" => "22.2.0",
"node" => "22.3.0",
});

#[test]
Expand Down

0 comments on commit f9bbb16

Please sign in to comment.