@@ -19,6 +19,24 @@ one is using the field, don’t re-use a tag number. If the change was live ever
1919there could be serialized versions of your proto in a log
2020somewhere. Or there could be old code in another server that will break.
2121
22+ <a id =" do-reserve-tag-numbers-for-deleted-fields " ></a >
23+
24+ ## ** Do** Reserve Tag Numbers for Deleted Fields {#reserve-tag-numbers}
25+
26+ When you delete a field that's no longer used, reserve its tag number so that no
27+ one accidentally re-uses it in the future. Just ` reserved 2, 3; ` is enough. No
28+ type required (lets you trim dependencies!). You can also reserve names to avoid
29+ recycling now-deleted field names: ` reserved "foo", "bar"; ` .
30+
31+ <a id =" do-reserve-numbers-for-deleted-enum-values " ></a >
32+
33+ ## ** Do** Reserve Numbers for Deleted Enum Values {#reserve-deleted-numbers}
34+
35+ When you delete an enum value that's no longer used, reserve its number so that
36+ no one accidentally re-uses it in the future. Just ` reserved 2, 3; ` is enough.
37+ You can also reserve names to avoid recycling now-deleted value names: `reserved
38+ "FOO", "BAR";`.
39+
2240<a id =" dont-change-the-type-of-a-field " ></a >
2341
2442## ** Don't** Change the Type of a Field {#change-type}
@@ -109,26 +127,31 @@ when a perfectly suitable common type already exists!
109127
110128### Common Types {#common}
111129
112- * [ interval] ( https://github.com/googleapis/googleapis/blob/master/google/type/interval.proto )
130+ * [ ` Duration ` ] ( https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/duration.proto )
131+ is a signed, fixed-length span of time, such as 42s.
132+ * [ ` Timestamp ` ] ( https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/timestamp.proto )
133+ is a point in time independent of any time zone or calendar, such as
134+ 2017-01-15T01:30:15.01Z.
135+ * [ ` interval ` ] ( https://github.com/googleapis/googleapis/blob/master/google/type/interval.proto )
113136 is a time interval independent of time zone or calendar (for example,
114137 2017-01-15T01:30:15.01Z - 2017-01-16T02:30:15.01Z).
115- * [ date] ( https://github.com/googleapis/googleapis/blob/master/google/type/date.proto )
138+ * [ ` date ` ] ( https://github.com/googleapis/googleapis/blob/master/google/type/date.proto )
116139 is a whole calendar date (for example, 2005-09-19).
117- * [ dayofweek] ( https://github.com/googleapis/googleapis/blob/master/google/type/dayofweek.proto )
140+ * [ ` dayofweek ` ] ( https://github.com/googleapis/googleapis/blob/master/google/type/dayofweek.proto )
118141 is a day of week (for example, Monday).
119- * [ timeofday] ( https://github.com/googleapis/googleapis/blob/master/google/type/timeofday.proto )
142+ * [ ` timeofday ` ] ( https://github.com/googleapis/googleapis/blob/master/google/type/timeofday.proto )
120143 is a time of day (for example, 10:42:23).
121- * [ latlng] ( https://github.com/googleapis/googleapis/blob/master/google/type/latlng.proto )
144+ * [ ` latlng ` ] ( https://github.com/googleapis/googleapis/blob/master/google/type/latlng.proto )
122145 is a latitude/longitude pair (for example, 37.386051 latitude and
123146 -122.083855 longitude).
124- * [ money] ( https://github.com/googleapis/googleapis/blob/master/google/type/money.proto )
147+ * [ ` money ` ] ( https://github.com/googleapis/googleapis/blob/master/google/type/money.proto )
125148 is an amount of money with its currency type (for example, 42 USD).
126- * [ postal_address] ( https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto )
149+ * [ ` postal_address ` ] ( https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto )
127150 is a postal address (for example, 1600 Amphitheatre Parkway Mountain View,
128151 CA 94043 USA).
129- * [ color] ( https://github.com/googleapis/googleapis/blob/master/google/type/color.proto )
152+ * [ ` color ` ] ( https://github.com/googleapis/googleapis/blob/master/google/type/color.proto )
130153 is a color in the RGBA color space.
131- * [ month] ( https://github.com/googleapis/googleapis/blob/master/google/type/month.proto )
154+ * [ ` month ` ] ( https://github.com/googleapis/googleapis/blob/master/google/type/month.proto )
132155 is a month of year (for example, April).
133156
134157<a id =" do-define-widely-used-message-types-in-separate-files " ></a >
@@ -140,24 +163,6 @@ used outside your immediate team, consider putting them in their own file with
140163no dependencies. Then it's easy for anyone to use those types without
141164introducing the transitive dependencies in your other proto files.
142165
143- <a id =" do-reserve-tag-numbers-for-deleted-fields " ></a >
144-
145- ## ** Do** Reserve Tag Numbers for Deleted Fields {#reserve-tag-numbers}
146-
147- When you delete a field that's no longer used, reserve its tag number so that no
148- one accidentally re-uses it in the future. Just ` reserved 2, 3; ` is enough. No
149- type required (lets you trim dependencies!). You can also reserve names to avoid
150- recycling now-deleted field names: ` reserved "foo", "bar"; ` .
151-
152- <a id =" do-reserve-numbers-for-deleted-enum-values " ></a >
153-
154- ## ** Do** Reserve Numbers for Deleted Enum Values {#reserve-deleted-numbers}
155-
156- When you delete an enum value that's no longer used, reserve its number so that
157- no one accidentally re-uses it in the future. Just ` reserved 2, 3; ` is enough.
158- You can also reserve names to avoid recycling now-deleted value names: `reserved
159- "FOO", "BAR";`.
160-
161166<a id =" dont-change-the-default-value-of-a-field " ></a >
162167
163168## ** Don't** Change the Default Value of a Field {#change-default-value}
0 commit comments