@@ -253,7 +253,7 @@ private function updateVersion(Version $version, CompletePackageInterface $data,
253253 {
254254 $ metadata = $ this ->createMetadata ($ version , $ data , $ driver );
255255
256- if ($ this ->hasMetadataChanged ($ version -> getCurrentMetadata (), $ metadata )) {
256+ if ($ this ->hasMetadataChanged ($ metadata )) {
257257 $ version ->setCurrentMetadata ($ metadata );
258258
259259 $ this ->entityManager ->persist ($ metadata );
@@ -396,27 +396,17 @@ private function sanitize(?string $string): ?string
396396 return $ string ;
397397 }
398398
399- private function hasMetadataChanged (? Metadata $ currentMetadata , Metadata $ metadata ): bool
399+ private function hasMetadataChanged (Metadata $ resolvedMetadata ): bool
400400 {
401- $ currentData = $ currentMetadata ?->toComposerArray();
402- $ data = $ metadata ->toComposerArray ();
403-
404- if (null === $ currentData ) {
401+ // Check if the package version has existing metadata first
402+ if (null === $ currentMetadata = $ resolvedMetadata ->getVersion ()->getCurrentMetadata ()) {
405403 return true ;
406404 }
407405
408- // Fields that shouldn't trigger a new revision
409- $ excludeFields = ['abandoned ' , 'default-branch ' ];
410-
411- foreach ($ excludeFields as $ field ) {
412- unset($ currentData [$ field ], $ data [$ field ]);
413- }
414-
415- // Normalize both arrays for comparison
416- ksort ($ currentData );
417- ksort ($ data );
406+ $ currentData = $ currentMetadata ->toComposerArray (includePackageMetadata: false );
407+ $ resolvedData = $ resolvedMetadata ->toComposerArray (includePackageMetadata: false );
418408
419- return $ currentData !== $ data ;
409+ return $ currentData !== $ resolvedData ;
420410 }
421411
422412 private function getReadmeContents (Metadata $ metadata , VcsDriverInterface $ driver ): ?string
0 commit comments