You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by "wjones127 (via GitHub)" <gi...@apache.org> on 2023/04/17 16:34:16 UTC

[GitHub] [arrow] wjones127 commented on a diff in pull request #35174: GH-35084: [Docs][Format] Add how to change format specification

wjones127 commented on code in PR #35174:
URL: https://github.com/apache/arrow/pull/35174#discussion_r1168961260


##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.
+
+.. note::
+
+   We sometimes use ``[Discuss]``, ``DISCUSS: `` or something but
+   ``[DISCUSS]`` is recommended.
+
+Here are examples:
+
+* `[Discuss][Format] Add 32-bit and 64-bit Decimals <https://lists.apache.org/thread/9ynjmjlxm44j2pt443mcr2hmdl7m43yz>`_
+* `[DISCUSS][Format] Starting to do some concrete work on the new "StringView" columnar data type <https://lists.apache.org/thread/dccj1qrozo88qsxx133kcy308qwfwpfm>`_
+
+VOTE process is a process to tell whether we have reached
+consensus. We can start a vote for the format changes after we reach
+consensus in the preceding DISCUSS process.
+
+See also: `Apache Voting Process <https://www.apache.org/foundation/voting.html>`_
+
+At Least 2 Reference Implementations
+------------------------------------
+
+We must have at least 2 reference implementations and associated
+integration tests to confirm whether the format changes are
+cross-compatible and consistent.
+
+We must choose complete implementations for them. Here are candidate
+implementations:
+
+* The C++ implementation
+* The Java implementation
+
+We can discuss and vote to add more implementations to the list.
+We may use doc:`../status` for the discussion.

Review Comment:
   We should probably link to the versioning page as well:
   
   ```suggestion
   We may use doc:`../status` to determine which implementations are complete.
   
   Versioning
   ----------
   
   The format version (which is separate from the library versions) must also
   be incremented as new changed are made. See :doc:`Versioning`.
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+

Review Comment:
   ```suggestion
   
   These do not have to be done in order. In most cases, having at least one 
   draft reference implementation is helpful for design discussion.
   
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================

Review Comment:
   ```suggestion
   Changing the Apache Arrow Format Specification
   ==============================================
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------

Review Comment:
   ```suggestion
   Discussion and Voting Process
   -----------------------------
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.
+
+.. note::
+
+   We sometimes use ``[Discuss]``, ``DISCUSS: `` or something but
+   ``[DISCUSS]`` is recommended.
+
+Here are examples:

Review Comment:
   ```suggestion
   Here are some examples:
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated

Review Comment:
   ```suggestion
   * We must have at least two reference implementations and associated
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.
+
+.. note::
+
+   We sometimes use ``[Discuss]``, ``DISCUSS: `` or something but
+   ``[DISCUSS]`` is recommended.
+
+Here are examples:
+
+* `[Discuss][Format] Add 32-bit and 64-bit Decimals <https://lists.apache.org/thread/9ynjmjlxm44j2pt443mcr2hmdl7m43yz>`_
+* `[DISCUSS][Format] Starting to do some concrete work on the new "StringView" columnar data type <https://lists.apache.org/thread/dccj1qrozo88qsxx133kcy308qwfwpfm>`_
+
+VOTE process is a process to tell whether we have reached
+consensus. We can start a vote for the format changes after we reach
+consensus in the preceding DISCUSS process.

Review Comment:
   ```suggestion
   The voting process is used to verify we have reached consensus.
   We can start a vote for the format changes after we reach
   consensus in the preceding DISCUSS mailing list thread. Similar
   to discussion threads, voting thread must have the subject prefix
   ``[VOTE]``.
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.

Review Comment:
   ```suggestion
   Changes to the format should be discussed on the public mailing list.
   Anyone can join the discussion. The discussion should be started by a 
   thread in dev@arrow.apache.org with the ``[DISCUSS]`` prefixed subject.
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process

Review Comment:
   ```suggestion
   * We must discuss and vote on the changes on the public mailing list
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.
+
+.. note::
+
+   We sometimes use ``[Discuss]``, ``DISCUSS: `` or something but
+   ``[DISCUSS]`` is recommended.

Review Comment:
   ```suggestion
      We sometimes use ``[Discuss]``, ``DISCUSS: `` or something similar but
      ``[DISCUSS]`` is recommended.
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.
+
+.. note::
+
+   We sometimes use ``[Discuss]``, ``DISCUSS: `` or something but
+   ``[DISCUSS]`` is recommended.
+
+Here are examples:
+
+* `[Discuss][Format] Add 32-bit and 64-bit Decimals <https://lists.apache.org/thread/9ynjmjlxm44j2pt443mcr2hmdl7m43yz>`_
+* `[DISCUSS][Format] Starting to do some concrete work on the new "StringView" columnar data type <https://lists.apache.org/thread/dccj1qrozo88qsxx133kcy308qwfwpfm>`_
+
+VOTE process is a process to tell whether we have reached
+consensus. We can start a vote for the format changes after we reach
+consensus in the preceding DISCUSS process.
+
+See also: `Apache Voting Process <https://www.apache.org/foundation/voting.html>`_
+
+At Least 2 Reference Implementations
+------------------------------------
+
+We must have at least 2 reference implementations and associated
+integration tests to confirm whether the format changes are
+cross-compatible and consistent.

Review Comment:
   ```suggestion
   We must have at least two reference implementations and associated
   integration tests to confirm whether the format changes are
   compatible across languages and consistent.
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.
+
+.. note::
+
+   We sometimes use ``[Discuss]``, ``DISCUSS: `` or something but
+   ``[DISCUSS]`` is recommended.
+
+Here are examples:
+
+* `[Discuss][Format] Add 32-bit and 64-bit Decimals <https://lists.apache.org/thread/9ynjmjlxm44j2pt443mcr2hmdl7m43yz>`_
+* `[DISCUSS][Format] Starting to do some concrete work on the new "StringView" columnar data type <https://lists.apache.org/thread/dccj1qrozo88qsxx133kcy308qwfwpfm>`_
+
+VOTE process is a process to tell whether we have reached
+consensus. We can start a vote for the format changes after we reach
+consensus in the preceding DISCUSS process.
+
+See also: `Apache Voting Process <https://www.apache.org/foundation/voting.html>`_
+
+At Least 2 Reference Implementations
+------------------------------------
+
+We must have at least 2 reference implementations and associated
+integration tests to confirm whether the format changes are
+cross-compatible and consistent.
+
+We must choose complete implementations for them. Here are candidate

Review Comment:
   ```suggestion
   Reference implementations must be within complete Arrow implementations. Here are candidate
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.
+
+.. note::
+
+   We sometimes use ``[Discuss]``, ``DISCUSS: `` or something but
+   ``[DISCUSS]`` is recommended.
+
+Here are examples:
+
+* `[Discuss][Format] Add 32-bit and 64-bit Decimals <https://lists.apache.org/thread/9ynjmjlxm44j2pt443mcr2hmdl7m43yz>`_
+* `[DISCUSS][Format] Starting to do some concrete work on the new "StringView" columnar data type <https://lists.apache.org/thread/dccj1qrozo88qsxx133kcy308qwfwpfm>`_
+
+VOTE process is a process to tell whether we have reached
+consensus. We can start a vote for the format changes after we reach
+consensus in the preceding DISCUSS process.
+
+See also: `Apache Voting Process <https://www.apache.org/foundation/voting.html>`_
+
+At Least 2 Reference Implementations
+------------------------------------
+
+We must have at least 2 reference implementations and associated
+integration tests to confirm whether the format changes are
+cross-compatible and consistent.
+
+We must choose complete implementations for them. Here are candidate
+implementations:
+
+* The C++ implementation
+* The Java implementation

Review Comment:
   ```suggestion
   * The C++ implementation
   * The Java implementation
   * The Rust (arrow-rs) implementation
   * The Go implementation
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use

Review Comment:
   ```suggestion
   **Cross-language** compatibility is important in Apache Arrow. To keep it, we use
   ```



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.
+
+.. note::
+
+   We sometimes use ``[Discuss]``, ``DISCUSS: `` or something but
+   ``[DISCUSS]`` is recommended.
+
+Here are examples:
+
+* `[Discuss][Format] Add 32-bit and 64-bit Decimals <https://lists.apache.org/thread/9ynjmjlxm44j2pt443mcr2hmdl7m43yz>`_
+* `[DISCUSS][Format] Starting to do some concrete work on the new "StringView" columnar data type <https://lists.apache.org/thread/dccj1qrozo88qsxx133kcy308qwfwpfm>`_
+
+VOTE process is a process to tell whether we have reached
+consensus. We can start a vote for the format changes after we reach
+consensus in the preceding DISCUSS process.
+
+See also: `Apache Voting Process <https://www.apache.org/foundation/voting.html>`_
+
+At Least 2 Reference Implementations
+------------------------------------
+
+We must have at least 2 reference implementations and associated
+integration tests to confirm whether the format changes are
+cross-compatible and consistent.
+
+We must choose complete implementations for them. Here are candidate

Review Comment:
   I don't think we need to lay down hard rules. Below we link to https://arrow.apache.org/docs/status.html, which gives us a grid of implementations and their status. Which parts are relevant will depend on the feature IMO. For most new data types, I suspect what's important is IPC implementation.



##########
docs/source/format/Changing.rst:
##########
@@ -0,0 +1,67 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+How to Change Format Specification
+==================================
+
+**Cross-language** is important in Apache Arrow. To keep it, we use
+the following process when dealing with format (files in
+`<https://github.com/apache/arrow/tree/main/format>`_) changes:
+
+* We must go through a formal DISCUSS and VOTE process
+* We must have at least 2 reference implementations and associated
+  integration tests
+
+DISCUSS and VOTE Process
+------------------------
+
+DISCUSS process is a process to discuss the format changes in
+public. Anyone can join the discussion. The DISCUSS process is done by
+starting a thread in dev@arrow.apache.org with ``[DISCUSS]`` prefixed
+subject.
+
+.. note::
+
+   We sometimes use ``[Discuss]``, ``DISCUSS: `` or something but
+   ``[DISCUSS]`` is recommended.
+
+Here are examples:
+
+* `[Discuss][Format] Add 32-bit and 64-bit Decimals <https://lists.apache.org/thread/9ynjmjlxm44j2pt443mcr2hmdl7m43yz>`_
+* `[DISCUSS][Format] Starting to do some concrete work on the new "StringView" columnar data type <https://lists.apache.org/thread/dccj1qrozo88qsxx133kcy308qwfwpfm>`_
+
+VOTE process is a process to tell whether we have reached
+consensus. We can start a vote for the format changes after we reach
+consensus in the preceding DISCUSS process.
+
+See also: `Apache Voting Process <https://www.apache.org/foundation/voting.html>`_
+
+At Least 2 Reference Implementations
+------------------------------------

Review Comment:
   ```suggestion
   At Least Two Reference Implementations
   --------------------------------------
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org