@@ -82,7 +82,7 @@ impl File {
8282 )
8383 } )
8484 }
85- CargoDependencyValue :: Git ( GitCargoDependency { git } ) => {
85+ CargoDependencyValue :: Git ( GitCargoDependency { git, .. } ) => {
8686 log:: warn!(
8787 "Git dependency `{git}` found, but version change detection for git \
8888 dependencies is not currently supported"
@@ -101,6 +101,17 @@ impl File {
101101 ) -> anyhow:: Result < ( ) > {
102102 for ( name, current_value) in current_dependencies {
103103 let current_version = Self :: get_version ( current_value) ?;
104+ let package_name = match current_value {
105+ CargoDependencyValue :: Simple ( _) => name,
106+ CargoDependencyValue :: Git ( GitCargoDependency { package, .. } )
107+ | CargoDependencyValue :: Detailed ( DetailedCargoDependency { package, .. } ) => {
108+ if let Some ( package_value) = package {
109+ package_value
110+ } else {
111+ name
112+ }
113+ }
114+ } ;
104115 if let Some ( previous_value) = previous_dependencies. get ( name) {
105116 // Handle dependencies in previous and current (filtering for ones with changed
106117 // versions)
@@ -116,13 +127,13 @@ impl File {
116127 if let Some ( label_value) = label {
117128 let _ =
118129 writeln ! ( result,
119- "{change_type} bump {name } {label_value} from {previous_version} \
130+ "{change_type} bump {package_name } {label_value} from {previous_version} \
120131 to {current_version}",
121132 ) ;
122133 } else {
123134 let _ = writeln ! (
124135 result,
125- "{change_type} bump {name } from {previous_version} to \
136+ "{change_type} bump {package_name } from {previous_version} to \
126137 {current_version}",
127138 ) ;
128139 }
@@ -131,27 +142,27 @@ impl File {
131142 Some ( Ordering :: Less ) => {
132143 if let Some ( label_value) = label {
133144 let _ = writeln ! ( result,
134- "{change_type} drop {name } {label_value} from {previous_version} to \
145+ "{change_type} drop {package_name } {label_value} from {previous_version} to \
135146 {current_version}"
136147 ) ;
137148 } else {
138149 let _ = writeln ! (
139150 result,
140- "{change_type} drop {name } from {previous_version} to \
151+ "{change_type} drop {package_name } from {previous_version} to \
141152 {current_version}"
142153 ) ;
143154 }
144155 }
145156 None => {
146157 if let Some ( label_value) = label {
147158 let _ = writeln ! ( result,
148- "{change_type} change {name } {label_value} from {previous_version} \
159+ "{change_type} change {package_name } {label_value} from {previous_version} \
149160 to {current_version}\n "
150161 ) ;
151162 } else {
152163 let _ = writeln ! (
153164 result,
154- "{change_type} change {name } from {previous_version} to \
165+ "{change_type} change {package_name } from {previous_version} to \
155166 {current_version}"
156167 ) ;
157168 }
@@ -160,9 +171,12 @@ impl File {
160171 } else {
161172 // Handle added dependencies
162173 if let Some ( label_value) = label {
163- let _ = writeln ! ( result, "✨ add {name} {label_value} {current_version}" ) ;
174+ let _ = writeln ! (
175+ result,
176+ "✨ add {package_name} {label_value} {current_version}"
177+ ) ;
164178 } else {
165- let _ = writeln ! ( result, "✨ add {name } {current_version}" ) ;
179+ let _ = writeln ! ( result, "✨ add {package_name } {current_version}" ) ;
166180 }
167181 }
168182 }
@@ -190,24 +204,40 @@ impl File {
190204
191205 // Handle removed dependencies
192206 for name in previous_keys {
193- let version = match previous_dependencies
207+ let ( version, package_name ) : ( SemverVersion , & str ) = match previous_dependencies
194208 . get ( & name)
195209 . expect ( "Previous dependencies should include this dependency." )
196210 {
197- CargoDependencyValue :: Simple ( version) => SemverVersion :: new ( version) . unwrap ( ) ,
198- CargoDependencyValue :: Detailed ( DetailedCargoDependency { version, .. } ) => {
199- SemverVersion :: new ( version)
200- . expect ( "Previous dependencies should include this dependency." )
211+ CargoDependencyValue :: Simple ( version) => {
212+ let version = SemverVersion :: new ( version) . unwrap ( ) ;
213+ ( version, & name)
214+ }
215+ CargoDependencyValue :: Detailed ( DetailedCargoDependency { package, version } ) => {
216+ let version = SemverVersion :: new ( version)
217+ . expect ( "Previous dependencies should include this dependency." ) ;
218+ let name = if let Some ( package_value) = package {
219+ package_value
220+ } else {
221+ & name
222+ } ;
223+ ( version, name)
201224 }
202- CargoDependencyValue :: Git ( GitCargoDependency { git } ) => {
225+ CargoDependencyValue :: Git ( GitCargoDependency { git, package } ) => {
203226 log:: warn!( "Git dependency `{git}` found, but version change detection for git dependencies is not currently supported" ) ;
204- SemverVersion :: new ( "0" ) . expect ( "`0` should be a valid semver version" )
227+ let version =
228+ SemverVersion :: new ( "0" ) . expect ( "`0` should be a valid semver version" ) ;
229+ let name = if let Some ( package_value) = package {
230+ package_value
231+ } else {
232+ & name
233+ } ;
234+ ( version, name)
205235 }
206236 } ;
207237 if let Some ( label_value) = label {
208- let _ = writeln ! ( result, "🗑️ remove {name } {label_value} {version}" ) ;
238+ let _ = writeln ! ( result, "🗑️ remove {package_name } {label_value} {version}" ) ;
209239 } else {
210- let _ = writeln ! ( result, "🗑️ remove {name } {version}" ) ;
240+ let _ = writeln ! ( result, "🗑️ remove {package_name } {version}" ) ;
211241 }
212242 }
213243
@@ -290,6 +320,7 @@ pub struct DetailedCargoDependency {
290320 // #[allow(dead_code, reason = "Field needed for deserialisation")]
291321 #[ allow( dead_code) ]
292322 version : String ,
323+ package : Option < String > ,
293324}
294325
295326#[ derive( Debug , Deserialize , PartialEq ) ]
@@ -298,6 +329,7 @@ pub struct GitCargoDependency {
298329 // #[allow(dead_code, reason = "Field needed for deserialisation")]
299330 #[ allow( dead_code) ]
300331 git : String ,
332+ package : Option < String > ,
301333}
302334
303335#[ derive( Debug , Deserialize , PartialEq ) ]
0 commit comments