Skip to content

Commit 771f5a1

Browse files
committed
deploy: 016ec10
1 parent 7df6773 commit 771f5a1

File tree

19 files changed

+158
-135
lines changed

19 files changed

+158
-135
lines changed

best-practices/no-cargo-cults/index.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
<a href="https://github.com/protocolbuffers/protocolbuffers.github.io/issues/new?title=Avoid%20Cargo%20Culting" class=td-page-meta--issue target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create documentation issue</a>
66
<a href=https://github.com/protocolbuffers/protobuf/issues/new class=td-page-meta--project-issue target=_blank rel=noopener><i class="fa-solid fa-list-check fa-fw"></i> Create project issue</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#editions>Best Practices Specific to Editions</a></li></ul></nav></div></aside><main class="col-12 col-md-9 col-xl-8 ps-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/best-practices/>Proto Best Practices</a></li><li class="breadcrumb-item active" aria-current=page>Avoid Cargo Culting</li></ol></nav><div class=td-content><h1>Avoid Cargo Culting</h1><div class=lead>Avoid using features where they are not needed.</div><header class=article-meta></header><p>Do not
77
<a href=https://en.wikipedia.org/wiki/Cargo_cult_programming>cargo cult</a>
8-
settings in proto files. If<br>you are creating a new proto file based on existing schema definitions, don&rsquo;t
9-
apply option settings except for those that you understand the need for.</p><h2 id=editions>Best Practices Specific to Editions</h2><p>Avoid applying <a href=/editions/features>editions features</a>
8+
settings in proto files. If you are creating a new proto file based on existing
9+
schema definitions, don&rsquo;t apply option settings except for those that you
10+
understand the need for.</p><h2 id=editions>Best Practices Specific to Editions</h2><p>Avoid applying <a href=/editions/features>editions features</a>
1011
except when they&rsquo;re actually necessary. Features in <code>.proto</code> files signal the
1112
use of either experimental future behaviors or deprecated past behaviors. Best
1213
practices for the latest edition will always be the default. New proto schema

getting-started/pythontutorial/index.html

Lines changed: 11 additions & 30 deletions
Large diffs are not rendered by default.

index.xml

Lines changed: 5 additions & 4 deletions
Large diffs are not rendered by default.

installation/index.html

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

news/2025-03-18/index.html

Lines changed: 11 additions & 0 deletions
Large diffs are not rendered by default.

news/index.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ AddFileDescriptor AddDescriptor AddEnumDescriptor AddExtensionDescriptor AddServ
2424
If you are running an older version of PHP, you can install a previous release of the protobuf PHP extension by running pecl install protobuf-3.23.3.
2525
Dropping Ruby 2.6 Support As per our official Ruby support policy, we will be dropping support for Ruby 2.</description></item><item><title>Changes Announced on June 26, 2024</title><link>https://protobuf.dev/news/2024-06-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-06-26/</guid><description>Dropping Support for Building Protobuf Java from Source with Maven We are planning to drop support for building Protobuf Java OSS from source with the Maven build system in the Protobuf Java 4.28 release. This has been marked deprecated in the 4.27 release.
2626
After this point, you can continue to use Bazel, or another build system, to build Protobuf. You can read more about building from source in the Protobuf Java README.</description></item><item><title>Changes Announced on June 29, 2023</title><link>https://protobuf.dev/news/2023-06-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-06-29/</guid><description>TL;DR: We are planning to release Protobuf Editions to the open source project in the second half of 2023. While there is no requirement to move from proto2/proto3 syntax to Editions syntax at initial release, we encourage you to plan a move in your software project&amp;rsquo;s future timeline.
27-
Protobuf Editions Protobuf Editions replace the proto2 and proto3 designations that we have used for Protocol Buffers. Instead of adding syntax = &amp;quot;proto2&amp;quot; or syntax = &amp;quot;proto3&amp;quot; at the top of proto definition files, you use an edition number, such as edition = &amp;quot;2024&amp;quot;, to specify the default behaviors your file will have.</description></item><item><title>Changes announced May 6, 2022</title><link>https://protobuf.dev/news/2022-05-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2022-05-06/</guid><description>Versioning We changed our versioning scheme to enable more-nimble updates to language-specific parts of Protocol Buffers. In the new scheme, each language has its own major version that can be incremented independently of other languages, as covered later in this topic with the Python release. The minor and patch versions, however, will remain coupled. This allows us to introduce breaking changes into some languages without requiring a bump of the major version in languages that do not experience a breaking change.</description></item><item><title>Changes Announced on November 7, 2024</title><link>https://protobuf.dev/news/2024-11-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-11-07/</guid><description>The following sections cover planned breaking changes in the v30 release, expected in 2025 Q1. Also included are some changes that aren&amp;rsquo;t breaking but may require action on your part. These are in addition to those mentioned in the News article from October 2.
27+
Protobuf Editions Protobuf Editions replace the proto2 and proto3 designations that we have used for Protocol Buffers. Instead of adding syntax = &amp;quot;proto2&amp;quot; or syntax = &amp;quot;proto3&amp;quot; at the top of proto definition files, you use an edition number, such as edition = &amp;quot;2024&amp;quot;, to specify the default behaviors your file will have.</description></item><item><title>Changes Announced on March 18, 2025</title><link>https://protobuf.dev/news/2025-03-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2025-03-18/</guid><description>Dropping Ruby 3.0 Support As per our official Ruby support policy, we will be dropping support for Ruby 3.0 and lower in Protobuf version 31, due to release in April, 2025. The minimum supported Ruby version will be 3.1.</description></item><item><title>Changes announced May 6, 2022</title><link>https://protobuf.dev/news/2022-05-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2022-05-06/</guid><description>Versioning We changed our versioning scheme to enable more-nimble updates to language-specific parts of Protocol Buffers. In the new scheme, each language has its own major version that can be incremented independently of other languages, as covered later in this topic with the Python release. The minor and patch versions, however, will remain coupled. This allows us to introduce breaking changes into some languages without requiring a bump of the major version in languages that do not experience a breaking change.</description></item><item><title>Changes Announced on November 7, 2024</title><link>https://protobuf.dev/news/2024-11-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-11-07/</guid><description>The following sections cover planned breaking changes in the v30 release, expected in 2025 Q1. Also included are some changes that aren&amp;rsquo;t breaking but may require action on your part. These are in addition to those mentioned in the News article from October 2.
2828
These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.</description></item><item><title>Changes Announced on October 1, 2024</title><link>https://protobuf.dev/news/2024-10-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-10-01/</guid><description>Bazel and Proto Rules There are upcoming changes to the way that Bazel will work for protobuf builds. These changes require awareness in the first stage, and action by project owners before the second stage.
2929
Stage 1 With the release of Bazel 8, proto rules (proto_library, cc_proto_library, java_proto_library, java_lite_proto_library, and py_proto_library) will be removed from the Bazel project. The will be added to the Protocol Buffers project in v29. Bazel will be updated to automatically use the rules from the protobuf project, so the change is initially a no-op for project owners.</description></item><item><title>Changes announced on October 10, 2023</title><link>https://protobuf.dev/news/2023-10-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-10-10/</guid><description>Protobuf Editions Features Documentation that introduces Protobuf Editions features is now available.</description></item><item><title>Changes Announced on October 2, 2024</title><link>https://protobuf.dev/news/2024-10-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-10-02/</guid><description>The following sections cover planned breaking changes in the v30 release, expected in 2025 Q1. These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.
3030
Changes in C++ C++ will bump its major version from 5.29.x to 6.30.x.
@@ -45,4 +45,5 @@ General Changes JSON Formatter Option Changes Starting in the 26.x line, the JSO
4545
Java: includingDefaultValueFields() is replaced with alwaysPrintFieldsWithNoPresence(). C++: always_print_default_values is replaced with always_print_fields_with_no_presence=True. Py: including_default_value_fields=True is replaced with always_print_fields_with_no_presence=True. The new flag behaves identically to the old flag on proto3 messages, but no longer applies to proto2 optional fields.</description></item><item><title>News Announcements for Version 29.x</title><link>https://protobuf.dev/news/v29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v29/</guid><description>The following announcements are specific to Version 29.x. For information presented chronologically, see News.
4646
Bazel and Proto Rules There are upcoming changes to the way that Bazel will work for protobuf builds. These changes require awareness in the first stage, and action by project owners before the second stage.
4747
Stage 1 With the release of Bazel 8, proto rules (proto_library, cc_proto_library, java_proto_library, java_lite_proto_library, and py_proto_library) will be removed from the Bazel project.</description></item><item><title>News Announcements for Version 30.x</title><link>https://protobuf.dev/news/v30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v30/</guid><description>The following announcements are specific to Version 30.x. For information presented chronologically, see News.
48-
The following sections cover planned breaking changes in the v30 release, expected in 2025 Q1. Also included are some changes that aren&amp;rsquo;t breaking but may require action on your part. These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.</description></item></channel></rss>
48+
The following sections cover planned breaking changes in the v30 release, expected in 2025 Q1. Also included are some changes that aren&amp;rsquo;t breaking but may require action on your part. These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.</description></item><item><title>News Announcements for Version 31.x</title><link>https://protobuf.dev/news/v31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v31/</guid><description>The following announcements are specific to Version 31.x. For information presented chronologically, see News.
49+
The following sections cover planned breaking changes in the v31 release, expected in 2025 Q2. Also included are some changes that aren&amp;rsquo;t breaking but may require action on your part. These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.</description></item></channel></rss>

news/v31/index.html

Lines changed: 16 additions & 0 deletions
Large diffs are not rendered by default.

programming-guides/editions/index.html

Lines changed: 6 additions & 2 deletions
Large diffs are not rendered by default.

programming-guides/encoding/index.html

Lines changed: 39 additions & 44 deletions
Large diffs are not rendered by default.

programming-guides/field_presence/index.html

Lines changed: 10 additions & 12 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)