diff --git a/content/programming-guides/proto2.md b/content/programming-guides/proto2.md index eae4004c5..55b76779a 100644 --- a/content/programming-guides/proto2.md +++ b/content/programming-guides/proto2.md @@ -252,13 +252,18 @@ message SearchRequest { Deleting fields can cause serious problems if not done properly. -**Do not delete** `required` fields. This is almost impossible to do safely. - -When you no longer need a field and all references have been deleted from client -code, you may delete the field definition from the message. However, you -**must** [reserve the deleted field number](#fieldreserved). If you do not -reserve the field number, it is possible for a developer to reuse that number in -the future. +**Do not delete** `required` fields. This is almost impossible to do safely. If +you must delete a `required` field, you should first mark the field `optional` +and `deprecated` and ensure that all systems which in any way observe the +message have been deployed with the new schema. Then you can consider removing +the field (but note that this is still an error-prone process). + +When you no longer need a field that is not `required`, first delete all +references to the field from client code, and then delete the field definition +from the message. However, you **must** +[reserve the deleted field number](#fieldreserved). If you do not reserve the +field number, it is possible for a developer to reuse that number in the future +and cause a breakage. You should also reserve the field name to allow JSON and TextFormat encodings of your message to continue to parse. diff --git a/content/reference/rust/index.md b/content/reference/rust/_index.md similarity index 100% rename from content/reference/rust/index.md rename to content/reference/rust/_index.md diff --git a/content/support/version-support.md b/content/support/version-support.md index e1bf5c609..d6cbe098b 100644 --- a/content/support/version-support.md +++ b/content/support/version-support.md @@ -464,6 +464,12 @@ described in For specific versions supported, see [Foundational Java Support Matrix](https://github.com/google/oss-policies-info/blob/main/foundational-java-support-matrix.md). +On Android, Protobuf supports the minimum SDK version that is supported by +[Google Play services](https://developers.google.com/android/guides/setup) and +is the default in +[Jetpack](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/docs/api_guidelines/modules.md#module-minsdkversion). +If both versions differ, the lower version is supported. + ## Objective-C {#objc} The protoc version can be inferred from the Protobuf Objective-C minor version