@@ -351,22 +351,29 @@ static bool component_hint_date_comparation(component_data_t *a, component_data_
351351 return true;
352352 }
353353
354- if (!purl_vendor_component_check (a ) && purl_vendor_component_check (b ))
355- {
356- scanlog ("Component prefered by vendor+component=purl\n" );
357- return true;
358- }
359354 //Look for available health information
360355 print_health (a );
361356 print_health (b );
362357 int health_a = a -> health_stats [0 ] + a -> health_stats [2 ]; //add forks and watchers
363358 int health_b = b -> health_stats [0 ] + b -> health_stats [2 ];
364359
360+
365361 if (health_b > health_a )
366362 {
367363 scanlog ("Component prefered by health: %s = %d vs %s = %d\n" , b -> purls [0 ], health_b , a -> purls [0 ], health_a );
368364 return true;
369365 }
366+ else if (health_a > health_b )
367+ {
368+ return false;
369+ }
370+
371+
372+ if (!purl_vendor_component_check (a ) && purl_vendor_component_check (b ))
373+ {
374+ scanlog ("Component %s prefered over %s by vendor+component=purl\n" , b -> purls [0 ], a -> purls [0 ]);
375+ return true;
376+ }
370377
371378 if (!a -> purls_md5 [0 ] && a -> purls [0 ])
372379 {
@@ -383,10 +390,16 @@ static bool component_hint_date_comparation(component_data_t *a, component_data_
383390 }
384391
385392 if ((!a -> age && b -> age ) || b -> age > a -> age )
393+ {
394+ scanlog ("Component %s prefered over %s by purl date\n" , b -> purls [0 ], a -> purls [0 ]);
386395 return true;
396+ }
387397
388398 if (b -> age == a -> age && !strcmp (a -> component , b -> component ) && strcmp (a -> version , b -> version ) > 0 )
399+ {
400+ scanlog ("Component %s prefered over %s by version\n" , b -> purls [0 ], a -> purls [0 ]);
389401 return true;
402+ }
390403 }
391404 /*select the oldest release date */
392405 if (strcmp (b -> release_date , a -> release_date ) < 0 )
0 commit comments