[Compiler][Dart] file-level option evolving = false is ignored, causing a cross-language wire-format mismatch
メンテナーはふだん 1 日以内に返信
評価
調査の方向性
The Dart generator reads evolving only from message-level options, so the file-level option evolving = false; default never reaches it. Compare that lookup with how the Java or Go generators resolve the file-level default, then run the two-line repro schema through the Dart generator. Done means the output uses a non-evolving struct and the schema-consistent type id, matching peer languages. PR #4159 already targets this, so check it before starting.
索引モデルが issue の本文から書いたものです。
説明
The Dart generator resolves the evolving option from message-level options only, while every other generator (Java, Go, Rust, C++, Swift, C#, Python, JavaScript) honors the file-level option evolving = false; default.
A schema with file-level evolving = false therefore generates @ForyStruct() (compatible/evolving struct) and TypeIds.compatibleStruct in Dart while all peer languages emit schema-consistent structs — a cross-language wire-format mismatch for the same schema.
Repro:
option evolving = false;
message User { string name = 1; }
- 主要言語
- Java
- スター
- 4.6k
- フォーク
- 470
- 平均マージ
- 9時間 28分
- マージ済み PR(30日)
- 33
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/fory のほかの issue
-
[Python] Compatible xlang read silently drops fields when the peer writes camelCase/PascalCase namesオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
[Build] Add ASF license headers to config files that allow comments再び着手できるかも @Swatantra-66 が 27 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンenhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
xlang: the snake_case conversion of field names is not specified, and the runtimes do not agree再び着手できるかも @dhruv-dagar が 14 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
メンテナーはふだん 1 日以内に返信
-
[Rust] Add an option to use Rust native enum対応中かも @BaldDemian が 18 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
apache/fory#4177 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Untyped read collapses a number literal that does not fit a double対応中かも @mohitjoshi-hey が 20 日前に担当しました。 オープンbug
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
apache/fory#4170 · コメント 3 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
liberation-data/drivine4j#547 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
BindingServiceProperties.bindings regressed to a non-thread-safe TreeMap in GH-3158: concurrent first use of binding names corrupts it対応中かも @AkashB23 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
spring-cloud/spring-cloud-stream#3321 ·
メンテナーはふだん 1 日以内に返信
-
[Bug] 资源包列表 与 模组/数据包/世界 列表排列顺序不一致対応中かも @fishdry1000 が 4 日前に担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
ai-driven-fuzzing bug claude Minor
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
linagora/twake-calendar-side-service#1333 ·
メンテナーはふだん 1 日以内に返信