Έλεγχος συμβατότητας protobuf
Συγκρίνετε δύο εκδόσεις αρχείου .proto και εντοπίστε τις αλλαγές που διακόπτουν μηνύματα ήδη γραμμένα στο wire ή ως JSON. Οι αφαιρεμένοι αριθμοί, οι αλλαγές τύπων, τα μετονομασμένα πεδία και οι αλλαγές enum εξηγούνται ξεχωριστά.
Δέχεται δύο αρχεία .proto έως 1.000.000 χαρακτήρες το καθένα, με έως 200.000 tokens, 2.000 μηνύματα και enum, 10.000 πεδία ανά μήνυμα και 32 επίπεδα εμφωλευμένων μηνυμάτων. Η σύγκριση εκτελείται σε εργασία παρασκηνίου του προγράμματος περιήγησης. Διατίθενται για λήψη αναφορά JSON και κατάλογος ευρημάτων CSV. Η έκδοση με την οποία γράφτηκαν τα υπάρχοντα δεδομένα. Βάλτε το αλλαγμένο αρχείο στο πεδίο Νέο σχήμα. Έως 1.000.000 χαρακτήρες. Εξετάστε τις ρυθμίσεις πριν από την εκτέλεση.
Το αποτέλεσμά σας
Έλεγχος συμβατότητας protobuf
- Επικολλήστε το παλιό αρχείο .proto στο κύριο πεδίο.
- Επικολλήστε τη νέα έκδοση στο πεδίο Νέο σχήμα.
- Εκτελέστε τον έλεγχο και εξετάστε τα ευρήματα, ξεκινώντας από τα σοβαρότερα.
- Κατεβάστε την αναφορά JSON ή τον κατάλογο CSV.
Τι να περιμένετε
Δέχεται δύο αρχεία .proto έως 1.000.000 χαρακτήρες το καθένα, με έως 200.000 tokens, 2.000 μηνύματα και enum, 10.000 πεδία ανά μήνυμα και 32 επίπεδα εμφωλευμένων μηνυμάτων. Η σύγκριση εκτελείται σε εργασία παρασκηνίου του προγράμματος περιήγησης. Διατίθενται για λήψη αναφορά JSON και κατάλογος ευρημάτων CSV.
Βαθμοί σοβαρότητας
Ασυμβατότητα σημαίνει ότι παλιά και νέα προγράμματα μπορεί να διαβάζουν λανθασμένα δυαδικά μηνύματα: αφαιρεμένο πεδίο του οποίου ο αριθμός δεν δεσμεύτηκε, επαναχρησιμοποίηση αριθμού από δεσμευμένο εύρος, τύπος με διαφορετική δυαδική κωδικοποίηση, αλλαγή μεταξύ μονότιμου και επαναλαμβανόμενου πεδίου, αφαίρεση μηνύματος ή enum ή αλλαγή αριθμού τιμής enum. Ασυμβατότητα JSON σημαίνει ότι τα δυαδικά δεδομένα συνεχίζουν να λειτουργούν, αλλά αλλάζει η μορφή JSON ή κειμένου, για παράδειγμα μετονομάζοντας πεδίο ή τιμή enum. Οι προειδοποιήσεις καλύπτουν αλλαγές που λειτουργούν στο wire αλλά μπορεί να περικόψουν ή να επανερμηνεύσουν τιμές, όπως int32 σε int64 ή μετακινήσεις μέσα και έξω από oneof.
Πώς γίνεται η σύγκριση
Τα μηνύματα και τα enum αντιστοιχίζονται με βάση το όνομά τους χωρίς το package και τα πεδία με βάση τον αριθμό τους, σύμφωνα με τους κανόνες του οδηγού γλώσσας protobuf για ενημέρωση τύπου μηνύματος. Συγκρίνονται επίσης μηνύματα και enum εμφωλευμένα μέσα σε άλλα μηνύματα.
Τι δεν υποστηρίζεται
Ο αναλυτής διαβάζει αρχεία proto2 και proto3 με μηνύματα, enum, oneof, maps, εμφωλευμένους τύπους, δεσμευμένους αριθμούς και ονόματα, καθώς και επιλογές πεδίων. Τα imports παρατίθενται αλλά δεν επιλύονται, οπότε τύποι από άλλα αρχεία συγκρίνονται μόνο με βάση το όνομα. Τα protobuf Editions, groups και extensions απορρίπτονται. Οι υπηρεσίες παραλείπονται.