mirror of
https://github.com/gleam-lang/gleam.git
synced 2025-12-23 09:47:08 +00:00
Use locked versions in resolution
This commit is contained in:
parent
5e457a4ad4
commit
fd668bfa3b
3 changed files with 8 additions and 7 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -791,7 +791,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "hexpm"
|
||||
version = "1.3.0"
|
||||
source = "git+https://github.com/gleam-lang/hexpm-rust#17901620a18743f5be17bedb666fe7ffb4a7e9bc"
|
||||
source = "git+https://github.com/gleam-lang/hexpm-rust#b44e16aa2ce4834de6eeb8f836170d79d8fe496b"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"flate2",
|
||||
|
|
|
|||
|
|
@ -265,7 +265,7 @@ fn get_manifest(
|
|||
// If there's no manifest then resolve the versions anew
|
||||
if !paths::manifest_path().exists() {
|
||||
tracing::info!("manifest_not_present");
|
||||
return resolve_versions(runtime, mode, config);
|
||||
return resolve_versions(runtime, mode, config, &HashMap::new());
|
||||
}
|
||||
|
||||
let manifest = Manifest::read_from_disc()?;
|
||||
|
|
@ -277,8 +277,7 @@ fn get_manifest(
|
|||
Ok(manifest)
|
||||
} else {
|
||||
tracing::info!("manifest_outdated");
|
||||
// TODO: use the existing already locked versions
|
||||
resolve_versions(runtime, mode, config)
|
||||
resolve_versions(runtime, mode, config, &manifest.packages)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -286,10 +285,11 @@ fn resolve_versions(
|
|||
runtime: tokio::runtime::Handle,
|
||||
mode: Mode,
|
||||
config: &PackageConfig,
|
||||
locked: &HashMap<String, Version>,
|
||||
) -> Result<Manifest, Error> {
|
||||
cli::print_resolving_versions();
|
||||
let manifest = Manifest {
|
||||
packages: hex::resolve_versions(PackageFetcher::boxed(runtime), mode, config)?,
|
||||
packages: hex::resolve_versions(PackageFetcher::boxed(runtime), mode, config, locked)?,
|
||||
requirements: config.all_dependencies()?,
|
||||
};
|
||||
Ok(manifest)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use debug_ignore::DebugIgnore;
|
|||
use flate2::read::GzDecoder;
|
||||
use futures::future;
|
||||
use hexpm::version::{PackageVersions, Version};
|
||||
use std::path::PathBuf;
|
||||
use std::{collections::HashMap, path::PathBuf};
|
||||
use tar::Archive;
|
||||
|
||||
use crate::{
|
||||
|
|
@ -27,13 +27,14 @@ pub fn resolve_versions(
|
|||
package_fetcher: Box<dyn hexpm::version::PackageFetcher>,
|
||||
mode: Mode,
|
||||
config: &PackageConfig,
|
||||
locked: &HashMap<String, Version>,
|
||||
) -> Result<PackageVersions> {
|
||||
let specified_dependencies = config.dependencies_for(mode)?.into_iter();
|
||||
hexpm::version::resolve_versions(
|
||||
package_fetcher,
|
||||
config.name.clone(),
|
||||
config.version.clone(),
|
||||
specified_dependencies,
|
||||
locked,
|
||||
)
|
||||
.map_err(Error::dependency_resolution_failed)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue