變更 Apache Arrow 格式規格#
跨語言相容性在 Apache Arrow 中非常重要。為了維持相容性,在處理格式變更時(位於 apache/arrow 中的檔案),我們使用以下流程:
我們必須在公開郵寄清單上討論並投票表決這些變更
我們必須至少有兩個參考實作和相關的整合測試
這些不一定要依序完成。在大多數情況下,至少有一個草稿參考實作有助於設計討論。
注意
我們也必須更新對應的文件(位於 apache/arrow 中的檔案)。
討論與投票流程#
格式的變更應在公開郵寄清單上討論。任何人都可以加入討論。討論應由 dev@arrow.apache.org 中的主題串開始,主旨前綴為 [DISCUSS]
。
注意
我們有時會使用 [Discuss]
、DISCUSS:
或類似的用法,但建議使用 [DISCUSS]
。
以下是一些範例
投票流程用於驗證我們是否已達成共識。在先前的 DISCUSS 郵寄清單主題串中達成共識後,我們可以開始針對格式變更進行投票。與討論主題串類似,投票主題串的主旨必須有前綴 [VOTE]
。
另請參閱:Apache 投票流程
至少兩個參考實作#
我們必須至少有兩個參考實作和相關的整合測試,以確認格式變更是否跨語言相容且一致。
參考實作必須在完整的 Arrow 實作中。例如,C++ 程式庫是可以接受的,但 Python 程式庫則否,因為它是 C++ 程式庫的包裝器。以下是候選實作
C++ 實作
Java 實作
Rust (arrow-rs) 實作
Go 實作
我們可以討論並投票決定是否將更多實作新增到清單中。我們可以利用實作狀態 來判斷哪些實作是完整的。
版本控制#
格式版本(與程式庫版本不同)也必須隨著新的變更而遞增。請參閱格式版本控制與穩定性。