|
65 | 65 | */ |
66 | 66 | pub type PackageVersionDiffs = HashMap<String, (Version, Version)>; |
67 | 67 |
|
| 68 | +/// Get the resolved versions of the direct dependencies |
| 69 | +fn resolve_versions_from_manifest(manifest: &manifest::Manifest) -> PackageVersions { |
| 70 | + manifest |
| 71 | + .packages |
| 72 | + .iter() |
| 73 | + .filter(|manifest_package| { |
| 74 | + manifest |
| 75 | + .requirements |
| 76 | + .iter() |
| 77 | + .any(|(required_pkg, _)| manifest_package.name == *required_pkg) |
| 78 | + }) |
| 79 | + .map(|manifest_pkg| (manifest_pkg.name.to_string(), manifest_pkg.version.clone())) |
| 80 | + .collect() |
| 81 | +} |
| 82 | + |
68 | 83 | fn resolve_major_versions( |
69 | 84 | package_fetcher: &impl PackageFetcher, |
70 | 85 | versions: PackageVersions, |
@@ -98,20 +113,7 @@ pub fn check_for_major_version_updates( |
98 | 113 | manifest: &manifest::Manifest, |
99 | 114 | package_fetcher: &impl PackageFetcher, |
100 | 115 | ) -> PackageVersionDiffs { |
101 | | - // get the resolved versions of the direct dependencies to check for major |
102 | | - // version updates. |
103 | | - let versions = manifest |
104 | | - .packages |
105 | | - .iter() |
106 | | - .filter(|manifest_package| { |
107 | | - manifest |
108 | | - .requirements |
109 | | - .iter() |
110 | | - .any(|(required_pkg, _)| manifest_package.name == *required_pkg) |
111 | | - }) |
112 | | - .map(|manifest_pkg| (manifest_pkg.name.to_string(), manifest_pkg.version.clone())) |
113 | | - .collect(); |
114 | | - |
| 116 | + let versions = resolve_versions_from_manifest(manifest); |
115 | 117 | resolve_major_versions(package_fetcher, versions) |
116 | 118 | } |
117 | 119 |
|
@@ -142,21 +144,12 @@ fn resolve_all_versions( |
142 | 144 | .collect() |
143 | 145 | } |
144 | 146 |
|
| 147 | +/// Check for version updates for direct dependencies. |
145 | 148 | pub fn check_for_version_updates( |
146 | 149 | manifest: &manifest::Manifest, |
147 | 150 | package_fetcher: &impl PackageFetcher, |
148 | 151 | ) -> PackageVersionDiffs { |
149 | | - // get all hex packages from the manifest |
150 | | - let versions = manifest |
151 | | - .packages |
152 | | - .iter() |
153 | | - .filter(|manifest_package| { |
154 | | - // only check for version updates for hex packages |
155 | | - matches!(manifest_package.source, manifest::ManifestPackageSource::Hex { .. }) |
156 | | - }) |
157 | | - .map(|manifest_pkg| (manifest_pkg.name.to_string(), manifest_pkg.version.clone())) |
158 | | - .collect(); |
159 | | - |
| 152 | + let versions = resolve_versions_from_manifest(manifest); |
160 | 153 | resolve_all_versions(package_fetcher, versions) |
161 | 154 | } |
162 | 155 |
|
|
0 commit comments