@@ -52,6 +52,14 @@ static UTF8_SYMBOLS: Symbols = Symbols {
5252 right : "─" ,
5353} ;
5454
55+ /// When set to `Yes`, the cli will check for major version updates of direct dependencies and
56+ /// print them to the console if the major versions are not upgradeable due to constraints.
57+ #[ derive( Debug , Clone , Copy ) ]
58+ pub enum CheckMajorVersions {
59+ Yes ,
60+ No ,
61+ }
62+
5563pub fn list ( paths : & ProjectPaths ) -> Result < ( ) > {
5664 let ( _, manifest) = get_manifest_details ( paths) ?;
5765 list_manifest_packages ( std:: io:: stdout ( ) , manifest)
@@ -217,7 +225,7 @@ pub fn update(paths: &ProjectPaths, packages: Vec<String>) -> Result<()> {
217225 None ,
218226 packages. into_iter ( ) . map ( EcoString :: from) . collect ( ) ,
219227 use_manifest,
220- true ,
228+ CheckMajorVersions :: Yes ,
221229 ) ?;
222230
223231 Ok ( ( ) )
@@ -355,7 +363,7 @@ pub fn download<Telem: Telemetry>(
355363 // packages being resolved (not the locked ones).
356364 use_manifest : UseManifest ,
357365 // If true we check for major version updates and print them to the console.
358- check_major_versions : bool ,
366+ check_major_versions : CheckMajorVersions ,
359367) -> Result < Manifest > {
360368 let mode = Mode :: Dev ;
361369
@@ -646,7 +654,7 @@ struct DependencyManager<Telem: Telemetry, P: dependency::PackageFetcher> {
646654 mode : Mode ,
647655 use_manifest : UseManifest ,
648656 telemetry : Telem ,
649- check_major_versions : bool ,
657+ check_major_versions : CheckMajorVersions ,
650658}
651659
652660impl < Telem : Telemetry , P > DependencyManager < Telem , P >
@@ -660,7 +668,7 @@ where
660668 mode : Mode :: Dev ,
661669 use_manifest : UseManifest :: No ,
662670 telemetry,
663- check_major_versions : false ,
671+ check_major_versions : CheckMajorVersions :: No ,
664672 }
665673 }
666674
@@ -674,7 +682,7 @@ where
674682 self
675683 }
676684
677- fn with_check_major_versions ( mut self , check_major_versions : bool ) -> Self {
685+ fn with_check_major_versions ( mut self , check_major_versions : CheckMajorVersions ) -> Self {
678686 self . check_major_versions = check_major_versions;
679687 self
680688 }
@@ -788,7 +796,7 @@ where
788796 }
789797 LocalPackages :: from_manifest ( & manifest) . write_to_disc ( paths) ?;
790798
791- if self . check_major_versions {
799+ if let CheckMajorVersions :: Yes = self . check_major_versions {
792800 let major_versions_available =
793801 dependency:: check_for_major_version_updates ( & manifest, & self . package_fetcher ) ;
794802 if !major_versions_available. is_empty ( ) {
0 commit comments