This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/master by this push:
     new 1da2bfbc8 Update version to `23.0.0` and update `CHANGELOG`, add 
`label_issue.py` script (#2734)
1da2bfbc8 is described below

commit 1da2bfbc82de12ac6fb699d2579d4a129929e004
Author: Ian Alexander Joiner <[email protected]>
AuthorDate: Fri Sep 16 12:23:29 2022 -0400

    Update version to `23.0.0` and update `CHANGELOG`, add `label_issue.py` 
script (#2734)
    
    * feature complete
    
    * fix footer issue
    
    * fix duplicate changelog issue
    
    * use tac instead of head for head -n -<num> is not universal
    
    * adjust blank lines
    
    * fix footer dropping
    
    * line adj
    
    * add .bak2 to gitignore
    
    * Create changelog
    
    * Update version
    
    * Add initial relabeling script
    
    * more script
    
    * tweaks
    
    * Runnable as a script
    
    * Update changelog
    
    * updates
    
    * remove overzealous api change labeling
    
    Co-authored-by: Andrew Lamb <[email protected]>
---
 CHANGELOG-old.md                             | 115 ++++++++++++++++-
 CHANGELOG.md                                 | 183 +++++++++++++--------------
 arrow-flight/Cargo.toml                      |   4 +-
 arrow-flight/README.md                       |   2 +-
 arrow-pyarrow-integration-testing/Cargo.toml |   4 +-
 arrow/Cargo.toml                             |   2 +-
 arrow/README.md                              |   4 +-
 dev/release/README.md                        |   2 +-
 dev/release/label_issues.py                  | 153 ++++++++++++++++++++++
 integration-testing/Cargo.toml               |   2 +-
 parquet/Cargo.toml                           |   6 +-
 parquet_derive/Cargo.toml                    |   4 +-
 parquet_derive/README.md                     |   4 +-
 parquet_derive_test/Cargo.toml               |   6 +-
 14 files changed, 373 insertions(+), 118 deletions(-)

diff --git a/CHANGELOG-old.md b/CHANGELOG-old.md
index 70322b5cf..02cb7ec24 100644
--- a/CHANGELOG-old.md
+++ b/CHANGELOG-old.md
@@ -17,9 +17,122 @@
   under the License.
 -->
 
-
 # Historical Changelog
 
+## [22.0.0](https://github.com/apache/arrow-rs/tree/22.0.0) (2022-09-02)
+
+[Full Changelog](https://github.com/apache/arrow-rs/compare/21.0.0...22.0.0)
+
+**Breaking changes:**
+
+- Use `total_cmp` for floating value ordering and remove `nan_ordering` 
feature flag [\#2614](https://github.com/apache/arrow-rs/pull/2614) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Gate dyn comparison of dictionary arrays behind `dyn_cmp_dict` 
[\#2597](https://github.com/apache/arrow-rs/pull/2597) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Move JsonSerializable to json module \(\#2300\) 
[\#2595](https://github.com/apache/arrow-rs/pull/2595) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Decimal precision scale datatype change 
[\#2532](https://github.com/apache/arrow-rs/pull/2532) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Refactor PrimitiveBuilder Constructors 
[\#2518](https://github.com/apache/arrow-rs/pull/2518) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Refactoring DecimalBuilder constructors 
[\#2517](https://github.com/apache/arrow-rs/pull/2517) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Refactor FixedSizeBinaryBuilder Constructors 
[\#2516](https://github.com/apache/arrow-rs/pull/2516) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Refactor BooleanBuilder Constructors 
[\#2515](https://github.com/apache/arrow-rs/pull/2515) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Refactor UnionBuilder Constructors 
[\#2488](https://github.com/apache/arrow-rs/pull/2488) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+
+**Implemented enhancements:**
+
+- Add  Macros to assist with static dispatch 
[\#2635](https://github.com/apache/arrow-rs/issues/2635) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support comparison between DictionaryArray and BooleanArray 
[\#2617](https://github.com/apache/arrow-rs/issues/2617) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Use `total_cmp` for floating value ordering and remove `nan_ordering` 
feature flag [\#2613](https://github.com/apache/arrow-rs/issues/2613) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support empty projection in CSV, JSON readers 
[\#2603](https://github.com/apache/arrow-rs/issues/2603) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support SQL-compliant NaN ordering between for DictionaryArray and 
non-DictionaryArray [\#2599](https://github.com/apache/arrow-rs/issues/2599) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add `dyn_cmp_dict` feature flag to gate dyn comparison of dictionary arrays 
[\#2596](https://github.com/apache/arrow-rs/issues/2596) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add max\_dyn and min\_dyn for max/min for dictionary array 
[\#2584](https://github.com/apache/arrow-rs/issues/2584) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Allow FlightSQL implementers to extend `do_get()` 
[\#2581](https://github.com/apache/arrow-rs/issues/2581) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
+- Support SQL-compliant behavior on `eq_dyn`, `neq_dyn`, `lt_dyn`, 
`lt_eq_dyn`, `gt_dyn`, `gt_eq_dyn` 
[\#2569](https://github.com/apache/arrow-rs/issues/2569) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add sql-compliant feature for enabling sql-compliant kernel behavior 
[\#2568](https://github.com/apache/arrow-rs/issues/2568)
+- Calculate `sum` for dictionary array 
[\#2565](https://github.com/apache/arrow-rs/issues/2565) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add test for float nan comparison 
[\#2556](https://github.com/apache/arrow-rs/issues/2556) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Compare dictionary with string array 
[\#2548](https://github.com/apache/arrow-rs/issues/2548) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Compare dictionary with primitive array in `lt_dyn`, `lt_eq_dyn`, `gt_dyn`, 
`gt_eq_dyn` [\#2538](https://github.com/apache/arrow-rs/issues/2538) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Compare dictionary with primitive array in `eq_dyn` and `neq_dyn` 
[\#2535](https://github.com/apache/arrow-rs/issues/2535) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- UnionBuilder Create Children With Capacity 
[\#2523](https://github.com/apache/arrow-rs/issues/2523) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Speed up `like_utf8_scalar` for `%pat%` 
[\#2519](https://github.com/apache/arrow-rs/issues/2519) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Replace macro with TypedDictionaryArray in comparison kernels 
[\#2513](https://github.com/apache/arrow-rs/issues/2513) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Use same codebase for boolean kernels 
[\#2507](https://github.com/apache/arrow-rs/issues/2507) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Use u8 for Decimal Precision and Scale 
[\#2496](https://github.com/apache/arrow-rs/issues/2496) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Integrate skip row without pageIndex in SerializedPageReader in Fuzz Test 
[\#2475](https://github.com/apache/arrow-rs/issues/2475) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Avoid unecessary copies in Arrow IPC reader 
[\#2437](https://github.com/apache/arrow-rs/issues/2437) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add GenericColumnReader::skip\_records Missing OffsetIndex Fallback 
[\#2433](https://github.com/apache/arrow-rs/issues/2433) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Support Reading PageIndex with ParquetRecordBatchStream 
[\#2430](https://github.com/apache/arrow-rs/issues/2430) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Specialize FixedLenByteArrayReader for Parquet 
[\#2318](https://github.com/apache/arrow-rs/issues/2318) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Make JSON support Optional via Feature Flag 
[\#2300](https://github.com/apache/arrow-rs/issues/2300) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+
+**Fixed bugs:**
+
+- Casting timestamp array to string should not ignore timezone 
[\#2607](https://github.com/apache/arrow-rs/issues/2607) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Ilike\_ut8\_scalar kernals have incorrect logic 
[\#2544](https://github.com/apache/arrow-rs/issues/2544) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Always validate the array data when creating array in IPC reader 
[\#2541](https://github.com/apache/arrow-rs/issues/2541) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Int96Converter Truncates Timestamps 
[\#2480](https://github.com/apache/arrow-rs/issues/2480) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Error Reading Page Index When Not Available  
[\#2434](https://github.com/apache/arrow-rs/issues/2434) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- `ParquetFileArrowReader::get_record_reader[_by_colum]` `batch_size` 
overallocates [\#2321](https://github.com/apache/arrow-rs/issues/2321) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+
+**Documentation updates:**
+
+- Document All Arrow Features in docs.rs 
[\#2633](https://github.com/apache/arrow-rs/issues/2633) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+
+**Closed issues:**
+
+- Add support for CAST from `Interval(DayTime)` to `Timestamp(Nanosecond, 
None)` [\#2606](https://github.com/apache/arrow-rs/issues/2606) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Why do we check for null in TypedDictionaryArray value function 
[\#2564](https://github.com/apache/arrow-rs/issues/2564) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add the `length` field for `Buffer` 
[\#2524](https://github.com/apache/arrow-rs/issues/2524) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Avoid large over allocate buffer in async reader 
[\#2512](https://github.com/apache/arrow-rs/issues/2512) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- Rewriting Decimal Builders using `const_generic`. 
[\#2390](https://github.com/apache/arrow-rs/issues/2390) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Rewrite Decimal Array using `const_generic` 
[\#2384](https://github.com/apache/arrow-rs/issues/2384) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+
+**Merged pull requests:**
+
+- Add downcast macros \(\#2635\) 
[\#2636](https://github.com/apache/arrow-rs/pull/2636) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Document all arrow features in docs.rs \(\#2633\) 
[\#2634](https://github.com/apache/arrow-rs/pull/2634) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Document dyn\_cmp\_dict 
[\#2624](https://github.com/apache/arrow-rs/pull/2624) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Support comparison between DictionaryArray and BooleanArray 
[\#2618](https://github.com/apache/arrow-rs/pull/2618) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Cast timestamp array to string array with timezone 
[\#2608](https://github.com/apache/arrow-rs/pull/2608) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Support empty projection in CSV and JSON readers 
[\#2604](https://github.com/apache/arrow-rs/pull/2604) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Dandandan](https://github.com/Dandandan))
+- Make JSON support optional via a feature flag \(\#2300\) 
[\#2601](https://github.com/apache/arrow-rs/pull/2601) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Support SQL-compliant NaN ordering for DictionaryArray and 
non-DictionaryArray [\#2600](https://github.com/apache/arrow-rs/pull/2600) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Split out integration test plumbing \(\#2594\) \(\#2300\) 
[\#2598](https://github.com/apache/arrow-rs/pull/2598) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Refactor Binary Builder and String Builder Constructors 
[\#2592](https://github.com/apache/arrow-rs/pull/2592) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Dictionary like scalar kernels 
[\#2591](https://github.com/apache/arrow-rs/pull/2591) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Validate dictionary key in TypedDictionaryArray \(\#2578\) 
[\#2589](https://github.com/apache/arrow-rs/pull/2589) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Add max\_dyn and min\_dyn for max/min for dictionary array 
[\#2585](https://github.com/apache/arrow-rs/pull/2585) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Code cleanup of array value functions 
[\#2583](https://github.com/apache/arrow-rs/pull/2583) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Allow overriding of do\_get & export useful macro 
[\#2582](https://github.com/apache/arrow-rs/pull/2582) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([avantgardnerio](https://github.com/avantgardnerio))
+- MINOR: Upgrade to pyo3 0.17 
[\#2576](https://github.com/apache/arrow-rs/pull/2576) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([andygrove](https://github.com/andygrove))
+- Support SQL-compliant NaN behavior on eq\_dyn, neq\_dyn, lt\_dyn, 
lt\_eq\_dyn, gt\_dyn, gt\_eq\_dyn 
[\#2570](https://github.com/apache/arrow-rs/pull/2570) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Add sum\_dyn to calculate sum for dictionary array 
[\#2566](https://github.com/apache/arrow-rs/pull/2566) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- struct UnionBuilder will create child buffers with capacity 
[\#2560](https://github.com/apache/arrow-rs/pull/2560) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([kastolars](https://github.com/kastolars))
+- Don't panic on RleValueEncoder::flush\_buffer if empty \(\#2558\) 
[\#2559](https://github.com/apache/arrow-rs/pull/2559) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Add the `length` field for Buffer and use more `Buffer` in IPC reader to 
avoid memory copy. [\#2557](https://github.com/apache/arrow-rs/pull/2557) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([HaoYang670](https://github.com/HaoYang670))
+- Add test for float nan comparison 
[\#2555](https://github.com/apache/arrow-rs/pull/2555) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Compare dictionary array with string array 
[\#2549](https://github.com/apache/arrow-rs/pull/2549) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Always validate the array data \(except the `Decimal`\) when creating array 
in IPC reader [\#2547](https://github.com/apache/arrow-rs/pull/2547) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- MINOR: Fix test\_row\_type\_validation test 
[\#2546](https://github.com/apache/arrow-rs/pull/2546) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Fix ilike\_utf8\_scalar kernals 
[\#2545](https://github.com/apache/arrow-rs/pull/2545) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- fix typo [\#2540](https://github.com/apache/arrow-rs/pull/2540) 
([00Masato](https://github.com/00Masato))
+- Compare dictionary array and primitive array in lt\_dyn, lt\_eq\_dyn, 
gt\_dyn, gt\_eq\_dyn kernels 
[\#2539](https://github.com/apache/arrow-rs/pull/2539) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- \[MINOR\]Avoid large over allocate buffer in async reader 
[\#2537](https://github.com/apache/arrow-rs/pull/2537) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- Compare dictionary with primitive array in `eq_dyn` and `neq_dyn` 
[\#2533](https://github.com/apache/arrow-rs/pull/2533) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Add iterator for FixedSizeBinaryArray 
[\#2531](https://github.com/apache/arrow-rs/pull/2531) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- add bench: decimal with byte array and fixed length byte array 
[\#2529](https://github.com/apache/arrow-rs/pull/2529) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([liukun4515](https://github.com/liukun4515))
+- Add FixedLengthByteArrayReader Remove ComplexObjectArrayReader 
[\#2528](https://github.com/apache/arrow-rs/pull/2528) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Split out byte array decoders \(\#2318\) 
[\#2527](https://github.com/apache/arrow-rs/pull/2527) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Use offset index in ParquetRecordBatchStream 
[\#2526](https://github.com/apache/arrow-rs/pull/2526) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
+- Clean the `create_array` in IPC reader. 
[\#2525](https://github.com/apache/arrow-rs/pull/2525) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Remove DecimalByteArrayConvert \(\#2480\) 
[\#2522](https://github.com/apache/arrow-rs/pull/2522) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Improve performance of `%pat%` \(\>3x speedup\) 
[\#2521](https://github.com/apache/arrow-rs/pull/2521) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Dandandan](https://github.com/Dandandan))
+- remove len field from MapBuilder 
[\#2520](https://github.com/apache/arrow-rs/pull/2520) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+-  Replace macro with TypedDictionaryArray in comparison kernels 
[\#2514](https://github.com/apache/arrow-rs/pull/2514) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Avoid large over allocate buffer in sync reader 
[\#2511](https://github.com/apache/arrow-rs/pull/2511) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
+- Avoid useless memory copies in IPC reader. 
[\#2510](https://github.com/apache/arrow-rs/pull/2510) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Refactor boolean kernels to use same codebase 
[\#2508](https://github.com/apache/arrow-rs/pull/2508) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Remove Int96Converter \(\#2480\) 
[\#2481](https://github.com/apache/arrow-rs/pull/2481) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+
 ## [21.0.0](https://github.com/apache/arrow-rs/tree/21.0.0) (2022-08-18)
 
 [Full Changelog](https://github.com/apache/arrow-rs/compare/20.0.0...21.0.0)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 69f2b8af6..4a063594d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,119 +19,108 @@
 
 # Changelog
 
-## [22.0.0](https://github.com/apache/arrow-rs/tree/22.0.0) (2022-09-02)
+## [23.0.0](https://github.com/apache/arrow-rs/tree/23.0.0) (2022-09-16)
 
-[Full Changelog](https://github.com/apache/arrow-rs/compare/21.0.0...22.0.0)
+[Full Changelog](https://github.com/apache/arrow-rs/compare/22.0.0...23.0.0)
 
 **Breaking changes:**
 
-- Use `total_cmp` for floating value ordering and remove `nan_ordering` 
feature flag [\#2614](https://github.com/apache/arrow-rs/pull/2614) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Gate dyn comparison of dictionary arrays behind `dyn_cmp_dict` 
[\#2597](https://github.com/apache/arrow-rs/pull/2597) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Move JsonSerializable to json module \(\#2300\) 
[\#2595](https://github.com/apache/arrow-rs/pull/2595) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Decimal precision scale datatype change 
[\#2532](https://github.com/apache/arrow-rs/pull/2532) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
-- Refactor PrimitiveBuilder Constructors 
[\#2518](https://github.com/apache/arrow-rs/pull/2518) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
-- Refactoring DecimalBuilder constructors 
[\#2517](https://github.com/apache/arrow-rs/pull/2517) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
-- Refactor FixedSizeBinaryBuilder Constructors 
[\#2516](https://github.com/apache/arrow-rs/pull/2516) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
-- Refactor BooleanBuilder Constructors 
[\#2515](https://github.com/apache/arrow-rs/pull/2515) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
-- Refactor UnionBuilder Constructors 
[\#2488](https://github.com/apache/arrow-rs/pull/2488) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
+- Move JSON Test Format To integration-testing 
[\#2724](https://github.com/apache/arrow-rs/pull/2724) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Split out arrow-buffer crate \(\#2594\) 
[\#2693](https://github.com/apache/arrow-rs/pull/2693) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Simplify DictionaryBuilder constructors \(\#2684\) \(\#2054\) 
[\#2685](https://github.com/apache/arrow-rs/pull/2685) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Deprecate RecordBatch::concat replace with concat\_batches \(\#2594\) 
[\#2683](https://github.com/apache/arrow-rs/pull/2683) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Add overflow-checking variant for primitive arithmetic kernels and 
explicitly define overflow behavior 
[\#2643](https://github.com/apache/arrow-rs/pull/2643) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Update thrift v0.16 and vendor parquet-format \(\#2502\) 
[\#2626](https://github.com/apache/arrow-rs/pull/2626) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Update flight definitions including backwards-incompatible change to 
GetSchema [\#2586](https://github.com/apache/arrow-rs/pull/2586) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([liukun4515](https://github.com/liukun4515))
 
 **Implemented enhancements:**
 
-- Add  Macros to assist with static dispatch 
[\#2635](https://github.com/apache/arrow-rs/issues/2635) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Support comparison between DictionaryArray and BooleanArray 
[\#2617](https://github.com/apache/arrow-rs/issues/2617) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Use `total_cmp` for floating value ordering and remove `nan_ordering` 
feature flag [\#2613](https://github.com/apache/arrow-rs/issues/2613) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Support empty projection in CSV, JSON readers 
[\#2603](https://github.com/apache/arrow-rs/issues/2603) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Support SQL-compliant NaN ordering between for DictionaryArray and 
non-DictionaryArray [\#2599](https://github.com/apache/arrow-rs/issues/2599) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Add `dyn_cmp_dict` feature flag to gate dyn comparison of dictionary arrays 
[\#2596](https://github.com/apache/arrow-rs/issues/2596) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Add max\_dyn and min\_dyn for max/min for dictionary array 
[\#2584](https://github.com/apache/arrow-rs/issues/2584) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Allow FlightSQL implementers to extend `do_get()` 
[\#2581](https://github.com/apache/arrow-rs/issues/2581) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
-- Support SQL-compliant behavior on `eq_dyn`, `neq_dyn`, `lt_dyn`, 
`lt_eq_dyn`, `gt_dyn`, `gt_eq_dyn` 
[\#2569](https://github.com/apache/arrow-rs/issues/2569) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Add sql-compliant feature for enabling sql-compliant kernel behavior 
[\#2568](https://github.com/apache/arrow-rs/issues/2568)
-- Calculate `sum` for dictionary array 
[\#2565](https://github.com/apache/arrow-rs/issues/2565) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Add test for float nan comparison 
[\#2556](https://github.com/apache/arrow-rs/issues/2556) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Compare dictionary with string array 
[\#2548](https://github.com/apache/arrow-rs/issues/2548) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Compare dictionary with primitive array in `lt_dyn`, `lt_eq_dyn`, `gt_dyn`, 
`gt_eq_dyn` [\#2538](https://github.com/apache/arrow-rs/issues/2538) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Compare dictionary with primitive array in `eq_dyn` and `neq_dyn` 
[\#2535](https://github.com/apache/arrow-rs/issues/2535) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- UnionBuilder Create Children With Capacity 
[\#2523](https://github.com/apache/arrow-rs/issues/2523) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Speed up `like_utf8_scalar` for `%pat%` 
[\#2519](https://github.com/apache/arrow-rs/issues/2519) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Replace macro with TypedDictionaryArray in comparison kernels 
[\#2513](https://github.com/apache/arrow-rs/issues/2513) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Use same codebase for boolean kernels 
[\#2507](https://github.com/apache/arrow-rs/issues/2507) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Use u8 for Decimal Precision and Scale 
[\#2496](https://github.com/apache/arrow-rs/issues/2496) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Integrate skip row without pageIndex in SerializedPageReader in Fuzz Test 
[\#2475](https://github.com/apache/arrow-rs/issues/2475) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Avoid unecessary copies in Arrow IPC reader 
[\#2437](https://github.com/apache/arrow-rs/issues/2437) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Add GenericColumnReader::skip\_records Missing OffsetIndex Fallback 
[\#2433](https://github.com/apache/arrow-rs/issues/2433) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Support Reading PageIndex with ParquetRecordBatchStream 
[\#2430](https://github.com/apache/arrow-rs/issues/2430) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Specialize FixedLenByteArrayReader for Parquet 
[\#2318](https://github.com/apache/arrow-rs/issues/2318) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Make JSON support Optional via Feature Flag 
[\#2300](https://github.com/apache/arrow-rs/issues/2300) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Cleanup like and nlike utf8 kernels 
[\#2744](https://github.com/apache/arrow-rs/issues/2744) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Speedup eq and neq kernels for utf8 arrays 
[\#2742](https://github.com/apache/arrow-rs/issues/2742) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- API for more ergonomic construction of `RecordBatchOptions` 
[\#2728](https://github.com/apache/arrow-rs/issues/2728) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Automate updates to `CHANGELOG-old.md` 
[\#2726](https://github.com/apache/arrow-rs/issues/2726)
+- Don't check the `DivideByZero` error for float modulus 
[\#2720](https://github.com/apache/arrow-rs/issues/2720) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- `try_binary` should not panic on unequaled array length. 
[\#2715](https://github.com/apache/arrow-rs/issues/2715) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add benchmark for bitwise operation 
[\#2714](https://github.com/apache/arrow-rs/issues/2714) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add overflow-checking variants of arithmetic scalar dyn kernels 
[\#2712](https://github.com/apache/arrow-rs/issues/2712) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add divide\_opt kernel which produce null values on division by zero error 
[\#2709](https://github.com/apache/arrow-rs/issues/2709) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add `DataType` function to detect nested types 
[\#2704](https://github.com/apache/arrow-rs/issues/2704) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add support of sorting dictionary of other primitive types 
[\#2700](https://github.com/apache/arrow-rs/issues/2700) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Sort indices of dictionary string values 
[\#2697](https://github.com/apache/arrow-rs/issues/2697) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support empty projection in `RecordBatch::project` 
[\#2690](https://github.com/apache/arrow-rs/issues/2690) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support sorting dictionary encoded primitive integer arrays 
[\#2679](https://github.com/apache/arrow-rs/issues/2679) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Use BitIndexIterator in min\_max\_helper 
[\#2674](https://github.com/apache/arrow-rs/issues/2674) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support building comparator for dictionaries of primitive integer values 
[\#2672](https://github.com/apache/arrow-rs/issues/2672) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Change max/min string macro to generic helper function `min_max_helper` 
[\#2657](https://github.com/apache/arrow-rs/issues/2657) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add overflow-checking variant of arithmetic scalar kernels 
[\#2651](https://github.com/apache/arrow-rs/issues/2651) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Compare dictionary with binary array 
[\#2644](https://github.com/apache/arrow-rs/issues/2644) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Add overflow-checking variant for primitive arithmetic kernels 
[\#2642](https://github.com/apache/arrow-rs/issues/2642) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Use `downcast_primitive_array` in arithmetic kernels 
[\#2639](https://github.com/apache/arrow-rs/issues/2639) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Support DictionaryArray in temporal kernels 
[\#2622](https://github.com/apache/arrow-rs/issues/2622) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Inline Generated Thift Code Into Parquet Crate 
[\#2502](https://github.com/apache/arrow-rs/issues/2502) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
 
 **Fixed bugs:**
 
-- Casting timestamp array to string should not ignore timezone 
[\#2607](https://github.com/apache/arrow-rs/issues/2607) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Ilike\_ut8\_scalar kernals have incorrect logic 
[\#2544](https://github.com/apache/arrow-rs/issues/2544) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Always validate the array data when creating array in IPC reader 
[\#2541](https://github.com/apache/arrow-rs/issues/2541) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Int96Converter Truncates Timestamps 
[\#2480](https://github.com/apache/arrow-rs/issues/2480) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Error Reading Page Index When Not Available  
[\#2434](https://github.com/apache/arrow-rs/issues/2434) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- `ParquetFileArrowReader::get_record_reader[_by_colum]` `batch_size` 
overallocates [\#2321](https://github.com/apache/arrow-rs/issues/2321) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-
-**Documentation updates:**
-
-- Document All Arrow Features in docs.rs 
[\#2633](https://github.com/apache/arrow-rs/issues/2633) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Escape contains patterns for utf8 like kernels 
[\#2745](https://github.com/apache/arrow-rs/issues/2745) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Float Array should not panic on `DivideByZero` in the `Divide` kernel 
[\#2719](https://github.com/apache/arrow-rs/issues/2719) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- DictionaryBuilders can Create Invalid DictionaryArrays 
[\#2684](https://github.com/apache/arrow-rs/issues/2684) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- `arrow` crate does not build with `features = ["ffi"]` and `default_features 
= false`. [\#2670](https://github.com/apache/arrow-rs/issues/2670) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Invalid results with `RowSelector` having `row_count` of 0 
[\#2669](https://github.com/apache/arrow-rs/issues/2669) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- clippy error: unresolved import `crate::array::layout` 
[\#2659](https://github.com/apache/arrow-rs/issues/2659) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Cast the numeric without the `CastOptions` 
[\#2648](https://github.com/apache/arrow-rs/issues/2648) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Explicitly define overflow behavior for primitive arithmetic kernels 
[\#2641](https://github.com/apache/arrow-rs/issues/2641) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- update the `flight.proto` and fix schema to SchemaResult 
[\#2571](https://github.com/apache/arrow-rs/issues/2571) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
+- Panic when first data page is skipped using ColumnChunkData::Sparse 
[\#2543](https://github.com/apache/arrow-rs/issues/2543) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
+- `SchemaResult` in IPC deviates from other implementations 
[\#2445](https://github.com/apache/arrow-rs/issues/2445) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)]
 
 **Closed issues:**
 
-- Add support for CAST from `Interval(DayTime)` to `Timestamp(Nanosecond, 
None)` [\#2606](https://github.com/apache/arrow-rs/issues/2606) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Why do we check for null in TypedDictionaryArray value function 
[\#2564](https://github.com/apache/arrow-rs/issues/2564) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Add the `length` field for `Buffer` 
[\#2524](https://github.com/apache/arrow-rs/issues/2524) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Avoid large over allocate buffer in async reader 
[\#2512](https://github.com/apache/arrow-rs/issues/2512) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)]
-- Rewriting Decimal Builders using `const_generic`. 
[\#2390](https://github.com/apache/arrow-rs/issues/2390) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
-- Rewrite Decimal Array using `const_generic` 
[\#2384](https://github.com/apache/arrow-rs/issues/2384) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
+- Implement collect for int values 
[\#2696](https://github.com/apache/arrow-rs/issues/2696) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)]
 
 **Merged pull requests:**
 
-- Add downcast macros \(\#2635\) 
[\#2636](https://github.com/apache/arrow-rs/pull/2636) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Document all arrow features in docs.rs \(\#2633\) 
[\#2634](https://github.com/apache/arrow-rs/pull/2634) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Document dyn\_cmp\_dict 
[\#2624](https://github.com/apache/arrow-rs/pull/2624) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Support comparison between DictionaryArray and BooleanArray 
[\#2618](https://github.com/apache/arrow-rs/pull/2618) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Cast timestamp array to string array with timezone 
[\#2608](https://github.com/apache/arrow-rs/pull/2608) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Support empty projection in CSV and JSON readers 
[\#2604](https://github.com/apache/arrow-rs/pull/2604) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Dandandan](https://github.com/Dandandan))
-- Make JSON support optional via a feature flag \(\#2300\) 
[\#2601](https://github.com/apache/arrow-rs/pull/2601) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Support SQL-compliant NaN ordering for DictionaryArray and 
non-DictionaryArray [\#2600](https://github.com/apache/arrow-rs/pull/2600) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Split out integration test plumbing \(\#2594\) \(\#2300\) 
[\#2598](https://github.com/apache/arrow-rs/pull/2598) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Refactor Binary Builder and String Builder Constructors 
[\#2592](https://github.com/apache/arrow-rs/pull/2592) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
-- Dictionary like scalar kernels 
[\#2591](https://github.com/apache/arrow-rs/pull/2591) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
-- Validate dictionary key in TypedDictionaryArray \(\#2578\) 
[\#2589](https://github.com/apache/arrow-rs/pull/2589) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- Add max\_dyn and min\_dyn for max/min for dictionary array 
[\#2585](https://github.com/apache/arrow-rs/pull/2585) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Code cleanup of array value functions 
[\#2583](https://github.com/apache/arrow-rs/pull/2583) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
-- Allow overriding of do\_get & export useful macro 
[\#2582](https://github.com/apache/arrow-rs/pull/2582) 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([avantgardnerio](https://github.com/avantgardnerio))
-- MINOR: Upgrade to pyo3 0.17 
[\#2576](https://github.com/apache/arrow-rs/pull/2576) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([andygrove](https://github.com/andygrove))
-- Support SQL-compliant NaN behavior on eq\_dyn, neq\_dyn, lt\_dyn, 
lt\_eq\_dyn, gt\_dyn, gt\_eq\_dyn 
[\#2570](https://github.com/apache/arrow-rs/pull/2570) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Add sum\_dyn to calculate sum for dictionary array 
[\#2566](https://github.com/apache/arrow-rs/pull/2566) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- struct UnionBuilder will create child buffers with capacity 
[\#2560](https://github.com/apache/arrow-rs/pull/2560) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([kastolars](https://github.com/kastolars))
-- Don't panic on RleValueEncoder::flush\_buffer if empty \(\#2558\) 
[\#2559](https://github.com/apache/arrow-rs/pull/2559) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Add the `length` field for Buffer and use more `Buffer` in IPC reader to 
avoid memory copy. [\#2557](https://github.com/apache/arrow-rs/pull/2557) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
[[arrow-flight](https://github.com/apache/arrow-rs/labels/arrow-flight)] 
([HaoYang670](https://github.com/HaoYang670))
-- Add test for float nan comparison 
[\#2555](https://github.com/apache/arrow-rs/pull/2555) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Compare dictionary array with string array 
[\#2549](https://github.com/apache/arrow-rs/pull/2549) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Always validate the array data \(except the `Decimal`\) when creating array 
in IPC reader [\#2547](https://github.com/apache/arrow-rs/pull/2547) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- MINOR: Fix test\_row\_type\_validation test 
[\#2546](https://github.com/apache/arrow-rs/pull/2546) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Fix ilike\_utf8\_scalar kernals 
[\#2545](https://github.com/apache/arrow-rs/pull/2545) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
-- fix typo [\#2540](https://github.com/apache/arrow-rs/pull/2540) 
([00Masato](https://github.com/00Masato))
-- Compare dictionary array and primitive array in lt\_dyn, lt\_eq\_dyn, 
gt\_dyn, gt\_eq\_dyn kernels 
[\#2539](https://github.com/apache/arrow-rs/pull/2539) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- \[MINOR\]Avoid large over allocate buffer in async reader 
[\#2537](https://github.com/apache/arrow-rs/pull/2537) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
-- Compare dictionary with primitive array in `eq_dyn` and `neq_dyn` 
[\#2533](https://github.com/apache/arrow-rs/pull/2533) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Add iterator for FixedSizeBinaryArray 
[\#2531](https://github.com/apache/arrow-rs/pull/2531) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
-- add bench: decimal with byte array and fixed length byte array 
[\#2529](https://github.com/apache/arrow-rs/pull/2529) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([liukun4515](https://github.com/liukun4515))
-- Add FixedLengthByteArrayReader Remove ComplexObjectArrayReader 
[\#2528](https://github.com/apache/arrow-rs/pull/2528) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Split out byte array decoders \(\#2318\) 
[\#2527](https://github.com/apache/arrow-rs/pull/2527) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Use offset index in ParquetRecordBatchStream 
[\#2526](https://github.com/apache/arrow-rs/pull/2526) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
-- Clean the `create_array` in IPC reader. 
[\#2525](https://github.com/apache/arrow-rs/pull/2525) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- Remove DecimalByteArrayConvert \(\#2480\) 
[\#2522](https://github.com/apache/arrow-rs/pull/2522) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
-- Improve performance of `%pat%` \(\>3x speedup\) 
[\#2521](https://github.com/apache/arrow-rs/pull/2521) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Dandandan](https://github.com/Dandandan))
-- remove len field from MapBuilder 
[\#2520](https://github.com/apache/arrow-rs/pull/2520) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([psvri](https://github.com/psvri))
--  Replace macro with TypedDictionaryArray in comparison kernels 
[\#2514](https://github.com/apache/arrow-rs/pull/2514) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Avoid large over allocate buffer in sync reader 
[\#2511](https://github.com/apache/arrow-rs/pull/2511) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([Ted-Jiang](https://github.com/Ted-Jiang))
-- Avoid useless memory copies in IPC reader. 
[\#2510](https://github.com/apache/arrow-rs/pull/2510) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
-- Refactor boolean kernels to use same codebase 
[\#2508](https://github.com/apache/arrow-rs/pull/2508) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
-- Remove Int96Converter \(\#2480\) 
[\#2481](https://github.com/apache/arrow-rs/pull/2481) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([tustvold](https://github.com/tustvold))
+- Speedup string equal/not equal to empty string, cleanup like/ilike kernels, 
fix escape bug [\#2743](https://github.com/apache/arrow-rs/pull/2743) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Dandandan](https://github.com/Dandandan))
+- Partially flatten arrow-buffer 
[\#2737](https://github.com/apache/arrow-rs/pull/2737) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Automate updates to `CHANGELOG-old.md` 
[\#2732](https://github.com/apache/arrow-rs/pull/2732) 
([iajoiner](https://github.com/iajoiner))
+- Update read parquet example in parquet/arrow home 
[\#2730](https://github.com/apache/arrow-rs/pull/2730) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([datapythonista](https://github.com/datapythonista))
+- Better construction of RecordBatchOptions 
[\#2729](https://github.com/apache/arrow-rs/pull/2729) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([askoa](https://github.com/askoa))
+- benchmark: bitwise operation 
[\#2718](https://github.com/apache/arrow-rs/pull/2718) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- Update `try_binary` and `checked_ops`, and remove `math_checked_op` 
[\#2717](https://github.com/apache/arrow-rs/pull/2717) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([HaoYang670](https://github.com/HaoYang670))
+- Support bitwise op in kernel: or,xor,not 
[\#2716](https://github.com/apache/arrow-rs/pull/2716) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- Add overflow-checking variants of arithmetic scalar dyn kernels 
[\#2713](https://github.com/apache/arrow-rs/pull/2713) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Add divide\_opt kernel which produce null values on division by zero error 
[\#2710](https://github.com/apache/arrow-rs/pull/2710) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Add DataType::is\_nested\(\) 
[\#2707](https://github.com/apache/arrow-rs/pull/2707) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([kfastov](https://github.com/kfastov))
+- Update criterion requirement from 0.3 to 0.4 
[\#2706](https://github.com/apache/arrow-rs/pull/2706) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([dependabot[bot]](https://github.com/apps/dependabot))
+- Support bitwise and operation in the kernel 
[\#2703](https://github.com/apache/arrow-rs/pull/2703) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- Add support of sorting dictionary of other primitive arrays 
[\#2701](https://github.com/apache/arrow-rs/pull/2701) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Clarify docs of binary and string builders 
[\#2699](https://github.com/apache/arrow-rs/pull/2699) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([datapythonista](https://github.com/datapythonista))
+- Sort indices of dictionary string values 
[\#2698](https://github.com/apache/arrow-rs/pull/2698) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Add support for empty projection in RecordBatch::project 
[\#2691](https://github.com/apache/arrow-rs/pull/2691) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([Dandandan](https://github.com/Dandandan))
+- Temporarily disable Golang integration tests re-enable JS 
[\#2689](https://github.com/apache/arrow-rs/pull/2689) 
([tustvold](https://github.com/tustvold))
+- Verify valid UTF-8 when converting byte array \(\#2205\) 
[\#2686](https://github.com/apache/arrow-rs/pull/2686) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Support sorting dictionary encoded primitive integer arrays 
[\#2680](https://github.com/apache/arrow-rs/pull/2680) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Skip RowSelectors with zero rows 
[\#2678](https://github.com/apache/arrow-rs/pull/2678) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([askoa](https://github.com/askoa))
+- Faster Null Path Selection in ArrayData Equality 
[\#2676](https://github.com/apache/arrow-rs/pull/2676) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([dhruv9vats](https://github.com/dhruv9vats))
+- Use BitIndexIterator in min\_max\_helper 
[\#2675](https://github.com/apache/arrow-rs/pull/2675) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Support building comparator for dictionaries of primitive integer values 
[\#2673](https://github.com/apache/arrow-rs/pull/2673) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- json feature always requires base64 feature 
[\#2668](https://github.com/apache/arrow-rs/pull/2668) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([eagletmt](https://github.com/eagletmt))
+- Add try\_unary, binary, try\_binary kernels ~90% faster 
[\#2666](https://github.com/apache/arrow-rs/pull/2666) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Use downcast\_dictionary\_array in unary\_dyn 
[\#2663](https://github.com/apache/arrow-rs/pull/2663) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- optimize the `numeric_cast_with_error` 
[\#2661](https://github.com/apache/arrow-rs/pull/2661) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- ffi feature also requires layout 
[\#2660](https://github.com/apache/arrow-rs/pull/2660) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Change max/min string macro to generic helper function min\_max\_helper 
[\#2658](https://github.com/apache/arrow-rs/pull/2658) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Fix flaky test `test_fuzz_async_reader_selection` 
[\#2656](https://github.com/apache/arrow-rs/pull/2656) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
+- MINOR: Ignore flaky test test\_fuzz\_async\_reader\_selection 
[\#2655](https://github.com/apache/arrow-rs/pull/2655) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([viirya](https://github.com/viirya))
+- MutableBuffer::typed\_data - shared ref access to the typed slice 
[\#2652](https://github.com/apache/arrow-rs/pull/2652) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([medwards](https://github.com/medwards))
+- Overflow-checking variant of arithmetic scalar kernels 
[\#2650](https://github.com/apache/arrow-rs/pull/2650) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- support `CastOption` for casting numeric 
[\#2649](https://github.com/apache/arrow-rs/pull/2649) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([liukun4515](https://github.com/liukun4515))
+- Help LLVM vectorize comparison kernel ~50-80% faster 
[\#2646](https://github.com/apache/arrow-rs/pull/2646) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Support comparison between dictionary array and binary array 
[\#2645](https://github.com/apache/arrow-rs/pull/2645) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Use `downcast_primitive_array` in arithmetic kernels 
[\#2640](https://github.com/apache/arrow-rs/pull/2640) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Fully qualifying parquet items 
[\#2638](https://github.com/apache/arrow-rs/pull/2638) 
([dingxiangfei2009](https://github.com/dingxiangfei2009))
+- Support DictionaryArray in temporal kernels 
[\#2623](https://github.com/apache/arrow-rs/pull/2623) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([viirya](https://github.com/viirya))
+- Comparable Row Format [\#2593](https://github.com/apache/arrow-rs/pull/2593) 
[[arrow](https://github.com/apache/arrow-rs/labels/arrow)] 
([tustvold](https://github.com/tustvold))
+- Fix bug in page skipping 
[\#2552](https://github.com/apache/arrow-rs/pull/2552) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([thinkharderdev](https://github.com/thinkharderdev))
 
 
 
diff --git a/arrow-flight/Cargo.toml b/arrow-flight/Cargo.toml
index ecf02625c..a6fb8751c 100644
--- a/arrow-flight/Cargo.toml
+++ b/arrow-flight/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "arrow-flight"
 description = "Apache Arrow Flight"
-version = "22.0.0"
+version = "23.0.0"
 edition = "2021"
 rust-version = "1.62"
 authors = ["Apache Arrow <[email protected]>"]
@@ -27,7 +27,7 @@ repository = "https://github.com/apache/arrow-rs";
 license = "Apache-2.0"
 
 [dependencies]
-arrow = { path = "../arrow", version = "22.0.0", default-features = false, 
features = ["ipc"] }
+arrow = { path = "../arrow", version = "23.0.0", default-features = false, 
features = ["ipc"] }
 base64 = { version = "0.13", default-features = false }
 tonic = { version = "0.8", default-features = false, features = ["transport", 
"codegen", "prost"] }
 bytes = { version = "1", default-features = false }
diff --git a/arrow-flight/README.md b/arrow-flight/README.md
index 9e9a18ad4..e01809f38 100644
--- a/arrow-flight/README.md
+++ b/arrow-flight/README.md
@@ -27,7 +27,7 @@ Add this to your Cargo.toml:
 
 ```toml
 [dependencies]
-arrow-flight = "22.0.0"
+arrow-flight = "23.0.0"
 ```
 
 Apache Arrow Flight is a gRPC based protocol for exchanging Arrow data between 
processes. See the blog post [Introducing Apache Arrow Flight: A Framework for 
Fast Data 
Transport](https://arrow.apache.org/blog/2019/10/13/introducing-arrow-flight/) 
for more information.
diff --git a/arrow-pyarrow-integration-testing/Cargo.toml 
b/arrow-pyarrow-integration-testing/Cargo.toml
index 9aef5a057..38bbcf9e8 100644
--- a/arrow-pyarrow-integration-testing/Cargo.toml
+++ b/arrow-pyarrow-integration-testing/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "arrow-pyarrow-integration-testing"
 description = ""
-version = "22.0.0"
+version = "23.0.0"
 homepage = "https://github.com/apache/arrow-rs";
 repository = "https://github.com/apache/arrow-rs";
 authors = ["Apache Arrow <[email protected]>"]
@@ -32,7 +32,7 @@ name = "arrow_pyarrow_integration_testing"
 crate-type = ["cdylib"]
 
 [dependencies]
-arrow = { path = "../arrow", version = "22.0.0", features = ["pyarrow"] }
+arrow = { path = "../arrow", version = "23.0.0", features = ["pyarrow"] }
 pyo3 = { version = "0.17", features = ["extension-module"] }
 
 [package.metadata.maturin]
diff --git a/arrow/Cargo.toml b/arrow/Cargo.toml
index 1580856df..f1918fccd 100644
--- a/arrow/Cargo.toml
+++ b/arrow/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "arrow"
-version = "22.0.0"
+version = "23.0.0"
 description = "Rust implementation of Apache Arrow"
 homepage = "https://github.com/apache/arrow-rs";
 repository = "https://github.com/apache/arrow-rs";
diff --git a/arrow/README.md b/arrow/README.md
index 7a95df0f2..a1c0e6279 100644
--- a/arrow/README.md
+++ b/arrow/README.md
@@ -35,7 +35,7 @@ This crate is tested with the latest stable version of Rust. 
We do not currently
 
 The arrow crate follows the [SemVer 
standard](https://doc.rust-lang.org/cargo/reference/semver.html) defined by 
Cargo and works well within the Rust crate ecosystem.
 
-However, for historical reasons, this crate uses versions with major numbers 
greater than `0.x` (e.g. `22.0.0`), unlike many other crates in the Rust 
ecosystem which spend extended time releasing versions `0.x` to signal planned 
ongoing API changes. Minor arrow releases contain only compatible changes, 
while major releases may contain breaking API changes.
+However, for historical reasons, this crate uses versions with major numbers 
greater than `0.x` (e.g. `23.0.0`), unlike many other crates in the Rust 
ecosystem which spend extended time releasing versions `0.x` to signal planned 
ongoing API changes. Minor arrow releases contain only compatible changes, 
while major releases may contain breaking API changes.
 
 ## Feature Flags
 
@@ -61,7 +61,7 @@ The [Apache Arrow 
Status](https://arrow.apache.org/docs/status.html) page lists
 
 ## Safety
 
-Arrow seeks to uphold the Rust Soundness Pledge as articulated eloquently 
[here](https://raphlinus.github.io/rust/22.0.01/18/soundness-pledge.html). 
Specifically:
+Arrow seeks to uphold the Rust Soundness Pledge as articulated eloquently 
[here](https://raphlinus.github.io/rust/23.0.01/18/soundness-pledge.html). 
Specifically:
 
 > The intent of this crate is to be free of soundness bugs. The developers 
 > will do their best to avoid them, and welcome help in analyzing and fixing 
 > them
 
diff --git a/dev/release/README.md b/dev/release/README.md
index 3783301e9..48748eccb 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -78,7 +78,7 @@ CHANGELOG_GITHUB_TOKEN=<TOKEN> 
./dev/release/update_change_log.sh
 git commit -a -m 'Create changelog'
 
 # update versions
-sed -i '' -e 's/14.0.0/22.0.0/g' `find . -name 'Cargo.toml' -or -name '*.md' | 
grep -v CHANGELOG.md`
+sed -i '' -e 's/14.0.0/23.0.0/g' `find . -name 'Cargo.toml' -or -name '*.md' | 
grep -v CHANGELOG.md`
 git commit -a -m 'Update version'
 ```
 
diff --git a/dev/release/label_issues.py b/dev/release/label_issues.py
new file mode 100755
index 000000000..b004b7fa7
--- /dev/null
+++ b/dev/release/label_issues.py
@@ -0,0 +1,153 @@
+#!/usr/bin/env python
+
+##############################################################################
+# 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.
+##############################################################################
+
+# Python script to add labels to github issues from the PRs that closed them
+#
+# Required setup:
+# $ pip install PyGithub
+#
+# ARROW_GITHUB_API_TOKEN  needs to be set to your github token
+from github import Github
+import os
+import re
+
+
+
+# get all cross referenced issues from the named issue
+# (aka linked PRs)
+#    issue = arrow_repo.get_issue(issue_number)
+def get_cross_referenced_issues(issue):
+    all_issues = set()
+    for timeline_item in issue.get_timeline():
+        if timeline_item.event == 'cross-referenced' and 
timeline_item.source.type == 'issue':
+            all_issues.add(timeline_item.source.issue)
+
+    # convert to list
+    return [i for i in all_issues]
+
+
+# labels not to transfer
+BLACKLIST_LABELS = {'development-process', 'api-change'}
+
+# Adds labels to the specified issue with the labels from linked pull requests
+def relabel_issue(arrow_repo, issue_number):
+    #print(issue_number, 'fetching issue')
+    issue = arrow_repo.get_issue(issue_number)
+    print('considering issue', issue.html_url)
+    linked_issues = get_cross_referenced_issues(issue)
+    #print('  ', 'cross referenced issues:', linked_issues)
+
+    # Figure out what labels need to be added, if any
+    existing_labels = set()
+    for label in issue.labels:
+        existing_labels.add(label.name)
+
+    # find all labels to add
+    for linked_issue in linked_issues:
+        if linked_issue.pull_request is None:
+            print('  ', 'not pull request, skipping', linked_issue.html_url)
+            continue
+
+        if linked_issue.repository.name != 'arrow-rs':
+            print('  ', 'not in arrow-rs, skipping', linked_issue.html_url)
+            continue
+
+        print('  ', 'finding labels for linked pr', linked_issue.html_url)
+        linked_labels = set()
+        for label in linked_issue.labels:
+            linked_labels.add(label.name)
+            #print('  ', 'existing labels:', existing_labels)
+
+            labels_to_add = linked_labels.difference(existing_labels)
+
+            # remove any blacklist labels, if any
+            for l in BLACKLIST_LABELS:
+                labels_to_add.discard(l)
+
+            if len(labels_to_add) > 0:
+                print('  ', 'adding labels: ', labels_to_add, 'to', 
issue.number)
+                for label in labels_to_add:
+                    issue.add_to_labels(label)
+                    print('    ', 'added', label)
+                    existing_labels.add(label)
+
+                # leave a note about what updated these labels
+                issue.create_comment('`label_issue.py` automatically added 
labels {} from #{}'.format(labels_to_add, linked_issue.number))
+
+
+# what section headings in the CHANGELOG.md file contain closed issues that 
may need relabeling
+ISSUE_SECTION_NAMES = ['Closed issues:', 'Fixed bugs:', 'Implemented 
enhancements:']
+
+# find all possible issues / bugs by scraping CHANGELOG.md
+#
+# TODO: Find all tickets merged since this tag
+# The compare api can find all commits since that tag
+# I could not find a good way in the github API to find the PRs connected to a 
commit
+#since_tag = '22.0.0'
+
+def find_issues_from_changelog():
+    script_dir = os.path.dirname(os.path.realpath(__file__))
+    path = os.path.join(script_dir, '..', '..', 'CHANGELOG.md')
+
+    issues = set()
+
+    # Flag that
+    in_issue_section = False
+
+    with open(path, 'r') as f:
+        for line in f:
+            #print('line: ', line)
+            line = line.strip()
+            if line.startswith('**'):
+                section_name = line.replace('**', '')
+                if section_name in ISSUE_SECTION_NAMES:
+                    #print('  ', 'is issue section', section_name)
+                    in_issue_section = True
+                else:
+                    #print('  ', 'is not issue section', section_name)
+                    in_issue_section = False
+
+            if in_issue_section:
+                match = re.search('#([\d]+)', line)
+                if match is not None:
+                    #print('  ', 'reference', match.group(1))
+                    issues.add(match.group(1))
+
+    # Convert to list of number
+    return sorted([int(i) for i in issues])
+
+
+if __name__ == '__main__':
+    print('Attempting to label github issues from their corresponding PRs')
+
+    issues = find_issues_from_changelog()
+    print('Issues found in CHANGELOG: ', issues)
+
+    github_token = os.environ.get("ARROW_GITHUB_API_TOKEN")
+
+    print('logging into GITHUB...')
+    github = Github(github_token)
+
+    print('getting github repo...')
+    arrow_repo = github.get_repo('apache/arrow-rs')
+
+    for issue in issues:
+        relabel_issue(arrow_repo, issue)
diff --git a/integration-testing/Cargo.toml b/integration-testing/Cargo.toml
index b9f6cf818..e45b812dd 100644
--- a/integration-testing/Cargo.toml
+++ b/integration-testing/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "arrow-integration-testing"
 description = "Binaries used in the Arrow integration tests"
-version = "22.0.0"
+version = "23.0.0"
 homepage = "https://github.com/apache/arrow-rs";
 repository = "https://github.com/apache/arrow-rs";
 authors = ["Apache Arrow <[email protected]>"]
diff --git a/parquet/Cargo.toml b/parquet/Cargo.toml
index a2d11eb58..9b95868f3 100644
--- a/parquet/Cargo.toml
+++ b/parquet/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "parquet"
-version = "22.0.0"
+version = "23.0.0"
 license = "Apache-2.0"
 description = "Apache Parquet implementation in Rust"
 homepage = "https://github.com/apache/arrow-rs";
@@ -41,7 +41,7 @@ zstd = { version = "0.11.1", optional = true, 
default-features = false }
 chrono = { version = "0.4", default-features = false, features = ["alloc"] }
 num = { version = "0.4", default-features = false }
 num-bigint = { version = "0.4", default-features = false }
-arrow = { path = "../arrow", version = "22.0.0", optional = true, 
default-features = false, features = ["ipc"] }
+arrow = { path = "../arrow", version = "23.0.0", optional = true, 
default-features = false, features = ["ipc"] }
 base64 = { version = "0.13", default-features = false, features = ["std"], 
optional = true }
 clap = { version = "3", default-features = false, features = ["std", "derive", 
"env"], optional = true }
 serde_json = { version = "1.0", default-features = false, features = ["std"], 
optional = true }
@@ -61,7 +61,7 @@ flate2 = { version = "1.0", default-features = false, 
features = ["rust_backend"
 lz4 = { version = "1.23", default-features = false }
 zstd = { version = "0.11", default-features = false }
 serde_json = { version = "1.0", features = ["std"], default-features = false }
-arrow = { path = "../arrow", version = "22.0.0", default-features = false, 
features = ["ipc", "test_utils", "prettyprint", "json"] }
+arrow = { path = "../arrow", version = "23.0.0", default-features = false, 
features = ["ipc", "test_utils", "prettyprint", "json"] }
 
 [package.metadata.docs.rs]
 all-features = true
diff --git a/parquet_derive/Cargo.toml b/parquet_derive/Cargo.toml
index e32ee1ace..54aa6d52f 100644
--- a/parquet_derive/Cargo.toml
+++ b/parquet_derive/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "parquet_derive"
-version = "22.0.0"
+version = "23.0.0"
 license = "Apache-2.0"
 description = "Derive macros for the Rust implementation of Apache Parquet"
 homepage = "https://github.com/apache/arrow-rs";
@@ -35,4 +35,4 @@ proc-macro = true
 proc-macro2 = { version = "1.0", default-features = false }
 quote = { version = "1.0", default-features = false }
 syn = { version = "1.0", default-features = false }
-parquet = { path = "../parquet", version = "22.0.0" }
+parquet = { path = "../parquet", version = "23.0.0" }
diff --git a/parquet_derive/README.md b/parquet_derive/README.md
index d3d7f56eb..4aae73dfc 100644
--- a/parquet_derive/README.md
+++ b/parquet_derive/README.md
@@ -32,8 +32,8 @@ Add this to your Cargo.toml:
 
 ```toml
 [dependencies]
-parquet = "22.0.0"
-parquet_derive = "22.0.0"
+parquet = "23.0.0"
+parquet_derive = "23.0.0"
 ```
 
 and this to your crate root:
diff --git a/parquet_derive_test/Cargo.toml b/parquet_derive_test/Cargo.toml
index 4b814c4c0..dd8486da2 100644
--- a/parquet_derive_test/Cargo.toml
+++ b/parquet_derive_test/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "parquet_derive_test"
-version = "22.0.0"
+version = "23.0.0"
 license = "Apache-2.0"
 description = "Integration test package for parquet-derive"
 homepage = "https://github.com/apache/arrow-rs";
@@ -29,6 +29,6 @@ publish = false
 rust-version = "1.62"
 
 [dependencies]
-parquet = { path = "../parquet", version = "22.0.0", default-features = false }
-parquet_derive = { path = "../parquet_derive", version = "22.0.0", 
default-features = false }
+parquet = { path = "../parquet", version = "23.0.0", default-features = false }
+parquet_derive = { path = "../parquet_derive", version = "23.0.0", 
default-features = false }
 chrono = { version="0.4.19", default-features = false, features = [ "clock" ] }

Reply via email to