@@ -753,14 +753,20 @@ private static void StartOrResumeMigration(
753753 return ;
754754 }
755755 } catch ( IOException ioError ) {
756- complete ( ioError . Message ) ;
756+ UnityPackageManagerResolver . analytics . Report (
757+ "package_migrator/migration/failed/read_snapshot" ,
758+ "Migrate Packages: Read Snapshot Failed" ) ;
757759 migrationJobQueue . Complete ( ) ;
760+ complete ( ioError . Message ) ;
758761 return ;
759762 }
760763 // Fetch the list of installed packages before starting migration.
761764 PackageMap . CacheInstalledPackageInfo (
762765 false , ( error ) => {
763766 if ( ! String . IsNullOrEmpty ( error . Message ) ) {
767+ UnityPackageManagerResolver . analytics . Report (
768+ "package_migrator/migration/failed/find_packages" ,
769+ "Migrate Packages: Find Packages Failed" ) ;
764770 migrationJobQueue . Complete ( ) ;
765771 complete ( error . Message ) ;
766772 return ;
@@ -778,6 +784,32 @@ static PackageMigrator() {
778784 ResumeMigration ( ) ;
779785 }
780786
787+ /// <summary>
788+ /// Report that package migration failed.
789+ /// </summary>
790+ private static void ReportPackageMigrationFailed ( ) {
791+ int numberOfSelectedPackages = - 1 ;
792+ int numberOfMigratedPackages = - 1 ;
793+ try {
794+ ReadMigrationState ( ) ;
795+ numberOfSelectedPackages = inProgressPackageMaps . Count ;
796+ numberOfMigratedPackages = 0 ;
797+ foreach ( var packageMap in inProgressPackageMaps ) {
798+ if ( packageMap . Migrated ) numberOfMigratedPackages ++ ;
799+ }
800+ } catch ( IOException ) {
801+ // Ignore the exception.
802+ }
803+ UnityPackageManagerResolver . analytics . Report (
804+ "package_migrator/migration/failed" ,
805+ new KeyValuePair < string , string > [ ] {
806+ new KeyValuePair < string , string > ( "selected" , numberOfSelectedPackages . ToString ( ) ) ,
807+ new KeyValuePair < string , string > ( "migrated" , numberOfMigratedPackages . ToString ( ) ) ,
808+ } ,
809+ "Migrate Packages: Failed" ) ;
810+ }
811+
812+
781813 /// <summary>
782814 /// Resume migration after an app domain reload.
783815 /// </summary>
@@ -798,6 +830,7 @@ public static void ResumeMigration() {
798830 } catch ( IOException ioError ) {
799831 Logger . Log ( String . Format ( "Failed to resume package migration: {0}" , ioError ) ,
800832 level : LogLevel . Error ) ;
833+ ReportPackageMigrationFailed ( ) ;
801834 }
802835 } , runNow : false ) ;
803836 }
@@ -848,6 +881,15 @@ public static void TryMigration(Action<string> complete) {
848881
849882 Action < string > clearProgressAndComplete = ( error ) => {
850883 EditorUtility . ClearProgressBar ( ) ;
884+ if ( String . IsNullOrEmpty ( error ) ) {
885+ UnityPackageManagerResolver . analytics . Report (
886+ "package_migrator/migration/success" ,
887+ new KeyValuePair < string , string > [ ] {
888+ new KeyValuePair < string , string > (
889+ "migrated" , inProgressPackageMaps . Count . ToString ( ) ) ,
890+ } ,
891+ "Migrate Packages: Success" ) ;
892+ }
851893 ClearMigrationState ( ) ;
852894 complete ( error ) ;
853895 } ;
@@ -860,6 +902,9 @@ public static void TryMigration(Action<string> complete) {
860902
861903 PackageMap . FindPackagesToMigrate ( ( error , packageMaps ) => {
862904 if ( ! String . IsNullOrEmpty ( error ) ) {
905+ UnityPackageManagerResolver . analytics . Report (
906+ "package_migrator/migration/failed/find_packages" ,
907+ "Migrate Packages: Find Packages Failed" ) ;
863908 clearProgressAndComplete ( error ) ;
864909 return ;
865910 }
@@ -940,13 +985,19 @@ public static void MigratePackages() {
940985
941986 // If an error occurs, display a dialog.
942987 if ( ! String . IsNullOrEmpty ( findError ) ) {
988+ UnityPackageManagerResolver . analytics . Report (
989+ "package_migrator/migration/failed/find_packages" ,
990+ "Migrate Packages: Find Packages Failed" ) ;
943991 DisplayError ( findError ) ;
944992 return ;
945993 }
946994
947995 // Show a package selection window and start migration if the user selects apply.
948996 DisplaySelectionWindow ( availablePackageMaps , ( selectedPackageMaps ) => {
949997 if ( selectedPackageMaps . Count == 0 ) {
998+ UnityPackageManagerResolver . analytics . Report (
999+ "package_migrator/migration/canceled" ,
1000+ "Migrate Packages: Canceled" ) ;
9501001 ClearMigrationState ( ) ;
9511002 return ;
9521003 }
@@ -955,6 +1006,9 @@ public static void MigratePackages() {
9551006 PackageMap . WriteToFile ( selectedPackageMaps ) ;
9561007 } catch ( IOException e ) {
9571008 DisplayError ( String . Format ( "Migration failed ({0})" , e . Message ) ) ;
1009+ UnityPackageManagerResolver . analytics . Report (
1010+ "package_migrator/migration/failed/write_snapshot" ,
1011+ "Migrate Packages: Write Snapshot Failed" ) ;
9581012 return ;
9591013 }
9601014
0 commit comments