Skip to content

Commit 251aac5

Browse files
committed
Upgrade pubgrub version.
1 parent dd1509f commit 251aac5

File tree

15 files changed

+246
-151
lines changed

15 files changed

+246
-151
lines changed

Cargo.lock

Lines changed: 84 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ toml = "0"
2929
# Enum trait impl macros
3030
strum = { version = "0", features = ["derive"] }
3131
# Hex package manager client
32-
hexpm = "3.3"
32+
hexpm = "4"
3333
# Creation of tar file archives
3434
tar = "0"
3535
# gzip compression

compiler-cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ same-file = "1"
3636
# Open generated docs in browser
3737
opener = "0"
3838
# Pubgrub dependency resolution algorithm
39-
pubgrub = "0"
39+
pubgrub = "0.3"
4040

4141
camino = { workspace = true, features = ["serde1"] }
4242
async-trait.workspace = true

compiler-cli/src/dependencies.rs

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use gleam_core::{
1212
Error, Result,
1313
build::{Mode, Target, Telemetry},
1414
config::{GleamVersion, PackageConfig},
15-
dependency,
15+
dependency::{self, PackageFetchError},
1616
error::{FileIoAction, FileKind, ShellCommandFailureReason, StandardIoAction},
1717
hex::{self, HEXPM_PUBLIC_KEY},
1818
io::{HttpClient as _, TarUnpacker, WrappedReader},
@@ -1229,6 +1229,7 @@ async fn lookup_package(
12291229
}
12301230
}
12311231

1232+
#[derive(Debug)]
12321233
struct PackageFetcher {
12331234
runtime: tokio::runtime::Handle,
12341235
http: HttpClient,
@@ -1270,26 +1271,14 @@ impl TarUnpacker for Untar {
12701271
}
12711272

12721273
impl dependency::PackageFetcher for PackageFetcher {
1273-
fn get_dependencies(
1274-
&self,
1275-
package: &str,
1276-
) -> Result<hexpm::Package, Box<dyn std::error::Error>> {
1274+
fn get_dependencies(&self, package: &str) -> Result<hexpm::Package, PackageFetchError> {
12771275
tracing::debug!(package = package, "looking_up_hex_package");
12781276
let config = hexpm::Config::new();
12791277
let request = hexpm::get_package_request(package, None, &config);
12801278
let response = self
12811279
.runtime
12821280
.block_on(self.http.send(request))
1283-
.map_err(Box::new)?;
1284-
1285-
match hexpm::get_package_response(response, HEXPM_PUBLIC_KEY) {
1286-
Ok(a) => Ok(a),
1287-
Err(e) => match e {
1288-
hexpm::ApiError::NotFound => {
1289-
Err(format!("I couldn't find a package called `{}`", package).into())
1290-
}
1291-
_ => Err(e.into()),
1292-
},
1293-
}
1281+
.map_err(|e| PackageFetchError::fetch_error(e.to_string()))?;
1282+
hexpm::get_package_response(response, HEXPM_PUBLIC_KEY).map_err(|e| e.into())
12941283
}
12951284
}

compiler-cli/src/publish.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,7 @@ fn do_build_hex_tarball(paths: &ProjectPaths, config: &mut PackageConfig) -> Res
312312
// inferred lower bound could be lower.
313313
let minimum_required_version =
314314
std::cmp::max(minimum_required_version, Version::new(1, 0, 0));
315-
let inferred_version_range =
316-
pubgrub::range::Range::higher_than(minimum_required_version);
315+
let inferred_version_range = pubgrub::Range::higher_than(minimum_required_version);
317316
config.gleam_version = Some(GleamVersion::from_pubgrub(inferred_version_range));
318317
}
319318
// Otherwise we need to check that the annotated version range is

compiler-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ globset = { version = "0", features = ["serde1"] }
3131
# Checksums
3232
xxhash-rust = { version = "0", features = ["xxh3"] }
3333
# Pubgrub dependency resolution algorithm
34-
pubgrub = "0"
34+
pubgrub = "0.3"
3535
# Used for converting absolute path to relative path
3636
pathdiff = { version = "0", features = ["camino"] }
3737
# Memory arena using ids rather than references

compiler-core/src/build/project_compiler.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use crate::{
2424
use ecow::EcoString;
2525
use hexpm::version::Version;
2626
use itertools::Itertools;
27-
use pubgrub::range::Range;
27+
use pubgrub::Range;
2828
use std::{
2929
cmp,
3030
collections::{HashMap, HashSet},

compiler-core/src/config.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::{Error, Result};
99
use camino::{Utf8Path, Utf8PathBuf};
1010
use ecow::EcoString;
1111
use globset::{Glob, GlobSetBuilder};
12-
use hexpm::version::{self, Version};
12+
use hexpm::version::{self, LowestVersion, Version};
1313
use http::Uri;
1414
use serde::ser::SerializeSeq;
1515
use serde::{Deserialize, Serialize};
@@ -88,12 +88,12 @@ impl From<version::Range> for GleamVersion {
8888
}
8989

9090
impl GleamVersion {
91-
pub fn from_pubgrub(range: pubgrub::range::Range<Version>) -> Self {
91+
pub fn from_pubgrub(range: pubgrub::Range<Version>) -> Self {
9292
let range: version::Range = range.into();
9393
range.into()
9494
}
9595

96-
pub fn as_pubgrub(&self) -> &pubgrub::range::Range<Version> {
96+
pub fn as_pubgrub(&self) -> &pubgrub::Range<Version> {
9797
self.0.to_pubgrub()
9898
}
9999

0 commit comments

Comments
 (0)