Skip to content

Commit 38ca7fc

Browse files
andholpil
authored andcommitted
refactor(dependencies): only check for major versions on update and download ♻️
1 parent ac56fdd commit 38ca7fc

File tree

4 files changed

+27
-8
lines changed

4 files changed

+27
-8
lines changed

compiler-cli/src/add.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pub fn command(paths: &ProjectPaths, packages_to_add: Vec<String>, dev: bool) ->
3333
Some((new_package_requirements.clone(), dev)),
3434
Vec::new(),
3535
UseManifest::Yes,
36+
false,
3637
)?;
3738

3839
// Read gleam.toml and manifest.toml so we can insert new deps into it

compiler-cli/src/dependencies.rs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ fn get_manifest_details(paths: &ProjectPaths) -> Result<(PackageConfig, Manifest
8888
Mode::Dev,
8989
UseManifest::Yes,
9090
cli::Reporter::new(),
91+
false,
9192
);
9293
let (_, manifest) = dependency_manager.get_manifest(&paths, &config, Vec::new())?;
9394
Ok((config, manifest))
@@ -217,6 +218,7 @@ pub fn update(paths: &ProjectPaths, packages: Vec<String>) -> Result<()> {
217218
None,
218219
packages.into_iter().map(EcoString::from).collect(),
219220
use_manifest,
221+
true,
220222
)?;
221223

222224
Ok(())
@@ -353,6 +355,8 @@ pub fn download<Telem: Telemetry>(
353355
// manifest which will result in the latest versions of the dependency
354356
// packages being resolved (not the locked ones).
355357
use_manifest: UseManifest,
358+
// If true we check for major version updates and print them to the console.
359+
check_major_versions: bool,
356360
) -> Result<Manifest> {
357361
let mode = Mode::Dev;
358362

@@ -366,6 +370,7 @@ pub fn download<Telem: Telemetry>(
366370
mode,
367371
use_manifest,
368372
telemetry,
373+
check_major_versions,
369374
);
370375

371376
dependency_manager.download(paths, new_package, packages_to_update)
@@ -646,6 +651,7 @@ struct DependencyManager<Telem: Telemetry, P: dependency::PackageFetcher> {
646651
mode: Mode,
647652
use_manifest: UseManifest,
648653
telemetry: Telem,
654+
check_major_versions: bool,
649655
}
650656

651657
impl<Telem: Telemetry, P> DependencyManager<Telem, P>
@@ -658,13 +664,15 @@ where
658664
mode: Mode,
659665
use_manifest: UseManifest,
660666
telemetry: Telem,
667+
check_major_versions: bool,
661668
) -> Self {
662669
Self {
663670
runtime,
664671
package_fetcher,
665672
mode,
666673
use_manifest,
667674
telemetry,
675+
check_major_versions,
668676
}
669677
}
670678

@@ -772,13 +780,15 @@ where
772780
}
773781
LocalPackages::from_manifest(&manifest).write_to_disc(paths)?;
774782

775-
let major_versions_available =
776-
dependency::check_for_major_version_updates(&manifest, &self.package_fetcher);
777-
if !major_versions_available.is_empty() {
778-
eprintln!(
779-
"{}",
780-
pretty_print_major_versions_available(major_versions_available)
781-
);
783+
if self.check_major_versions {
784+
let major_versions_available =
785+
dependency::check_for_major_version_updates(&manifest, &self.package_fetcher);
786+
if !major_versions_available.is_empty() {
787+
eprintln!(
788+
"{}",
789+
pretty_print_major_versions_available(major_versions_available)
790+
);
791+
}
782792
}
783793

784794
Ok(manifest)

compiler-cli/src/fs.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,14 @@ impl MakeLocker for ProjectIO {
246246

247247
impl DownloadDependencies for ProjectIO {
248248
fn download_dependencies(&self, paths: &ProjectPaths) -> Result<Manifest> {
249-
crate::dependencies::download(paths, NullTelemetry, None, Vec::new(), UseManifest::Yes)
249+
crate::dependencies::download(
250+
paths,
251+
NullTelemetry,
252+
None,
253+
Vec::new(),
254+
UseManifest::Yes,
255+
false,
256+
)
250257
}
251258
}
252259

compiler-cli/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,7 @@ fn download_dependencies(paths: &ProjectPaths) -> Result<()> {
782782
None,
783783
Vec::new(),
784784
UseManifest::Yes,
785+
true,
785786
)?;
786787
Ok(())
787788
}

0 commit comments

Comments
 (0)