@@ -753,14 +753,20 @@ private static void StartOrResumeMigration(
753
753
return ;
754
754
}
755
755
} catch ( IOException ioError ) {
756
- complete ( ioError . Message ) ;
756
+ UnityPackageManagerResolver . analytics . Report (
757
+ "package_migrator/migration/failed/read_snapshot" ,
758
+ "Migrate Packages: Read Snapshot Failed" ) ;
757
759
migrationJobQueue . Complete ( ) ;
760
+ complete ( ioError . Message ) ;
758
761
return ;
759
762
}
760
763
// Fetch the list of installed packages before starting migration.
761
764
PackageMap . CacheInstalledPackageInfo (
762
765
false , ( error ) => {
763
766
if ( ! String . IsNullOrEmpty ( error . Message ) ) {
767
+ UnityPackageManagerResolver . analytics . Report (
768
+ "package_migrator/migration/failed/find_packages" ,
769
+ "Migrate Packages: Find Packages Failed" ) ;
764
770
migrationJobQueue . Complete ( ) ;
765
771
complete ( error . Message ) ;
766
772
return ;
@@ -778,6 +784,32 @@ static PackageMigrator() {
778
784
ResumeMigration ( ) ;
779
785
}
780
786
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
+
781
813
/// <summary>
782
814
/// Resume migration after an app domain reload.
783
815
/// </summary>
@@ -798,6 +830,7 @@ public static void ResumeMigration() {
798
830
} catch ( IOException ioError ) {
799
831
Logger . Log ( String . Format ( "Failed to resume package migration: {0}" , ioError ) ,
800
832
level : LogLevel . Error ) ;
833
+ ReportPackageMigrationFailed ( ) ;
801
834
}
802
835
} , runNow : false ) ;
803
836
}
@@ -848,6 +881,15 @@ public static void TryMigration(Action<string> complete) {
848
881
849
882
Action < string > clearProgressAndComplete = ( error ) => {
850
883
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
+ }
851
893
ClearMigrationState ( ) ;
852
894
complete ( error ) ;
853
895
} ;
@@ -860,6 +902,9 @@ public static void TryMigration(Action<string> complete) {
860
902
861
903
PackageMap . FindPackagesToMigrate ( ( error , packageMaps ) => {
862
904
if ( ! String . IsNullOrEmpty ( error ) ) {
905
+ UnityPackageManagerResolver . analytics . Report (
906
+ "package_migrator/migration/failed/find_packages" ,
907
+ "Migrate Packages: Find Packages Failed" ) ;
863
908
clearProgressAndComplete ( error ) ;
864
909
return ;
865
910
}
@@ -940,13 +985,19 @@ public static void MigratePackages() {
940
985
941
986
// If an error occurs, display a dialog.
942
987
if ( ! String . IsNullOrEmpty ( findError ) ) {
988
+ UnityPackageManagerResolver . analytics . Report (
989
+ "package_migrator/migration/failed/find_packages" ,
990
+ "Migrate Packages: Find Packages Failed" ) ;
943
991
DisplayError ( findError ) ;
944
992
return ;
945
993
}
946
994
947
995
// Show a package selection window and start migration if the user selects apply.
948
996
DisplaySelectionWindow ( availablePackageMaps , ( selectedPackageMaps ) => {
949
997
if ( selectedPackageMaps . Count == 0 ) {
998
+ UnityPackageManagerResolver . analytics . Report (
999
+ "package_migrator/migration/canceled" ,
1000
+ "Migrate Packages: Canceled" ) ;
950
1001
ClearMigrationState ( ) ;
951
1002
return ;
952
1003
}
@@ -955,6 +1006,9 @@ public static void MigratePackages() {
955
1006
PackageMap . WriteToFile ( selectedPackageMaps ) ;
956
1007
} catch ( IOException e ) {
957
1008
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" ) ;
958
1012
return ;
959
1013
}
960
1014
0 commit comments