GitHub repository: rapidsai/cudf
Description: cuDF - GPU DataFrame Library 
Topics: arrow, cpp, cuda, cudf, dask, data-analysis, data-science, dataframe, gpu, pandas, pydata, python, rapids

v24.02.02: tag_name: v24.02.02
body: ## 🚨 Breaking Changes

- Remove **kwargs from astype (#14765) @mroeschke
- Remove mimesis as a testing dependency (#14723) @mroeschke
- Update to Dask&#39;s `shuffle_method` kwarg (#14708) @pentschev
- Drop Pascal GPU support. (#14630) @bdice
- Update to CCCL 2.2.0. (#14576) @bdice
- Expunge as_frame conversions in Column algorithms (#14491) @wence-
- Deprecate cudf::make_strings_column accepting typed offsets (#14461) @davidwendt
- Remove deprecated nvtext::load_merge_pairs_file (#14460) @davidwendt
- Include writer code and writerVersion in ORC files (#14458) @vuule
- Remove null mask for zero nulls in json readers (#14451) @karthikeyann
- REF: Remove **kwargs from to_pandas, raise if nullable is not implemented (#14438) @mroeschke
- Consolidate 1D pandas object handling in as_column (#14394) @mroeschke
- Move chars column to parent data buffer in strings column (#14202) @karthikeyann
- Switch to scikit-build-core (#13531) @vyasr

## 🐛 Bug Fixes

- Bump to nvcomp 3.0.6. (#15128) @bdice
- [HOTFIX] Unpin numba&lt;0.58 (#15031) @raydouglass
- Exclude tests from builds (#14981) @vyasr
- Fix the bounce buffer size in ORC writer (#14947) @vuule
- Revert sum/product aggregation to always produce `int64_t` type (#14907) @SurajAralihalli
- Fixed an issue with output chunking computation stemming from input chunking. (#14889) @nvdbaranec
- Fix total_byte_size in Parquet row group metadata (#14802) @etseidl
- Fix index difference to follow the pandas format (#14789) @amiralimi
- Fix shared-workflows repo name (#14784) @raydouglass
- Remove unparseable attributes from all nodes (#14780) @vyasr
- Refactor and add validation to IntervalIndex.__init__ (#14778) @mroeschke
- Work around incompatibilities between V2 page header handling and zStandard compression in Parquet writer (#14772) @etseidl
- Fix calls to deprecated strings factory API (#14771) @davidwendt
- Fix ptx file discovery in editable installs (#14767) @vyasr
- Revise ``shuffle`` deprecation to align with dask/dask (#14762) @rjzamora
- Enable intermediate proxies to be picklable (#14752) @shwina
- Add CUDF_TEST_PROGRAM_MAIN macro to tests lacking it (#14751) @etseidl
- Fix CMake args (#14746) @vyasr
- Fix logic bug introduced in #14730 (#14742) @wence-
- [Java] Choose The Correct RoundingMode For Checking Decimal OutOfBounds (#14731) @razajafri
- Fix ``Groupby.get_group`` (#14728) @rjzamora
- Ensure that all CUDA kernels in cudf have hidden visibility. (#14726) @robertmaynard
- Split cuda versions for notebook testing (#14722) @raydouglass
- Fix to_numeric not preserving Series index and name (#14718) @mroeschke
- Update dask-cudf wheel name (#14713) @raydouglass
- Fix strings::contains matching end of string target (#14711) @davidwendt
- Update to Dask&#39;s `shuffle_method` kwarg (#14708) @pentschev
- Write file-level statistics when writing ORC files with zero rows (#14707) @vuule
- Potential fix for peformance regression in #14415 (#14706) @etseidl
- Ensure DataFrame column types are preserved during serialization (#14705) @mroeschke
- Skip numba test that fails on ARM (#14702) @brandon-b-miller
- Allow Z in datetime string parsing in non pandas compat mode (#14701) @mroeschke
- Fix nan_as_null not being respected when passing arrow object (#14688) @mroeschke
- Fix constructing Series/Index from arrow array and dtype (#14686) @mroeschke
- Fix Aggregation Type Promotion: Ensure Unsigned Input Types Result in Unsigned Output for Sum and Multiply (#14679) @SurajAralihalli
- Add BaseOffset as a final proxy type to pass instancechecks for offsets against `BaseOffset` (#14678) @shwina
- Add row conversion code from spark-rapids-jni (#14664) @ttnghia
- Unconditionally export the CCCL path (#14656) @vyasr
- Ensure libcudf searches for our patched version of CCCL first (#14655) @robertmaynard
- Constrain CUDA in notebook testing to prevent CUDA 12.1 usage until we have pynvjitlink (#14648) @vyasr
- Fix invalid memory access in Parquet reader (#14637) @etseidl
- Use column_empty over as_column([]) (#14632) @mroeschke
- Add (implicit) handling for torch tensors in is_scalar (#14623) @wence-
- Fix astype/fillna not maintaining column subclass and types (#14615) @mroeschke
- Remove non-empty nulls in cudf::get_json_object (#14609) @davidwendt
- Remove `cuda::proclaim_return_type` from nested lambda (#14607) @ttnghia
- Fix DataFrame.reindex when column reindexing to MultiIndex/RangeIndex (#14605) @mroeschke
- Address potential race conditions in Parquet reader (#14602) @etseidl
- Fix DataFrame.reindex removing column name (#14601) @mroeschke
- Remove unsanitized input test data from copy gtests (#14600) @davidwendt
- Fix race detected in Parquet writer (#14598) @etseidl
- Correct invalid or missing return types (#14587) @robertmaynard
- Fix unsanitized nulls from strings segmented-reduce (#14586) @davidwendt
- Upgrade to nvCOMP 3.0.5 (#14581) @davidwendt
- Fix unsanitized nulls produced by `cudf::clamp` APIs (#14580) @davidwendt
- Fix unsanitized nulls produced by libcudf dictionary decode (#14578) @davidwendt
- Fixes a symbol group lookup table issue (#14561) @elstehle
- Drop llvm16 from cuda118-conda devcontainer image (#14526) @charlesbluca
- REF: Make DataFrame.from_pandas process by column (#14483) @mroeschke
- Improve memory footprint of isin by using contains (#14478) @wence-
- Move creation of env.yaml outside the current directory (#14476) @davidwendt
- Enable `pd.Timestamp` objects to be picklable when `cudf.pandas` is active (#14474) @shwina
- Correct dtype of count aggregations on empty dataframes (#14473) @wence-
- Avoid DataFrame conversion in `MultiIndex.from_pandas` (#14470) @mroeschke
- JSON writer: avoid default stream use in `string_scalar` constructors (#14444) @vuule
- Fix default stream use in the CSV reader (#14443) @vuule
- Preserve DataFrame(columns=).columns dtype during empty-like construction (#14381) @mroeschke
- Defer PTX file load to runtime (#13690) @brandon-b-miller

## 📖 Documentation

- Disable parallel build (#14796) @vyasr
- Add pylibcudf to the docs (#14791) @vyasr
- Describe unpickling expectations when cudf.pandas is enabled (#14693) @shwina
- Update CONTRIBUTING for pyproject-only builds (#14653) @vyasr
- More doxygen fixes (#14639) @vyasr
- Enable doxygen XML generation and fix issues (#14477) @vyasr
- Some doxygen improvements (#14469) @vyasr
- Remove warning in dask-cudf docs (#14454) @wence-
- Update README links with redirects. (#14378) @bdice
- Add pip install instructions to README (#13677) @shwina

## 🚀 New Features

- Add ci check for external kernels (#14768) @robertmaynard
- JSON single quote normalization API (#14729) @shrshi
- Write cuDF version in Parquet &quot;created_by&quot; metadata field (#14721) @etseidl
- Implement remaining copying APIs in pylibcudf along with required helper functions (#14640) @vyasr
- Don&#39;t constrain `numba&lt;0.58` (#14616) @brandon-b-miller
- Add DELTA_LENGTH_BYTE_ARRAY encoder and decoder for Parquet (#14590) @etseidl
- JSON - Parse mixed types as string in JSON reader (#14572) @karthikeyann
- JSON quote normalization (#14545) @shrshi
- Make DefaultHostMemoryAllocator settable (#14523) @gerashegalov
- Implement more copying APIs in pylibcudf (#14508) @vyasr
- Include writer code and writerVersion in ORC files (#14458) @vuule
- Parquet sub-rowgroup reading. (#14360) @nvdbaranec
- Move chars column to parent data buffer in strings column (#14202) @karthikeyann
- PARQUET-2261 Size Statistics (#14000) @etseidl
- Improve GroupBy JIT error handling (#13854) @brandon-b-miller
- Generate unified Python/C++ docs (#13846) @vyasr
- Expand JIT groupby test suite (#13813) @brandon-b-miller

## 🛠️ Improvements

- Pin `pytest&lt;8` (#14920) @galipremsagar
- Move cudf::char_utf8 definition from detail to public header (#14779) @davidwendt
- Clean up `TimedeltaIndex.__init__` constructor (#14775) @mroeschke
- Clean up `DatetimeIndex.__init__` constructor (#14774) @mroeschke
- Some `frame.py` typing, move seldom used methods in `frame.py` (#14766) @mroeschke
- Remove **kwargs from astype (#14765) @mroeschke
- fix benchmarks compatibility with newer pytest-cases (#14764) @jameslamb
- Add `pynvjitlink` as a dependency (#14763) @brandon-b-miller
- Resolve degenerate performance in `create_structs_data` (#14761) @SurajAralihalli
- Simplify ColumnAccessor methods; avoid unnecessary validations (#14758) @mroeschke
- Pin pytest-cases&lt;3.8.2 (#14756) @mroeschke
- Use _from_data instead of _from_columns for initialzing Frame (#14755) @mroeschke
- Consolidate cudf object handling in as_column (#14754) @mroeschke
- Reduce execution time of Parquet C++ tests (#14750) @vuule
- Implement to_datetime(..., utc=True) (#14749) @mroeschke
- Remove usages of rapids-env-update (#14748) @KyleFromNVIDIA
- Provide explicit pool size and avoid RMM detail APIs (#14741) @harrism
- Implement `cudf.MultiIndex.from_arrays` (#14740) @mroeschke
- Remove unused/single use methods (#14739) @mroeschke
- refactor CUDA versions in dependencies.yaml (#14733) @jameslamb
- Remove unneeded methods in Column (#14730) @mroeschke
- Clean up base column methods (#14725) @mroeschke
- Ensure column.fillna signatures are consistent (#14724) @mroeschke
- Remove mimesis as a testing dependency (#14723) @mroeschke
- Replace as_numerical with as_numerical_column/codes (#14719) @mroeschke
- Use offsetalator in gather_chars (#14700) @davidwendt
- Use make_strings_children for fill() specialization logic (#14697) @davidwendt
- Change `io::detail::orc` namespace into `io::orc::detail` (#14696) @ttnghia
- Fix call to deprecated factory function (#14695) @davidwendt
- Use as_column instead of arange for range like inputs (#14689) @mroeschke
- Reorganize ORC reader into multiple files and perform some small fixes to cuIO code (#14665) @ttnghia
- Split parquet test into multiple files (#14663) @etseidl
- Custom error messages for IO with nonexistent files (#14662) @vuule
- Explicitly pass .dtype into is_foo_dtype functions (#14657) @mroeschke
- Basic validation in reader benchmarks (#14647) @vuule
- Update dependencies.yaml to support CUDA 12.*. (#14644) @bdice
- Consolidate memoryview handling in as_column (#14643) @mroeschke
- Convert `FieldType` to scoped enum (#14642) @vuule
- Use instance over is_foo_dtype (#14641) @mroeschke
- Use isinstance over is_foo_dtype internally (#14638) @mroeschke
- Remove unnecessary **kwargs in function signatures (#14635) @mroeschke
- Drop nvbench patch for nvml. (#14631) @bdice
- Drop Pascal GPU support. (#14630) @bdice
- Add cpp/doxygen/xml to .gitignore (#14613) @davidwendt
- Create strings-specific make_offsets_child_column for multiple offset types (#14612) @davidwendt
- Use the offsetalator in cudf::concatenate for strings (#14611) @davidwendt
- Make Parquet ColumnIndex null_counts optional (#14596) @etseidl
- Support `freq` in DatetimeIndex (#14593) @shwina
- Remove legacy benchmarks for cuDF-python (#14591) @osidekyle
- Remove WORKSPACE env var from cudf_test temp_directory class (#14588) @davidwendt
- Use exceptions instead of return values to handle errors in `CompactProtocolReader` (#14582) @vuule
- Use cuda::proclaim_return_type on device lambdas. (#14577) @bdice
- Update to CCCL 2.2.0. (#14576) @bdice
- Update dependencies.yaml to new pip index (#14575) @vyasr
- Simplify Python CMake (#14565) @vyasr
- Java expose parquet pass_read_limit (#14564) @revans2
- Add column sanitization checks in `CUDF_TEST_EXPECT_COLUMN_*` macros (#14559) @SurajAralihalli
- Use cudf_test temp_directory class for nvtext::subword_tokenize gbenchmark (#14558) @davidwendt
- Fix return type of prefix increment overloads (#14544) @vuule
- Make bpe_merge_pairs_impl member private (#14543) @davidwendt
- Small clean up in `io::statistics` (#14542) @vuule
- Change json gtest environment variable to compile-time definition (#14541) @davidwendt
- Remove extra total chars size calculation from cudf::concatenate (#14540) @davidwendt
- Refactor IndexedFrame.hash_values to use cudf::hashing functions, add xxhash64 to cudf Python. (#14538) @bdice
- Move non-templated inline function definitions from table_view.hpp to table_view.cpp (#14535) @davidwendt
- Add JNI for strings::code_points (#14533) @thirtiseven
- Add a test for issue 12773 (#14529) @vyasr
- Split libarrow build dependencies. (#14506) @bdice
- Implement `IndexedFrame.duplicated` with `distinct_indices` + `scatter` (#14493) @wence-
- Expunge as_frame conversions in Column algorithms (#14491) @wence-
- Remove unsanitized null from input strings column in rank_tests.cpp (#14475) @davidwendt
- Refactor Parquet kernel_error (#14464) @etseidl
- Deprecate cudf::make_strings_column accepting typed offsets (#14461) @davidwendt
- Remove deprecated nvtext::load_merge_pairs_file (#14460) @davidwendt
- Introduce Comprehensive Pathological Unit Tests for Issue #14409 (#14459) @aocsa
- Expose stream parameter in public nvtext APIs (#14456) @davidwendt
- Include encode type in the error message when unsupported Parquet encoding is detected (#14453) @ZelboK
- Remove null mask for zero nulls in json readers (#14451) @karthikeyann
- Refactor cudf.Series.__init__ (#14450) @mroeschke
- Remove the use of `volatile` in Parquet (#14448) @vuule
- REF: Remove **kwargs from to_pandas, raise if nullable is not implemented (#14438) @mroeschke
- Testing stream pool implementation (#14437) @shrshi
- Match pandas join ordering obligations in pandas-compatible mode (#14428) @wence-
- Forward-merge branch-23.12 to branch-24.02 (#14426) @bdice
- Use isinstance(..., cudf.IntervalDtype) instead of is_interval_dtype (#14424) @mroeschke
- Use isinstance(..., cudf.CategoricalDtype) instead of is_categorical_dtype (#14423) @mroeschke
- Forward-merge branch-23.12 to branch-24.02 (#14422) @bdice
- REF: Remove instances of pd.core (#14421) @mroeschke
- Expose streams in public filling APIs for label_bins (#14401) @ZelboK
- Consolidate 1D pandas object handling in as_column (#14394) @mroeschke
- Limit DELTA_BINARY_PACKED encoder to the same number of bits as the physical type being encoded (#14392) @etseidl
- Add SHA-1 and SHA-2 hash functions. (#14391) @bdice
- Expose streams in Parquet reader and writer APIs (#14359) @shrshi
- Update to fmt 10.1.1 and spdlog 1.12.0. (#14355) @bdice
- Replace default stream for scalars and column factories usages (because of defaulted arguments) (#14354) @karthikeyann
- Expose streams in ORC reader and writer APIs (#14350) @shrshi
- Convert compression and io to string axis type in IO benchmarks (#14347) @SurajAralihalli
- Add cuDF devcontainers (#14015) @trxcllnt
- Refactoring of Buffers (last step towards unifying COW and Spilling) (#13801) @madsbk
- Switch to scikit-build-core (#13531) @vyasr
- Simplify null count checking in column equality comparator (#13312) @vyasr
v24.02.01: tag_name: v24.02.01
body: ## 🚨 Breaking Changes

- Remove **kwargs from astype (#14765) @mroeschke
- Remove mimesis as a testing dependency (#14723) @mroeschke
- Update to Dask&#39;s `shuffle_method` kwarg (#14708) @pentschev
- Drop Pascal GPU support. (#14630) @bdice
- Update to CCCL 2.2.0. (#14576) @bdice
- Expunge as_frame conversions in Column algorithms (#14491) @wence-
- Deprecate cudf::make_strings_column accepting typed offsets (#14461) @davidwendt
- Remove deprecated nvtext::load_merge_pairs_file (#14460) @davidwendt
- Include writer code and writerVersion in ORC files (#14458) @vuule
- Remove null mask for zero nulls in json readers (#14451) @karthikeyann
- REF: Remove **kwargs from to_pandas, raise if nullable is not implemented (#14438) @mroeschke
- Consolidate 1D pandas object handling in as_column (#14394) @mroeschke
- Move chars column to parent data buffer in strings column (#14202) @karthikeyann
- Switch to scikit-build-core (#13531) @vyasr

## 🐛 Bug Fixes

- [HOTFIX] Unpin numba&lt;0.58 (#15031) @raydouglass
- Exclude tests from builds (#14981) @vyasr
- Fix the bounce buffer size in ORC writer (#14947) @vuule
- Revert sum/product aggregation to always produce `int64_t` type (#14907) @SurajAralihalli
- Fixed an issue with output chunking computation stemming from input chunking. (#14889) @nvdbaranec
- Fix total_byte_size in Parquet row group metadata (#14802) @etseidl
- Fix index difference to follow the pandas format (#14789) @amiralimi
- Fix shared-workflows repo name (#14784) @raydouglass
- Remove unparseable attributes from all nodes (#14780) @vyasr
- Refactor and add validation to IntervalIndex.__init__ (#14778) @mroeschke
- Work around incompatibilities between V2 page header handling and zStandard compression in Parquet writer (#14772) @etseidl
- Fix calls to deprecated strings factory API (#14771) @davidwendt
- Fix ptx file discovery in editable installs (#14767) @vyasr
- Revise ``shuffle`` deprecation to align with dask/dask (#14762) @rjzamora
- Enable intermediate proxies to be picklable (#14752) @shwina
- Add CUDF_TEST_PROGRAM_MAIN macro to tests lacking it (#14751) @etseidl
- Fix CMake args (#14746) @vyasr
- Fix logic bug introduced in #14730 (#14742) @wence-
- [Java] Choose The Correct RoundingMode For Checking Decimal OutOfBounds (#14731) @razajafri
- Fix ``Groupby.get_group`` (#14728) @rjzamora
- Ensure that all CUDA kernels in cudf have hidden visibility. (#14726) @robertmaynard
- Split cuda versions for notebook testing (#14722) @raydouglass
- Fix to_numeric not preserving Series index and name (#14718) @mroeschke
- Update dask-cudf wheel name (#14713) @raydouglass
- Fix strings::contains matching end of string target (#14711) @davidwendt
- Update to Dask&#39;s `shuffle_method` kwarg (#14708) @pentschev
- Write file-level statistics when writing ORC files with zero rows (#14707) @vuule
- Potential fix for peformance regression in #14415 (#14706) @etseidl
- Ensure DataFrame column types are preserved during serialization (#14705) @mroeschke
- Skip numba test that fails on ARM (#14702) @brandon-b-miller
- Allow Z in datetime string parsing in non pandas compat mode (#14701) @mroeschke
- Fix nan_as_null not being respected when passing arrow object (#14688) @mroeschke
- Fix constructing Series/Index from arrow array and dtype (#14686) @mroeschke
- Fix Aggregation Type Promotion: Ensure Unsigned Input Types Result in Unsigned Output for Sum and Multiply (#14679) @SurajAralihalli
- Add BaseOffset as a final proxy type to pass instancechecks for offsets against `BaseOffset` (#14678) @shwina
- Add row conversion code from spark-rapids-jni (#14664) @ttnghia
- Unconditionally export the CCCL path (#14656) @vyasr
- Ensure libcudf searches for our patched version of CCCL first (#14655) @robertmaynard
- Constrain CUDA in notebook testing to prevent CUDA 12.1 usage until we have pynvjitlink (#14648) @vyasr
- Fix invalid memory access in Parquet reader (#14637) @etseidl
- Use column_empty over as_column([]) (#14632) @mroeschke
- Add (implicit) handling for torch tensors in is_scalar (#14623) @wence-
- Fix astype/fillna not maintaining column subclass and types (#14615) @mroeschke
- Remove non-empty nulls in cudf::get_json_object (#14609) @davidwendt
- Remove `cuda::proclaim_return_type` from nested lambda (#14607) @ttnghia
- Fix DataFrame.reindex when column reindexing to MultiIndex/RangeIndex (#14605) @mroeschke
- Address potential race conditions in Parquet reader (#14602) @etseidl
- Fix DataFrame.reindex removing column name (#14601) @mroeschke
- Remove unsanitized input test data from copy gtests (#14600) @davidwendt
- Fix race detected in Parquet writer (#14598) @etseidl
- Correct invalid or missing return types (#14587) @robertmaynard
- Fix unsanitized nulls from strings segmented-reduce (#14586) @davidwendt
- Upgrade to nvCOMP 3.0.5 (#14581) @davidwendt
- Fix unsanitized nulls produced by `cudf::clamp` APIs (#14580) @davidwendt
- Fix unsanitized nulls produced by libcudf dictionary decode (#14578) @davidwendt
- Fixes a symbol group lookup table issue (#14561) @elstehle
- Drop llvm16 from cuda118-conda devcontainer image (#14526) @charlesbluca
- REF: Make DataFrame.from_pandas process by column (#14483) @mroeschke
- Improve memory footprint of isin by using contains (#14478) @wence-
- Move creation of env.yaml outside the current directory (#14476) @davidwendt
- Enable `pd.Timestamp` objects to be picklable when `cudf.pandas` is active (#14474) @shwina
- Correct dtype of count aggregations on empty dataframes (#14473) @wence-
- Avoid DataFrame conversion in `MultiIndex.from_pandas` (#14470) @mroeschke
- JSON writer: avoid default stream use in `string_scalar` constructors (#14444) @vuule
- Fix default stream use in the CSV reader (#14443) @vuule
- Preserve DataFrame(columns=).columns dtype during empty-like construction (#14381) @mroeschke
- Defer PTX file load to runtime (#13690) @brandon-b-miller

## 📖 Documentation

- Disable parallel build (#14796) @vyasr
- Add pylibcudf to the docs (#14791) @vyasr
- Describe unpickling expectations when cudf.pandas is enabled (#14693) @shwina
- Update CONTRIBUTING for pyproject-only builds (#14653) @vyasr
- More doxygen fixes (#14639) @vyasr
- Enable doxygen XML generation and fix issues (#14477) @vyasr
- Some doxygen improvements (#14469) @vyasr
- Remove warning in dask-cudf docs (#14454) @wence-
- Update README links with redirects. (#14378) @bdice
- Add pip install instructions to README (#13677) @shwina

## 🚀 New Features

- Add ci check for external kernels (#14768) @robertmaynard
- JSON single quote normalization API (#14729) @shrshi
- Write cuDF version in Parquet &quot;created_by&quot; metadata field (#14721) @etseidl
- Implement remaining copying APIs in pylibcudf along with required helper functions (#14640) @vyasr
- Don&#39;t constrain `numba&lt;0.58` (#14616) @brandon-b-miller
- Add DELTA_LENGTH_BYTE_ARRAY encoder and decoder for Parquet (#14590) @etseidl
- JSON - Parse mixed types as string in JSON reader (#14572) @karthikeyann
- JSON quote normalization (#14545) @shrshi
- Make DefaultHostMemoryAllocator settable (#14523) @gerashegalov
- Implement more copying APIs in pylibcudf (#14508) @vyasr
- Include writer code and writerVersion in ORC files (#14458) @vuule
- Parquet sub-rowgroup reading. (#14360) @nvdbaranec
- Move chars column to parent data buffer in strings column (#14202) @karthikeyann
- PARQUET-2261 Size Statistics (#14000) @etseidl
- Improve GroupBy JIT error handling (#13854) @brandon-b-miller
- Generate unified Python/C++ docs (#13846) @vyasr
- Expand JIT groupby test suite (#13813) @brandon-b-miller

## 🛠️ Improvements

- Pin `pytest&lt;8` (#14920) @galipremsagar
- Move cudf::char_utf8 definition from detail to public header (#14779) @davidwendt
- Clean up `TimedeltaIndex.__init__` constructor (#14775) @mroeschke
- Clean up `DatetimeIndex.__init__` constructor (#14774) @mroeschke
- Some `frame.py` typing, move seldom used methods in `frame.py` (#14766) @mroeschke
- Remove **kwargs from astype (#14765) @mroeschke
- fix benchmarks compatibility with newer pytest-cases (#14764) @jameslamb
- Add `pynvjitlink` as a dependency (#14763) @brandon-b-miller
- Resolve degenerate performance in `create_structs_data` (#14761) @SurajAralihalli
- Simplify ColumnAccessor methods; avoid unnecessary validations (#14758) @mroeschke
- Pin pytest-cases&lt;3.8.2 (#14756) @mroeschke
- Use _from_data instead of _from_columns for initialzing Frame (#14755) @mroeschke
- Consolidate cudf object handling in as_column (#14754) @mroeschke
- Reduce execution time of Parquet C++ tests (#14750) @vuule
- Implement to_datetime(..., utc=True) (#14749) @mroeschke
- Remove usages of rapids-env-update (#14748) @KyleFromNVIDIA
- Provide explicit pool size and avoid RMM detail APIs (#14741) @harrism
- Implement `cudf.MultiIndex.from_arrays` (#14740) @mroeschke
- Remove unused/single use methods (#14739) @mroeschke
- refactor CUDA versions in dependencies.yaml (#14733) @jameslamb
- Remove unneeded methods in Column (#14730) @mroeschke
- Clean up base column methods (#14725) @mroeschke
- Ensure column.fillna signatures are consistent (#14724) @mroeschke
- Remove mimesis as a testing dependency (#14723) @mroeschke
- Replace as_numerical with as_numerical_column/codes (#14719) @mroeschke
- Use offsetalator in gather_chars (#14700) @davidwendt
- Use make_strings_children for fill() specialization logic (#14697) @davidwendt
- Change `io::detail::orc` namespace into `io::orc::detail` (#14696) @ttnghia
- Fix call to deprecated factory function (#14695) @davidwendt
- Use as_column instead of arange for range like inputs (#14689) @mroeschke
- Reorganize ORC reader into multiple files and perform some small fixes to cuIO code (#14665) @ttnghia
- Split parquet test into multiple files (#14663) @etseidl
- Custom error messages for IO with nonexistent files (#14662) @vuule
- Explicitly pass .dtype into is_foo_dtype functions (#14657) @mroeschke
- Basic validation in reader benchmarks (#14647) @vuule
- Update dependencies.yaml to support CUDA 12.*. (#14644) @bdice
- Consolidate memoryview handling in as_column (#14643) @mroeschke
- Convert `FieldType` to scoped enum (#14642) @vuule
- Use instance over is_foo_dtype (#14641) @mroeschke
- Use isinstance over is_foo_dtype internally (#14638) @mroeschke
- Remove unnecessary **kwargs in function signatures (#14635) @mroeschke
- Drop nvbench patch for nvml. (#14631) @bdice
- Drop Pascal GPU support. (#14630) @bdice
- Add cpp/doxygen/xml to .gitignore (#14613) @davidwendt
- Create strings-specific make_offsets_child_column for multiple offset types (#14612) @davidwendt
- Use the offsetalator in cudf::concatenate for strings (#14611) @davidwendt
- Make Parquet ColumnIndex null_counts optional (#14596) @etseidl
- Support `freq` in DatetimeIndex (#14593) @shwina
- Remove legacy benchmarks for cuDF-python (#14591) @osidekyle
- Remove WORKSPACE env var from cudf_test temp_directory class (#14588) @davidwendt
- Use exceptions instead of return values to handle errors in `CompactProtocolReader` (#14582) @vuule
- Use cuda::proclaim_return_type on device lambdas. (#14577) @bdice
- Update to CCCL 2.2.0. (#14576) @bdice
- Update dependencies.yaml to new pip index (#14575) @vyasr
- Simplify Python CMake (#14565) @vyasr
- Java expose parquet pass_read_limit (#14564) @revans2
- Add column sanitization checks in `CUDF_TEST_EXPECT_COLUMN_*` macros (#14559) @SurajAralihalli
- Use cudf_test temp_directory class for nvtext::subword_tokenize gbenchmark (#14558) @davidwendt
- Fix return type of prefix increment overloads (#14544) @vuule
- Make bpe_merge_pairs_impl member private (#14543) @davidwendt
- Small clean up in `io::statistics` (#14542) @vuule
- Change json gtest environment variable to compile-time definition (#14541) @davidwendt
- Remove extra total chars size calculation from cudf::concatenate (#14540) @davidwendt
- Refactor IndexedFrame.hash_values to use cudf::hashing functions, add xxhash64 to cudf Python. (#14538) @bdice
- Move non-templated inline function definitions from table_view.hpp to table_view.cpp (#14535) @davidwendt
- Add JNI for strings::code_points (#14533) @thirtiseven
- Add a test for issue 12773 (#14529) @vyasr
- Split libarrow build dependencies. (#14506) @bdice
- Implement `IndexedFrame.duplicated` with `distinct_indices` + `scatter` (#14493) @wence-
- Expunge as_frame conversions in Column algorithms (#14491) @wence-
- Remove unsanitized null from input strings column in rank_tests.cpp (#14475) @davidwendt
- Refactor Parquet kernel_error (#14464) @etseidl
- Deprecate cudf::make_strings_column accepting typed offsets (#14461) @davidwendt
- Remove deprecated nvtext::load_merge_pairs_file (#14460) @davidwendt
- Introduce Comprehensive Pathological Unit Tests for Issue #14409 (#14459) @aocsa
- Expose stream parameter in public nvtext APIs (#14456) @davidwendt
- Include encode type in the error message when unsupported Parquet encoding is detected (#14453) @ZelboK
- Remove null mask for zero nulls in json readers (#14451) @karthikeyann
- Refactor cudf.Series.__init__ (#14450) @mroeschke
- Remove the use of `volatile` in Parquet (#14448) @vuule
- REF: Remove **kwargs from to_pandas, raise if nullable is not implemented (#14438) @mroeschke
- Testing stream pool implementation (#14437) @shrshi
- Match pandas join ordering obligations in pandas-compatible mode (#14428) @wence-
- Forward-merge branch-23.12 to branch-24.02 (#14426) @bdice
- Use isinstance(..., cudf.IntervalDtype) instead of is_interval_dtype (#14424) @mroeschke
- Use isinstance(..., cudf.CategoricalDtype) instead of is_categorical_dtype (#14423) @mroeschke
- Forward-merge branch-23.12 to branch-24.02 (#14422) @bdice
- REF: Remove instances of pd.core (#14421) @mroeschke
- Expose streams in public filling APIs for label_bins (#14401) @ZelboK
- Consolidate 1D pandas object handling in as_column (#14394) @mroeschke
- Limit DELTA_BINARY_PACKED encoder to the same number of bits as the physical type being encoded (#14392) @etseidl
- Add SHA-1 and SHA-2 hash functions. (#14391) @bdice
- Expose streams in Parquet reader and writer APIs (#14359) @shrshi
- Update to fmt 10.1.1 and spdlog 1.12.0. (#14355) @bdice
- Replace default stream for scalars and column factories usages (because of defaulted arguments) (#14354) @karthikeyann
- Expose streams in ORC reader and writer APIs (#14350) @shrshi
- Convert compression and io to string axis type in IO benchmarks (#14347) @SurajAralihalli
- Add cuDF devcontainers (#14015) @trxcllnt
- Refactoring of Buffers (last step towards unifying COW and Spilling) (#13801) @madsbk
- Switch to scikit-build-core (#13531) @vyasr
- Simplify null count checking in column equality comparator (#13312) @vyasr
v24.02.00: tag_name: v24.02.00
body: ## 🚨 Breaking Changes

- Remove **kwargs from astype (#14765) @mroeschke
- Remove mimesis as a testing dependency (#14723) @mroeschke
- Update to Dask&#39;s `shuffle_method` kwarg (#14708) @pentschev
- Drop Pascal GPU support. (#14630) @bdice
- Update to CCCL 2.2.0. (#14576) @bdice
- Expunge as_frame conversions in Column algorithms (#14491) @wence-
- Deprecate cudf::make_strings_column accepting typed offsets (#14461) @davidwendt
- Remove deprecated nvtext::load_merge_pairs_file (#14460) @davidwendt
- Include writer code and writerVersion in ORC files (#14458) @vuule
- Remove null mask for zero nulls in json readers (#14451) @karthikeyann
- REF: Remove **kwargs from to_pandas, raise if nullable is not implemented (#14438) @mroeschke
- Consolidate 1D pandas object handling in as_column (#14394) @mroeschke
- Move chars column to parent data buffer in strings column (#14202) @karthikeyann
- Switch to scikit-build-core (#13531) @vyasr

## 🐛 Bug Fixes

- Exclude tests from builds (#14981) @vyasr
- Fix the bounce buffer size in ORC writer (#14947) @vuule
- Revert sum/product aggregation to always produce `int64_t` type (#14907) @SurajAralihalli
- Fixed an issue with output chunking computation stemming from input chunking. (#14889) @nvdbaranec
- Fix total_byte_size in Parquet row group metadata (#14802) @etseidl
- Fix index difference to follow the pandas format (#14789) @amiralimi
- Fix shared-workflows repo name (#14784) @raydouglass
- Remove unparseable attributes from all nodes (#14780) @vyasr
- Refactor and add validation to IntervalIndex.__init__ (#14778) @mroeschke
- Work around incompatibilities between V2 page header handling and zStandard compression in Parquet writer (#14772) @etseidl
- Fix calls to deprecated strings factory API (#14771) @davidwendt
- Fix ptx file discovery in editable installs (#14767) @vyasr
- Revise ``shuffle`` deprecation to align with dask/dask (#14762) @rjzamora
- Enable intermediate proxies to be picklable (#14752) @shwina
- Add CUDF_TEST_PROGRAM_MAIN macro to tests lacking it (#14751) @etseidl
- Fix CMake args (#14746) @vyasr
- Fix logic bug introduced in #14730 (#14742) @wence-
- [Java] Choose The Correct RoundingMode For Checking Decimal OutOfBounds (#14731) @razajafri
- Fix ``Groupby.get_group`` (#14728) @rjzamora
- Ensure that all CUDA kernels in cudf have hidden visibility. (#14726) @robertmaynard
- Split cuda versions for notebook testing (#14722) @raydouglass
- Fix to_numeric not preserving Series index and name (#14718) @mroeschke
- Update dask-cudf wheel name (#14713) @raydouglass
- Fix strings::contains matching end of string target (#14711) @davidwendt
- Update to Dask&#39;s `shuffle_method` kwarg (#14708) @pentschev
- Write file-level statistics when writing ORC files with zero rows (#14707) @vuule
- Potential fix for peformance regression in #14415 (#14706) @etseidl
- Ensure DataFrame column types are preserved during serialization (#14705) @mroeschke
- Skip numba test that fails on ARM (#14702) @brandon-b-miller
- Allow Z in datetime string parsing in non pandas compat mode (#14701) @mroeschke
- Fix nan_as_null not being respected when passing arrow object (#14688) @mroeschke
- Fix constructing Series/Index from arrow array and dtype (#14686) @mroeschke
- Fix Aggregation Type Promotion: Ensure Unsigned Input Types Result in Unsigned Output for Sum and Multiply (#14679) @SurajAralihalli
- Add BaseOffset as a final proxy type to pass instancechecks for offsets against `BaseOffset` (#14678) @shwina
- Add row conversion code from spark-rapids-jni (#14664) @ttnghia
- Unconditionally export the CCCL path (#14656) @vyasr
- Ensure libcudf searches for our patched version of CCCL first (#14655) @robertmaynard
- Constrain CUDA in notebook testing to prevent CUDA 12.1 usage until we have pynvjitlink (#14648) @vyasr
- Fix invalid memory access in Parquet reader (#14637) @etseidl
- Use column_empty over as_column([]) (#14632) @mroeschke
- Add (implicit) handling for torch tensors in is_scalar (#14623) @wence-
- Fix astype/fillna not maintaining column subclass and types (#14615) @mroeschke
- Remove non-empty nulls in cudf::get_json_object (#14609) @davidwendt
- Remove `cuda::proclaim_return_type` from nested lambda (#14607) @ttnghia
- Fix DataFrame.reindex when column reindexing to MultiIndex/RangeIndex (#14605) @mroeschke
- Address potential race conditions in Parquet reader (#14602) @etseidl
- Fix DataFrame.reindex removing column name (#14601) @mroeschke
- Remove unsanitized input test data from copy gtests (#14600) @davidwendt
- Fix race detected in Parquet writer (#14598) @etseidl
- Correct invalid or missing return types (#14587) @robertmaynard
- Fix unsanitized nulls from strings segmented-reduce (#14586) @davidwendt
- Upgrade to nvCOMP 3.0.5 (#14581) @davidwendt
- Fix unsanitized nulls produced by `cudf::clamp` APIs (#14580) @davidwendt
- Fix unsanitized nulls produced by libcudf dictionary decode (#14578) @davidwendt
- Fixes a symbol group lookup table issue (#14561) @elstehle
- Drop llvm16 from cuda118-conda devcontainer image (#14526) @charlesbluca
- REF: Make DataFrame.from_pandas process by column (#14483) @mroeschke
- Improve memory footprint of isin by using contains (#14478) @wence-
- Move creation of env.yaml outside the current directory (#14476) @davidwendt
- Enable `pd.Timestamp` objects to be picklable when `cudf.pandas` is active (#14474) @shwina
- Correct dtype of count aggregations on empty dataframes (#14473) @wence-
- Avoid DataFrame conversion in `MultiIndex.from_pandas` (#14470) @mroeschke
- JSON writer: avoid default stream use in `string_scalar` constructors (#14444) @vuule
- Fix default stream use in the CSV reader (#14443) @vuule
- Preserve DataFrame(columns=).columns dtype during empty-like construction (#14381) @mroeschke
- Defer PTX file load to runtime (#13690) @brandon-b-miller

## 📖 Documentation

- Disable parallel build (#14796) @vyasr
- Add pylibcudf to the docs (#14791) @vyasr
- Describe unpickling expectations when cudf.pandas is enabled (#14693) @shwina
- Update CONTRIBUTING for pyproject-only builds (#14653) @vyasr
- More doxygen fixes (#14639) @vyasr
- Enable doxygen XML generation and fix issues (#14477) @vyasr
- Some doxygen improvements (#14469) @vyasr
- Remove warning in dask-cudf docs (#14454) @wence-
- Update README links with redirects. (#14378) @bdice
- Add pip install instructions to README (#13677) @shwina

## 🚀 New Features

- Add ci check for external kernels (#14768) @robertmaynard
- JSON single quote normalization API (#14729) @shrshi
- Write cuDF version in Parquet &quot;created_by&quot; metadata field (#14721) @etseidl
- Implement remaining copying APIs in pylibcudf along with required helper functions (#14640) @vyasr
- Don&#39;t constrain `numba&lt;0.58` (#14616) @brandon-b-miller
- Add DELTA_LENGTH_BYTE_ARRAY encoder and decoder for Parquet (#14590) @etseidl
- JSON - Parse mixed types as string in JSON reader (#14572) @karthikeyann
- JSON quote normalization (#14545) @shrshi
- Make DefaultHostMemoryAllocator settable (#14523) @gerashegalov
- Implement more copying APIs in pylibcudf (#14508) @vyasr
- Include writer code and writerVersion in ORC files (#14458) @vuule
- Parquet sub-rowgroup reading. (#14360) @nvdbaranec
- Move chars column to parent data buffer in strings column (#14202) @karthikeyann
- PARQUET-2261 Size Statistics (#14000) @etseidl
- Improve GroupBy JIT error handling (#13854) @brandon-b-miller
- Generate unified Python/C++ docs (#13846) @vyasr
- Expand JIT groupby test suite (#13813) @brandon-b-miller

## 🛠️ Improvements

- Pin `pytest&lt;8` (#14920) @galipremsagar
- Move cudf::char_utf8 definition from detail to public header (#14779) @davidwendt
- Clean up `TimedeltaIndex.__init__` constructor (#14775) @mroeschke
- Clean up `DatetimeIndex.__init__` constructor (#14774) @mroeschke
- Some `frame.py` typing, move seldom used methods in `frame.py` (#14766) @mroeschke
- Remove **kwargs from astype (#14765) @mroeschke
- fix benchmarks compatibility with newer pytest-cases (#14764) @jameslamb
- Add `pynvjitlink` as a dependency (#14763) @brandon-b-miller
- Resolve degenerate performance in `create_structs_data` (#14761) @SurajAralihalli
- Simplify ColumnAccessor methods; avoid unnecessary validations (#14758) @mroeschke
- Pin pytest-cases&lt;3.8.2 (#14756) @mroeschke
- Use _from_data instead of _from_columns for initialzing Frame (#14755) @mroeschke
- Consolidate cudf object handling in as_column (#14754) @mroeschke
- Reduce execution time of Parquet C++ tests (#14750) @vuule
- Implement to_datetime(..., utc=True) (#14749) @mroeschke
- Remove usages of rapids-env-update (#14748) @KyleFromNVIDIA
- Provide explicit pool size and avoid RMM detail APIs (#14741) @harrism
- Implement `cudf.MultiIndex.from_arrays` (#14740) @mroeschke
- Remove unused/single use methods (#14739) @mroeschke
- refactor CUDA versions in dependencies.yaml (#14733) @jameslamb
- Remove unneeded methods in Column (#14730) @mroeschke
- Clean up base column methods (#14725) @mroeschke
- Ensure column.fillna signatures are consistent (#14724) @mroeschke
- Remove mimesis as a testing dependency (#14723) @mroeschke
- Replace as_numerical with as_numerical_column/codes (#14719) @mroeschke
- Use offsetalator in gather_chars (#14700) @davidwendt
- Use make_strings_children for fill() specialization logic (#14697) @davidwendt
- Change `io::detail::orc` namespace into `io::orc::detail` (#14696) @ttnghia
- Fix call to deprecated factory function (#14695) @davidwendt
- Use as_column instead of arange for range like inputs (#14689) @mroeschke
- Reorganize ORC reader into multiple files and perform some small fixes to cuIO code (#14665) @ttnghia
- Split parquet test into multiple files (#14663) @etseidl
- Custom error messages for IO with nonexistent files (#14662) @vuule
- Explicitly pass .dtype into is_foo_dtype functions (#14657) @mroeschke
- Basic validation in reader benchmarks (#14647) @vuule
- Update dependencies.yaml to support CUDA 12.*. (#14644) @bdice
- Consolidate memoryview handling in as_column (#14643) @mroeschke
- Convert `FieldType` to scoped enum (#14642) @vuule
- Use instance over is_foo_dtype (#14641) @mroeschke
- Use isinstance over is_foo_dtype internally (#14638) @mroeschke
- Remove unnecessary **kwargs in function signatures (#14635) @mroeschke
- Drop nvbench patch for nvml. (#14631) @bdice
- Drop Pascal GPU support. (#14630) @bdice
- Add cpp/doxygen/xml to .gitignore (#14613) @davidwendt
- Create strings-specific make_offsets_child_column for multiple offset types (#14612) @davidwendt
- Use the offsetalator in cudf::concatenate for strings (#14611) @davidwendt
- Make Parquet ColumnIndex null_counts optional (#14596) @etseidl
- Support `freq` in DatetimeIndex (#14593) @shwina
- Remove legacy benchmarks for cuDF-python (#14591) @osidekyle
- Remove WORKSPACE env var from cudf_test temp_directory class (#14588) @davidwendt
- Use exceptions instead of return values to handle errors in `CompactProtocolReader` (#14582) @vuule
- Use cuda::proclaim_return_type on device lambdas. (#14577) @bdice
- Update to CCCL 2.2.0. (#14576) @bdice
- Update dependencies.yaml to new pip index (#14575) @vyasr
- Simplify Python CMake (#14565) @vyasr
- Java expose parquet pass_read_limit (#14564) @revans2
- Add column sanitization checks in `CUDF_TEST_EXPECT_COLUMN_*` macros (#14559) @SurajAralihalli
- Use cudf_test temp_directory class for nvtext::subword_tokenize gbenchmark (#14558) @davidwendt
- Fix return type of prefix increment overloads (#14544) @vuule
- Make bpe_merge_pairs_impl member private (#14543) @davidwendt
- Small clean up in `io::statistics` (#14542) @vuule
- Change json gtest environment variable to compile-time definition (#14541) @davidwendt
- Remove extra total chars size calculation from cudf::concatenate (#14540) @davidwendt
- Refactor IndexedFrame.hash_values to use cudf::hashing functions, add xxhash64 to cudf Python. (#14538) @bdice
- Move non-templated inline function definitions from table_view.hpp to table_view.cpp (#14535) @davidwendt
- Add JNI for strings::code_points (#14533) @thirtiseven
- Add a test for issue 12773 (#14529) @vyasr
- Split libarrow build dependencies. (#14506) @bdice
- Implement `IndexedFrame.duplicated` with `distinct_indices` + `scatter` (#14493) @wence-
- Expunge as_frame conversions in Column algorithms (#14491) @wence-
- Remove unsanitized null from input strings column in rank_tests.cpp (#14475) @davidwendt
- Refactor Parquet kernel_error (#14464) @etseidl
- Deprecate cudf::make_strings_column accepting typed offsets (#14461) @davidwendt
- Remove deprecated nvtext::load_merge_pairs_file (#14460) @davidwendt
- Introduce Comprehensive Pathological Unit Tests for Issue #14409 (#14459) @aocsa
- Expose stream parameter in public nvtext APIs (#14456) @davidwendt
- Include encode type in the error message when unsupported Parquet encoding is detected (#14453) @ZelboK
- Remove null mask for zero nulls in json readers (#14451) @karthikeyann
- Refactor cudf.Series.__init__ (#14450) @mroeschke
- Remove the use of `volatile` in Parquet (#14448) @vuule
- REF: Remove **kwargs from to_pandas, raise if nullable is not implemented (#14438) @mroeschke
- Testing stream pool implementation (#14437) @shrshi
- Match pandas join ordering obligations in pandas-compatible mode (#14428) @wence-
- Forward-merge branch-23.12 to branch-24.02 (#14426) @bdice
- Use isinstance(..., cudf.IntervalDtype) instead of is_interval_dtype (#14424) @mroeschke
- Use isinstance(..., cudf.CategoricalDtype) instead of is_categorical_dtype (#14423) @mroeschke
- Forward-merge branch-23.12 to branch-24.02 (#14422) @bdice
- REF: Remove instances of pd.core (#14421) @mroeschke
- Expose streams in public filling APIs for label_bins (#14401) @ZelboK
- Consolidate 1D pandas object handling in as_column (#14394) @mroeschke
- Limit DELTA_BINARY_PACKED encoder to the same number of bits as the physical type being encoded (#14392) @etseidl
- Add SHA-1 and SHA-2 hash functions. (#14391) @bdice
- Expose streams in Parquet reader and writer APIs (#14359) @shrshi
- Update to fmt 10.1.1 and spdlog 1.12.0. (#14355) @bdice
- Replace default stream for scalars and column factories usages (because of defaulted arguments) (#14354) @karthikeyann
- Expose streams in ORC reader and writer APIs (#14350) @shrshi
- Convert compression and io to string axis type in IO benchmarks (#14347) @SurajAralihalli
- Add cuDF devcontainers (#14015) @trxcllnt
- Refactoring of Buffers (last step towards unifying COW and Spilling) (#13801) @madsbk
- Switch to scikit-build-core (#13531) @vyasr
- Simplify null count checking in column equality comparator (#13312) @vyasr
[NIGHTLY] v24.04.00: tag_name: v24.04.00a
body: ## 🔗 Links

- [Development Branch](https://github.com/rapidsai/cudf/tree/branch-24.04)
- [Compare with `main` branch](https://github.com/rapidsai/cudf/compare/main...branch-24.04)

## 🚨 Breaking Changes

- Change strings_column_view::char_size to return int64 (#15197) @davidwendt
- Upgrade to `arrow-14.0.2` (#15108) @galipremsagar
- Add support for `pandas-2.2` in `cudf` (#15100) @galipremsagar
- Deprecate cudf::hashing::spark_murmurhash3_x86_32 (#15074) @davidwendt
- Align MultiIndex.get_indexder with pandas 2.2 change (#15059) @mroeschke
- Raise an error on import for unsupported GPUs. (#15053) @bdice
- Deprecate datelike isin casting strings to dates to match pandas 2.2 (#15046) @mroeschke
- Align concat Series name behavior in pandas 2.2 (#15032) @mroeschke
- Add `future_stack` to `DataFrame.stack` (#15015) @galipremsagar
- Deprecate groupby fillna (#15000) @mroeschke
- Deprecate replace with categorical columns (#14988) @mroeschke
- Deprecate delim_whitespace in read_csv for pandas 2.2 (#14986) @mroeschke
- Deprecate parameters similar to pandas 2.2 (#14984) @mroeschke
- Add `pandas-2.x` support in `cudf` (#14916) @galipremsagar
- Use cuco::static_set in the hash-based groupby (#14813) @PointKernel

## 🐛 Bug Fixes

- Fix testchunkedPackTwoPasses to copy from the bounce buffer (#15220) @abellina
- Fix accessing `.columns` by an external API (#15212) @galipremsagar
- [JNI] Disable testChunkedPackTwoPasses for now (#15210) @abellina
- Update labeler and codeowner configs for CMake files (#15208) @PointKernel
- Avoid dict normalization in ``__dask_tokenize__`` (#15187) @rjzamora
- Fix memcheck error in distinct inner join (#15164) @PointKernel
- Remove unneeded script parameters in test_cpp_memcheck.sh (#15158) @davidwendt
- Fix `ListColumn.to_pandas()` to retain `list` type (#15155) @galipremsagar
- Fix GroupBy.get_group and GroupBy.indices (#15143) @wence-
- Remove `const` from `range_window_bounds::_extent`. (#15138) @mythrocks
- Fix Series.groupby.shift with a MultiIndex (#15098) @mroeschke
- Fix reductions when DataFrame has MulitIndex columns (#15097) @mroeschke
- Fix deprecation warnings for deprecated hash() calls (#15095) @davidwendt
- Add support for arrow `large_string` in `cudf` (#15093) @galipremsagar
- Fix `sort_values` pytest failure with pandas-2.x regression (#15092) @galipremsagar
- Resolve path parsing issues in `get_json_object` (#15082) @SurajAralihalli
- Fix bugs in handling of delta encodings (#15075) @etseidl
- Fix `is_device_write_preferred` in `void_sink` and `user_sink_wrapper` (#15064) @vuule
- Eliminate duplicate allocation of nested string columns (#15061) @vuule
- Raise an error on import for unsupported GPUs. (#15053) @bdice
- Align concat Series name behavior in pandas 2.2 (#15032) @mroeschke
- Fix `Index.difference` to handle duplicate values when one of the inputs is empty (#15016) @galipremsagar
- Add `future_stack` to `DataFrame.stack` (#15015) @galipremsagar
- Fix handling of values=None in pylibcudf GroupBy.get_groups (#14998) @shwina
- Fix `DataFrame.sort_index` to respect `ignore_index` on all axis (#14995) @galipremsagar
- Raise for pyarrow array that is tz-aware (#14980) @mroeschke
- Direct ``SeriesGroupBy.aggregate`` to ``SeriesGroupBy.agg`` (#14971) @rjzamora
- unset `CUDF_SPILL` after a pytest (#14958) @galipremsagar
- Fix chunked reads of Parquet delta encoded pages (#14921) @etseidl
- Fix reading offset for data stream in ORC reader (#14911) @ttnghia
- Enable sanitizer check for a test case testORCReadAndWriteForDecimal128 (#14897) @res-life
- Fix dask token normalization (#14829) @rjzamora
- Fix 24.04 versions (#14825) @raydouglass
- Ensure slow private attrs are maybe proxies (#14380) @mroeschke

## 📖 Documentation

- Update `developer_guide.md` with new guidance on quoted internal includes (#15238) @harrism
- Fix broken link for developer guide (#15025) @sanjana098
- [DOC] Update typo in docs example of structs_column_wrapper (#14949) @karthikeyann
- Update cudf.pandas FAQ. (#14940) @bdice
- Optimize doc builds (#14856) @vyasr
- Add developer guideline to use east const. (#14836) @bdice
- Document how cuDF is pronounced (#14753) @pentschev
- Notes convert to Pandas-compat (#12641) @Touutae-lab

## 🚀 New Features

- [JNI] rmm based pinned pool (#15219) @abellina
- Implement zero-copy host buffer source instead of using an arrow implementation (#15189) @vuule
- Enable creation of columns from scalar (#15181) @vyasr
- Implement `segmented_row_bit_count` for computing row sizes by segments of rows (#15169) @ttnghia
- Implement search using pylibcudf (#15166) @vyasr
- Add distinct left join (#15149) @PointKernel
- Add ability to request Parquet encodings on a per-column basis (#15081) @etseidl
- Automate include grouping order in .clang-format (#15063) @harrism
- Requesting a clean build directory also clears Jitify cache (#15052) @robertmaynard
- API for JSON unquoted whitespace normalization (#15033) @shrshi
- Implement concatenate, lists.explode, merge, sorting, and stream compaction in pylibcudf (#15011) @vyasr
- Implement replace in pylibcudf (#15005) @vyasr
- Add distinct key inner join (#14990) @PointKernel
- Implement rolling in pylibcudf (#14982) @vyasr
- Implement joins in pylibcudf (#14972) @vyasr
- Implement scans and reductions in pylibcudf (#14970) @vyasr
- Rewrite cudf internals using pylibcudf groupby (#14946) @vyasr
- Implement groupby in pylibcudf (#14945) @vyasr
- POC for whitespace removal in input JSON data using FST (#14931) @shrshi
- Support for LZ4 compression in ORC and Parquet (#14906) @vuule
- Remove supports_streams from cuDF custom memory resources. (#14857) @harrism
- Migrate unary operations to pylibcudf (#14850) @vyasr
- Migrate binary operations to pylibcudf (#14821) @vyasr
- Add row index and stripe size options to Python ORC chunked writer (#14785) @vuule
- Support CUDA 12.2 (#14712) @jameslamb

## 🛠️ Improvements

- Remove row conversion code from libcudf (#15234) @ttnghia
- Add ListColumns.to_pandas(arrow_type=) (#15228) @mroeschke
- Clean up usage of __CUDA_ARCH__ and other macros. (#15218) @bdice
- Switch `pytest-xdist` algo to `worksteal` (#15207) @galipremsagar
- Tune up row size estimation in the data generator (#15202) @vuule
- Change strings_column_view::char_size to return int64 (#15197) @davidwendt
- Fix includes for row_operators.cuh (#15194) @davidwendt
- Generalize GHA selectors for pure Python testing (#15191) @bdice
- Improvements for `__cuda_array_interface__` tests (#15188) @bdice
- Allow to_pandas to return pandas.ArrowDtype (#15182) @mroeschke
- Ignore `byte_range` in `read_json` when the size is not smaller than the input data (#15180) @vuule
- Expose new stable_sort and finish stream_compaction in pylibcudf (#15175) @wence-
- [ci] update matrix filters for dask-cudf builds (#15174) @jameslamb
- Change make_strings_children to return uvector (#15171) @davidwendt
- Drop python-snappy from dependencies. (#15161) @bdice
- Make HostColumnVector.DataType accessor methods public (#15157) @jbrennan333
- Forward-merge branch-24.02 to branch-24.04 (#15153) @bdice
- Add java option to keep quotes for JSON reads (#15146) @revans2
- Use `hostdevice_vector` in `kernel_error`  to avoid the pageable copy (#15140) @vuule
- Java: Add leak tracking for Scalar instances (#15121) @jlowe
- Remove calls to strings_column_view::offsets_begin() (#15112) @davidwendt
- Add support for Python 3.11, require NumPy 1.23+ (#15111) @jameslamb
- Compile-time ipow computation with array lookup (#15110) @pmattione-nvidia
- Upgrade to `arrow-14.0.2` (#15108) @galipremsagar
- Dynamically set version in RAPIDS doc builds (#15101) @jakirkham
- Add support for `pandas-2.2` in `cudf` (#15100) @galipremsagar
- Update devcontainers to CUDA Toolkit 12.2 (#15099) @trxcllnt
- Fix `datetime` binop pytest failures in pandas-2.2 (#15090) @galipremsagar
- Validate types in pylibcudf Column/Table constructors (#15088) @wence-
- xfail test_join_ordering_pandas_compat for pandas 2.2 (#15080) @mroeschke
- Adjust test_binops for pandas 2.2 (#15078) @mroeschke
- Remove offsets_begin() call from nvtext::generate_ngrams (#15077) @davidwendt
- Use offsetalator in cudf::detail::has_nonempty_null_rows (#15076) @davidwendt
- Deprecate cudf::hashing::spark_murmurhash3_x86_32 (#15074) @davidwendt
- Fix cudf::test::to_host to handle both offset types for strings columns (#15073) @davidwendt
- Add condition for test_groupby_nulls_basic in pandas 2.2 (#15072) @mroeschke
- xfail tests in test_udf_masked_ops due to pandas 2.2 bug (#15071) @mroeschke
- target branch-24.04 for GitHub Actions workflows (#15069) @jameslamb
- Implement stable version of `cudf::sort` (#15066) @wence-
- Fix ORC and JSON tests failures for pandas 2.2 (#15062) @mroeschke
- Adjust test_joining for pandas 2.2 (#15060) @mroeschke
- Align MultiIndex.get_indexder with pandas 2.2 change (#15059) @mroeschke
- Fix test_resample index dtype checking for pandas 2.2 (#15058) @mroeschke
- Split out strings/replace.cu and rework its gtests (#15054) @davidwendt
- Avoid incompatible value type setting in test_rolling for pandas 2.2 (#15050) @mroeschke
- Change chained replace inplace test to COW test for pandas 2.2 (#15049) @mroeschke
- Deprecate datelike isin casting strings to dates to match pandas 2.2 (#15046) @mroeschke
- Avoid chained indexing in test_indexing for pandas 2.2 (#15045) @mroeschke
- Avoid pandas 2.2 `DeprecationWarning` in test_hdf (#15044) @mroeschke
- Use appropriate make_offsets_child_column for building lists columns (#15043) @davidwendt
- Factor out position-offsets logic from strings split_helper utility (#15040) @davidwendt
- Forward-merge branch-24.02 to branch-24.04 (#15039) @bdice
- Clean up nvtx macros (#15038) @PointKernel
- Add xfailures for test_applymap for pandas 2.2 (#15034) @mroeschke
- Expose libcudf filter expression in read_parquet (#15028) @wence-
- Adjust tests in test_dataframe.py for pandas 2.2 (#15023) @mroeschke
- Adjust test_datetime_infer_format for pandas 2.2 (#15021) @mroeschke
- Performance optimizations for parquet sub-rowgroup reader. (#15020) @nvdbaranec
- JNI bindings for distinct_hash_join (#15019) @jlowe
- Change copy_if_safe to call thrust instead of the overload function (#15018) @davidwendt
- Improve performance of copy_if_else for long strings (#15017) @davidwendt
- Fix is_string_dtype test for pandas 2.2 (#15012) @mroeschke
- Rework cudf::strings::detail::copy_range for offsetalator (#15010) @davidwendt
- Use offsetalator in cudf::get_json_object() (#15009) @davidwendt
- Align integral types in ORC to specs (#15008) @vuule
- Clean up detail sequence header inclusion (#15007) @PointKernel
- Add groupby.apply(include_groups=) to match pandas 2.2 deprecation (#15006) @mroeschke
- Use offsetalator in cudf::interleave_columns() (#15004) @davidwendt
- Use offsetalator in cudf::row_bit_count() (#15003) @davidwendt
- Use offsetalator in cudf::strings::wrap() (#15002) @davidwendt
- Use offsetalator in cudf::strings::reverse (#15001) @davidwendt
- Deprecate groupby fillna (#15000) @mroeschke
- Ensure to_* IO methods respect pandas 2.2 keyword only deprecation (#14999) @mroeschke
- Remove unneeded calls to create_chars_child_column utility (#14997) @davidwendt
- Add environment-agnostic scripts for running ctests and pytests (#14992) @trxcllnt
- Filter all `DeprecationWarning`&#39;s by `ArrowTable.to_pandas()` (#14989) @galipremsagar
- Deprecate replace with categorical columns (#14988) @mroeschke
- Deprecate delim_whitespace in read_csv for pandas 2.2 (#14986) @mroeschke
- Deprecate parameters similar to pandas 2.2 (#14984) @mroeschke
- Ensure that `ctest` is called with `--no-tests=error`. (#14983) @bdice
- Deprecate non-integer `periods` in `date_range` and `interval_range` (#14976) @galipremsagar
- Update ops-bot.yaml (#14974) @AyodeAwe
- Use fused types for overloaded function signatures (#14969) @vyasr
- Deprecate certain frequency strings (#14967) @galipremsagar
- Update copyrights for 24.04. (#14964) @bdice
- Introduce `GetJsonObjectOptions` in `getJSONObject` Java API (#14956) @SurajAralihalli
- JNI JSON read with DataSource and infered schema, along with basic java nested Schema JSON reads (#14954) @revans2
- Make codecov only informational (always pass). (#14952) @bdice
- Replace legacy cudf and dask_cudf imports as (d)gd (#14944) @mroeschke
- Replace _is_datetime64tz/interval_dtype with isinstance (#14943) @mroeschke
- Update tests for pandas 2. (#14941) @bdice
- Use more public pandas APIs (#14929) @mroeschke
- Replace local copyright check with pre-commit-hooks verify-copyright (#14917) @KyleFromNVIDIA
- Add `pandas-2.x` support in `cudf` (#14916) @galipremsagar
- Use offsetalator in nvtext::byte_pair_encoding (#14888) @davidwendt
- De-DOS line-endings (#14880) @wence-
- Add detail `cuco_allocator` (#14877) @PointKernel
- Move all core types to using enum class in Cython (#14876) @vyasr
- Read `cudf.__version__` in Sphinx build (#14872) @KyleFromNVIDIA
- Use int64 offset types for accessing code-points in nvtext::normalize (#14868) @davidwendt
- Read version from VERSION file in CMake (#14867) @KyleFromNVIDIA
- Update conda-cpp-post-build-checks to branch-24.04. (#14854) @bdice
- Update cudf for compatibility with the latest cuco (#14849) @PointKernel
- Remove deprecated strings functions (#14848) @davidwendt
- Fix CI workflows for pandas-tests and add test summary. (#14847) @bdice
- Use offsetalator in cudf::strings::copy_slice (#14844) @davidwendt
- Fix V2 Parquet page alignment for use with zStandard compression (#14841) @etseidl
- Fix calls to deprecated strings factory API in examples. (#14838) @bdice
- Update pre-commit hooks (#14837) @bdice
- Use `rapids_cuda_set_runtime` to determine cuda runtime usage by target (#14833) @vyasr
- Remove get_mem_info functions from custom memory resources (#14832) @harrism
- Fix debug build by splitting row_operator_tests_utilities.cu (#14826) @davidwendt
- Remove -DNVBench_ENABLE_CUPTI=OFF. (#14820) @bdice
- Use cuco::static_set in the hash-based groupby (#14813) @PointKernel
- Branch 24.04 merge branch 24.02 (#14809) @vyasr
- Branch 24.04 merge branch 24.02 (#14806) @vyasr
- Remove `build_struct|list_column` (#14786) @mroeschke
- Use offsetalator in nvtext tokenize functions (#14783) @davidwendt
- Reduce execution time of Python ORC tests (#14776) @vuule
- Use offsetalator in cudf::strings::split functions (#14757) @davidwendt
- Use offsetalator in cudf::strings::findall (#14745) @davidwendt
- Use offsetalator in cudf::strings::url_decode (#14744) @davidwendt
- Use get_offset_value utility in strings shift function (#14743) @davidwendt
- Use as_column instead of full (#14698) @mroeschke
v23.12.01: tag_name: v23.12.01
body: ## 🚨 Breaking Changes

- Raise error in `reindex` when `index` is not unique (#14400) @galipremsagar
- Expose stream parameter to get_json_object API (#14297) @davidwendt
- Refactor cudf_kafka to use skbuild (#14292) @jdye64
- Expose stream parameter in public strings convert APIs (#14255) @davidwendt
- Upgrade to nvCOMP 3.0.4 (#13815) @vuule

## 🐛 Bug Fixes

- Fix synchronization issue when writing string columns with dictionary to ORC (#14595) @vuule
- Update actions/labeler to v4 (#14562) @raydouglass
- Fix data corruption when skipping rows (#14557) @etseidl
- Fix function name typo in `cudf.pandas` profiler (#14514) @galipremsagar
- Fix intermediate type checking in expression parsing (#14445) @vyasr
- Forward merge `branch-23.10` into `branch-23.12` (#14435) @raydouglass
- Remove needs: wheel-build-cudf. (#14427) @bdice
- Fix dask dependency in custreamz (#14420) @vyasr
- Ensure nvbench initializes nvml context when built statically (#14411) @robertmaynard
- Support java AST String literal with desired encoding (#14402) @winningsix
- Raise error in `reindex` when `index` is not unique (#14400) @galipremsagar
- Always build nvbench statically so we don&#39;t need to package it (#14399) @robertmaynard
- Fix token-count logic in nvtext::tokenize_with_vocabulary (#14393) @davidwendt
- Fix as_column(pd.Timestamp/Timedelta, length=) not respecting length (#14390) @mroeschke
- cudf.pandas: cuDF subpath checking in module `__getattr__` (#14388) @shwina
- Fix and disable encoding for nanosecond statistics in ORC writer (#14367) @vuule
- Add the new manylinux builds to the build job (#14351) @vyasr
- cudf jit parser now supports .pragma instructions with quotes (#14348) @robertmaynard
- Fix overflow check in `cudf::merge` (#14345) @divyegala
- Add cramjam (#14344) @vyasr
- Enable `dask_cudf/io` pytests in CI (#14338) @galipremsagar
- Temporarily avoid the current build of pydata-sphinx-theme (#14332) @vyasr
- Fix host buffer access from device function in the Parquet reader (#14328) @vuule
- Run IO tests for Dask-cuDF (#14327) @rjzamora
- Fix logical type issues in the Parquet writer (#14322) @vuule
- Remove aws-sdk-pinning and revert to arrow 12.0.1 (#14319) @vyasr
- test is_valid before reading column data (#14318) @etseidl
- Fix gtest validity setting for TextTokenizeTest.Vocabulary (#14312) @davidwendt
- Fixes stack context for json lines format that recovers from invalid JSON lines (#14309) @elstehle
- Downgrade to Arrow 12.0.0 for aws-sdk-cpp and fix cudf_kafka builds for new CI containers (#14296) @vyasr
- fixing thread index overflow issue (#14290) @hyperbolic2346
- Fix memset error in nvtext::edit_distance_matrix (#14283) @davidwendt
- Changes JSON reader&#39;s recovery option&#39;s behaviour to ignore all characters after a valid JSON record (#14279) @elstehle
- Handle empty string correctly in Parquet statistics (#14257) @etseidl
- Fixes behaviour for incomplete lines when `recover_with_nulls` is enabled (#14252) @elstehle
- cudf::detail::pinned_allocator doesn&#39;t throw from `deallocate` (#14251) @robertmaynard
- Fix strings replace for adjacent, identical multi-byte UTF-8 character targets (#14235) @davidwendt
- Fix the precision when converting a decimal128 column to an arrow array (#14230) @jihoonson
- Fixing parquet list of struct interpretation (#13715) @hyperbolic2346

## 📖 Documentation

- Fix io reference in docs. (#14452) @bdice
- Update README (#14374) @shwina
- Example code for blog on new row comparators (#13795) @divyegala

## 🚀 New Features

- Expose streams in public unary APIs (#14342) @vyasr
- Add python tests for Parquet DELTA_BINARY_PACKED encoder (#14316) @etseidl
- Update rapids-cmake functions to non-deprecated signatures (#14265) @robertmaynard
- Expose streams in public null mask APIs (#14263) @vyasr
- Expose streams in binaryop APIs (#14187) @vyasr
- Add pylibcudf.Scalar that interoperates with Arrow scalars (#14133) @vyasr
- Add decoder for DELTA_BYTE_ARRAY to Parquet reader (#14101) @etseidl
- Add DELTA_BINARY_PACKED encoder for Parquet writer (#14100) @etseidl
- Add BytePairEncoder class to cuDF (#13891) @davidwendt
- Upgrade to nvCOMP 3.0.4 (#13815) @vuule
- Use `pynvjitlink` for CUDA 12+ MVC (#13650) @brandon-b-miller

## 🛠️ Improvements

- Build concurrency for nightly and merge triggers (#14441) @bdice
- Cleanup remaining usages of dask dependencies (#14407) @galipremsagar
- Update to Arrow 14.0.1. (#14387) @bdice
- Remove Cython libcpp wrappers (#14382) @vyasr
- Forward-merge branch-23.10 to branch-23.12 (#14372) @bdice
- Upgrade to arrow 14 (#14371) @galipremsagar
- Fix a pytest typo in `test_kurt_skew_error` (#14368) @galipremsagar
- Use new rapids-dask-dependency metapackage for managing dask versions (#14364) @vyasr
- Change `nullable()` to `has_nulls()` in `cudf::detail::gather` (#14363) @divyegala
- Split up scan_inclusive.cu to improve its compile time (#14358) @davidwendt
- Implement user_datasource_wrapper is_empty() and is_device_read_preferred(). (#14357) @tpn
- Added streams to CSV reader and writer api (#14340) @shrshi
- Upgrade wheels to use arrow 13 (#14339) @vyasr
- Rework nvtext::byte_pair_encoding API (#14337) @davidwendt
- Improve performance of nvtext::tokenize_with_vocabulary for long strings (#14336) @davidwendt
- Upgrade `arrow` to `13` (#14330) @galipremsagar
- Expose stream parameter in public nvtext replace APIs (#14329) @davidwendt
- Drop `pyorc` dependency and use `pandas`/`pyarrow` instead (#14323) @galipremsagar
- Avoid `pyarrow.fs` import for local storage (#14321) @rjzamora
- Unpin `dask` and `distributed` for `23.12` development (#14320) @galipremsagar
- Expose stream parameter in public nvtext tokenize APIs (#14317) @davidwendt
- Added streams to JSON reader and writer api (#14313) @shrshi
- Minor improvements in `source_info` (#14308) @vuule
- Forward-merge branch-23.10 to branch-23.12 (#14307) @bdice
- Add stream parameter to Set Operations (Public List APIs) (#14305) @SurajAralihalli
- Expose stream parameter to get_json_object API (#14297) @davidwendt
- Sort dictionary data alphabetically in the ORC writer (#14295) @vuule
- Expose stream parameter in public strings filter APIs (#14293) @davidwendt
- Refactor cudf_kafka to use skbuild (#14292) @jdye64
- Update `shared-action-workflows` references (#14289) @AyodeAwe
- Register ``partd`` encode dispatch in ``dask_cudf`` (#14287) @rjzamora
- Update versioning strategy (#14285) @vyasr
- Move and rename byte-pair-encoding source files (#14284) @davidwendt
- Expose stream parameter in public strings combine APIs (#14281) @davidwendt
- Expose stream parameter in public strings contains APIs (#14280) @davidwendt
- Add stream parameter to List Sort and Filter APIs (#14272) @SurajAralihalli
- Use branch-23.12 workflows. (#14271) @bdice
- Refactor LogicalType for Parquet (#14264) @etseidl
- Centralize chunked reading code in the parquet reader to reader_impl_chunking.cu (#14262) @nvdbaranec
- Expose stream parameter in public strings replace APIs (#14261) @davidwendt
- Expose stream parameter in public strings APIs (#14260) @davidwendt
- Cleanup of namespaces in parquet code. (#14259) @nvdbaranec
- Make parquet schema index type consistent (#14256) @hyperbolic2346
- Expose stream parameter in public strings convert APIs (#14255) @davidwendt
- Add in java bindings for DataSource (#14254) @revans2
- Reimplement `cudf::merge` for nested types without using comparators (#14250) @divyegala
- Add stream parameter to List Manipulation and Operations APIs (#14248) @SurajAralihalli
- Expose stream parameter in public strings split/partition APIs (#14247) @davidwendt
- Improve `contains_column` by invoking `contains_table` (#14238) @PointKernel
- Detect and report errors in Parquet header parsing (#14237) @etseidl
- Normalizing offsets iterator (#14234) @davidwendt
- Forward merge `23.10` into `23.12` (#14231) @galipremsagar
- Return error if BOOL8 column-type is used with integers-to-hex (#14208) @davidwendt
- Enable indexalator for device code (#14206) @davidwendt
- Marginally reduce memory footprint of joins (#14197) @wence-
- Add nvtx annotations to spilling-based data movement (#14196) @wence-
- Optimize ORC writer for decimal columns (#14190) @vuule
- Remove the use of volatile in ORC (#14175) @vuule
- Add `bytes_per_second` to distinct_count of stream_compaction nvbench. (#14172) @Blonck
- Add `bytes_per_second` to transpose benchmark (#14170) @Blonck
- cuDF: Build CUDA 12.0 ARM conda packages. (#14112) @bdice
- Add `bytes_per_second` to shift benchmark (#13950) @Blonck
- Extract `debug_utilities.hpp/cu` from `column_utilities.hpp/cu` (#13720) @ttnghia
v23.12.00: tag_name: v23.12.00
body: ## 🚨 Breaking Changes

- Raise error in `reindex` when `index` is not unique (#14400) @galipremsagar
- Expose stream parameter to get_json_object API (#14297) @davidwendt
- Refactor cudf_kafka to use skbuild (#14292) @jdye64
- Expose stream parameter in public strings convert APIs (#14255) @davidwendt
- Upgrade to nvCOMP 3.0.4 (#13815) @vuule

## 🐛 Bug Fixes

- Update actions/labeler to v4 (#14562) @raydouglass
- Fix data corruption when skipping rows (#14557) @etseidl
- Fix function name typo in `cudf.pandas` profiler (#14514) @galipremsagar
- Fix intermediate type checking in expression parsing (#14445) @vyasr
- Forward merge `branch-23.10` into `branch-23.12` (#14435) @raydouglass
- Remove needs: wheel-build-cudf. (#14427) @bdice
- Fix dask dependency in custreamz (#14420) @vyasr
- Ensure nvbench initializes nvml context when built statically (#14411) @robertmaynard
- Support java AST String literal with desired encoding (#14402) @winningsix
- Raise error in `reindex` when `index` is not unique (#14400) @galipremsagar
- Always build nvbench statically so we don&#39;t need to package it (#14399) @robertmaynard
- Fix token-count logic in nvtext::tokenize_with_vocabulary (#14393) @davidwendt
- Fix as_column(pd.Timestamp/Timedelta, length=) not respecting length (#14390) @mroeschke
- cudf.pandas: cuDF subpath checking in module `__getattr__` (#14388) @shwina
- Fix and disable encoding for nanosecond statistics in ORC writer (#14367) @vuule
- Add the new manylinux builds to the build job (#14351) @vyasr
- cudf jit parser now supports .pragma instructions with quotes (#14348) @robertmaynard
- Fix overflow check in `cudf::merge` (#14345) @divyegala
- Add cramjam (#14344) @vyasr
- Enable `dask_cudf/io` pytests in CI (#14338) @galipremsagar
- Temporarily avoid the current build of pydata-sphinx-theme (#14332) @vyasr
- Fix host buffer access from device function in the Parquet reader (#14328) @vuule
- Run IO tests for Dask-cuDF (#14327) @rjzamora
- Fix logical type issues in the Parquet writer (#14322) @vuule
- Remove aws-sdk-pinning and revert to arrow 12.0.1 (#14319) @vyasr
- test is_valid before reading column data (#14318) @etseidl
- Fix gtest validity setting for TextTokenizeTest.Vocabulary (#14312) @davidwendt
- Fixes stack context for json lines format that recovers from invalid JSON lines (#14309) @elstehle
- Downgrade to Arrow 12.0.0 for aws-sdk-cpp and fix cudf_kafka builds for new CI containers (#14296) @vyasr
- fixing thread index overflow issue (#14290) @hyperbolic2346
- Fix memset error in nvtext::edit_distance_matrix (#14283) @davidwendt
- Changes JSON reader&#39;s recovery option&#39;s behaviour to ignore all characters after a valid JSON record (#14279) @elstehle
- Handle empty string correctly in Parquet statistics (#14257) @etseidl
- Fixes behaviour for incomplete lines when `recover_with_nulls` is enabled (#14252) @elstehle
- cudf::detail::pinned_allocator doesn&#39;t throw from `deallocate` (#14251) @robertmaynard
- Fix strings replace for adjacent, identical multi-byte UTF-8 character targets (#14235) @davidwendt
- Fix the precision when converting a decimal128 column to an arrow array (#14230) @jihoonson
- Fixing parquet list of struct interpretation (#13715) @hyperbolic2346

## 📖 Documentation

- Fix io reference in docs. (#14452) @bdice
- Update README (#14374) @shwina
- Example code for blog on new row comparators (#13795) @divyegala

## 🚀 New Features

- Expose streams in public unary APIs (#14342) @vyasr
- Add python tests for Parquet DELTA_BINARY_PACKED encoder (#14316) @etseidl
- Update rapids-cmake functions to non-deprecated signatures (#14265) @robertmaynard
- Expose streams in public null mask APIs (#14263) @vyasr
- Expose streams in binaryop APIs (#14187) @vyasr
- Add pylibcudf.Scalar that interoperates with Arrow scalars (#14133) @vyasr
- Add decoder for DELTA_BYTE_ARRAY to Parquet reader (#14101) @etseidl
- Add DELTA_BINARY_PACKED encoder for Parquet writer (#14100) @etseidl
- Add BytePairEncoder class to cuDF (#13891) @davidwendt
- Upgrade to nvCOMP 3.0.4 (#13815) @vuule
- Use `pynvjitlink` for CUDA 12+ MVC (#13650) @brandon-b-miller

## 🛠️ Improvements

- Build concurrency for nightly and merge triggers (#14441) @bdice
- Cleanup remaining usages of dask dependencies (#14407) @galipremsagar
- Update to Arrow 14.0.1. (#14387) @bdice
- Remove Cython libcpp wrappers (#14382) @vyasr
- Forward-merge branch-23.10 to branch-23.12 (#14372) @bdice
- Upgrade to arrow 14 (#14371) @galipremsagar
- Fix a pytest typo in `test_kurt_skew_error` (#14368) @galipremsagar
- Use new rapids-dask-dependency metapackage for managing dask versions (#14364) @vyasr
- Change `nullable()` to `has_nulls()` in `cudf::detail::gather` (#14363) @divyegala
- Split up scan_inclusive.cu to improve its compile time (#14358) @davidwendt
- Implement user_datasource_wrapper is_empty() and is_device_read_preferred(). (#14357) @tpn
- Added streams to CSV reader and writer api (#14340) @shrshi
- Upgrade wheels to use arrow 13 (#14339) @vyasr
- Rework nvtext::byte_pair_encoding API (#14337) @davidwendt
- Improve performance of nvtext::tokenize_with_vocabulary for long strings (#14336) @davidwendt
- Upgrade `arrow` to `13` (#14330) @galipremsagar
- Expose stream parameter in public nvtext replace APIs (#14329) @davidwendt
- Drop `pyorc` dependency and use `pandas`/`pyarrow` instead (#14323) @galipremsagar
- Avoid `pyarrow.fs` import for local storage (#14321) @rjzamora
- Unpin `dask` and `distributed` for `23.12` development (#14320) @galipremsagar
- Expose stream parameter in public nvtext tokenize APIs (#14317) @davidwendt
- Added streams to JSON reader and writer api (#14313) @shrshi
- Minor improvements in `source_info` (#14308) @vuule
- Forward-merge branch-23.10 to branch-23.12 (#14307) @bdice
- Add stream parameter to Set Operations (Public List APIs) (#14305) @SurajAralihalli
- Expose stream parameter to get_json_object API (#14297) @davidwendt
- Sort dictionary data alphabetically in the ORC writer (#14295) @vuule
- Expose stream parameter in public strings filter APIs (#14293) @davidwendt
- Refactor cudf_kafka to use skbuild (#14292) @jdye64
- Update `shared-action-workflows` references (#14289) @AyodeAwe
- Register ``partd`` encode dispatch in ``dask_cudf`` (#14287) @rjzamora
- Update versioning strategy (#14285) @vyasr
- Move and rename byte-pair-encoding source files (#14284) @davidwendt
- Expose stream parameter in public strings combine APIs (#14281) @davidwendt
- Expose stream parameter in public strings contains APIs (#14280) @davidwendt
- Add stream parameter to List Sort and Filter APIs (#14272) @SurajAralihalli
- Use branch-23.12 workflows. (#14271) @bdice
- Refactor LogicalType for Parquet (#14264) @etseidl
- Centralize chunked reading code in the parquet reader to reader_impl_chunking.cu (#14262) @nvdbaranec
- Expose stream parameter in public strings replace APIs (#14261) @davidwendt
- Expose stream parameter in public strings APIs (#14260) @davidwendt
- Cleanup of namespaces in parquet code. (#14259) @nvdbaranec
- Make parquet schema index type consistent (#14256) @hyperbolic2346
- Expose stream parameter in public strings convert APIs (#14255) @davidwendt
- Add in java bindings for DataSource (#14254) @revans2
- Reimplement `cudf::merge` for nested types without using comparators (#14250) @divyegala
- Add stream parameter to List Manipulation and Operations APIs (#14248) @SurajAralihalli
- Expose stream parameter in public strings split/partition APIs (#14247) @davidwendt
- Improve `contains_column` by invoking `contains_table` (#14238) @PointKernel
- Detect and report errors in Parquet header parsing (#14237) @etseidl
- Normalizing offsets iterator (#14234) @davidwendt
- Forward merge `23.10` into `23.12` (#14231) @galipremsagar
- Return error if BOOL8 column-type is used with integers-to-hex (#14208) @davidwendt
- Enable indexalator for device code (#14206) @davidwendt
- Marginally reduce memory footprint of joins (#14197) @wence-
- Add nvtx annotations to spilling-based data movement (#14196) @wence-
- Optimize ORC writer for decimal columns (#14190) @vuule
- Remove the use of volatile in ORC (#14175) @vuule
- Add `bytes_per_second` to distinct_count of stream_compaction nvbench. (#14172) @Blonck
- Add `bytes_per_second` to transpose benchmark (#14170) @Blonck
- cuDF: Build CUDA 12.0 ARM conda packages. (#14112) @bdice
- Add `bytes_per_second` to shift benchmark (#13950) @Blonck
- Extract `debug_utilities.hpp/cu` from `column_utilities.hpp/cu` (#13720) @ttnghia
v23.10.02: tag_name: v23.10.02
body: ## 🚨 Breaking Changes

- Raise error in `reindex` when `index` is not unique (#14429) @galipremsagar
- Expose stream parameter in public nvtext ngram APIs (#14061) @davidwendt
- Raise `MixedTypeError` when a column of mixed-dtype is being constructed (#14050) @galipremsagar
- Raise `NotImplementedError` for `MultiIndex.to_series` (#14049) @galipremsagar
- Create table_input_metadata from a table_metadata (#13920) @etseidl
- Enable RLE boolean encoding for v2 Parquet files (#13886) @etseidl
- Change `NA` to `NaT` for `datetime` and `timedelta` types (#13868) @galipremsagar
- Fix `any`, `all` reduction behavior for `axis=None` and warn for other reductions (#13831) @galipremsagar
- Add minhash support for MurmurHash3_x64_128 (#13796) @davidwendt
- Remove the libcudf cudf::offset_type type (#13788) @davidwendt
- Raise error when trying to join `datetime` and `timedelta` types with other types (#13786) @galipremsagar
- Update to Cython 3.0.0 (#13777) @vyasr
- Raise error on constructing an array from mixed type inputs (#13768) @galipremsagar
- Enforce deprecations in `23.10` (#13732) @galipremsagar
- Upgrade to arrow 12 (#13728) @galipremsagar
- Remove Arrow dependency from the `datasource.hpp` public header (#13698) @vuule

## 🐛 Bug Fixes

- Raise error in `reindex` when `index` is not unique (#14429) @galipremsagar
- Fix inaccurate ceil/floor and inaccurate rescaling casts of fixed-point values. (#14242) @bdice
- Fix inaccuracy in decimal128 rounding. (#14233) @bdice
- Workaround for illegal instruction error in sm90 for warp instrinsics with mask (#14201) @karthikeyann
- Fix pytorch related pytest (#14198) @galipremsagar
- Pin to `aws-sdk-cpp&lt;1.11` (#14173) @pentschev
- Fix assert failure for range window functions (#14168) @mythrocks
- Fix Memcheck error found in JSON_TEST JsonReaderTest.ErrorStrings (#14164) @karthikeyann
- Fix calls to copy_bitmask to pass stream parameter (#14158) @davidwendt
- Fix DataFrame from Series with different CategoricalIndexes (#14157) @mroeschke
- Pin to numpy&lt;1.25 and numba&lt;0.58 to avoid errors and deprecation warnings-as-errors. (#14156) @bdice
- Fix kernel launch error for cudf::io::orc::gpu::rowgroup_char_counts_kernel (#14139) @davidwendt
- Don&#39;t sort columns for DataFrame init from list of Series (#14136) @mroeschke
- Fix DataFrame.values with no columns but index (#14134) @mroeschke
- Avoid circular cimports in _lib/cpp/reduce.pxd (#14125) @vyasr
- Add support for nested dict in `DataFrame` constructor (#14119) @galipremsagar
- Restrict iterables of `DataFrame`&#39;s as input to `DataFrame` constructor (#14118) @galipremsagar
- Allow `numeric_only=True` for reduction operations on numeric types (#14111) @galipremsagar
- Preserve name of the column while initializing a `DataFrame` (#14110) @galipremsagar
- Correct numerous 20054-D: dynamic initialization errors found on arm+12.2 (#14108) @robertmaynard
- Drop `kwargs` from `Series.count` (#14106) @galipremsagar
- Fix naming issues with `Index.to_frame` and `MultiIndex.to_frame` APIs (#14105) @galipremsagar
- Only use memory resources that haven&#39;t been freed (#14103) @robertmaynard
- Add support for `__round__` in `Series` and `DataFrame` (#14099) @galipremsagar
- Validate ignore_index type in drop_duplicates (#14098) @mroeschke
- Fix renaming `Series` and `Index` (#14080) @galipremsagar
- Raise NotImplementedError in to_datetime if Z (or tz component) in string (#14074) @mroeschke
- Raise NotImplementedError for datetime strings with UTC offset (#14070) @mroeschke
- Update pyarrow-related dispatch logic in dask_cudf (#14069) @rjzamora
- Use `conda mambabuild` rather than `mamba mambabuild` (#14067) @wence-
- Raise NotImplementedError in to_datetime with dayfirst without infer_format (#14058) @mroeschke
- Fix various issues in `Index.intersection` (#14054) @galipremsagar
- Fix `Index.difference` to match with pandas (#14053) @galipremsagar
- Fix empty string column construction (#14052) @galipremsagar
- Fix `IntervalIndex.union` to preserve type-metadata (#14051) @galipremsagar
- Raise `MixedTypeError` when a column of mixed-dtype is being constructed (#14050) @galipremsagar
- Raise `NotImplementedError` for `MultiIndex.to_series` (#14049) @galipremsagar
- Ignore compile_commands.json (#14048) @harrism
- Raise TypeError for any non-parseable argument in to_datetime (#14044) @mroeschke
- Raise NotImplementedError for to_datetime with z format (#14037) @mroeschke
- Implement `sort_remaining` for `sort_index` (#14033) @wence-
- Raise NotImplementedError for Categoricals with timezones (#14032) @mroeschke
- Temporary fix Parquet metadata with empty value string being ignored from writing (#14026) @ttnghia
- Preserve types of scalar being returned when possible in `quantile` (#14014) @galipremsagar
- Fix return type of `MultiIndex.difference` (#14009) @galipremsagar
- Raise an error when timezone subtypes are encountered in `pd.IntervalDtype` (#14006) @galipremsagar
- Fix map column can not be non-nullable for java (#14003) @res-life
- Fix `name` selection in `Index.difference` and `Index.intersection` (#13986) @galipremsagar
- Restore column type metadata with `dropna` to fix `factorize` API (#13980) @galipremsagar
- Use thread_index_type to avoid out of bounds accesses in conditional joins (#13971) @vyasr
- Fix `MultiIndex.to_numpy` to return numpy array with tuples (#13966) @galipremsagar
- Use cudf::thread_index_type in get_json_object and tdigest kernels (#13962) @nvdbaranec
- Fix an issue with `IntervalIndex.repr` when null values are present (#13958) @galipremsagar
- Fix type metadata issue preservation with `Column.unique` (#13957) @galipremsagar
- Handle `Interval` scalars when passed in list-like inputs to `cudf.Index` (#13956) @galipremsagar
- Fix setting of categories order when `dtype` is passed to a `CategoricalColumn` (#13955) @galipremsagar
- Handle `as_index` in `GroupBy.apply` (#13951) @brandon-b-miller
- Raise error for string types in `nsmallest` and `nlargest` (#13946) @galipremsagar
- Fix `index` of `Groupby.apply` results when it is performed on empty objects (#13944) @galipremsagar
- Fix integer overflow in shim `device_sum` functions (#13943) @brandon-b-miller
- Fix type mismatch in groupby reduction for empty objects (#13942) @galipremsagar
- Fixed processed bytes calculation in APPLY_BOOLEAN_MASK benchmark. (#13937) @Blonck
- Fix construction of `Grouping` objects (#13932) @galipremsagar
- Fix an issue with `loc` when column names is `MultiIndex` (#13929) @galipremsagar
- Fix handling of typecasting in `searchsorted` (#13925) @galipremsagar
- Preserve index `name` in `reindex` (#13917) @galipremsagar
- Use `cudf::thread_index_type` in cuIO to prevent overflow in row indexing (#13910) @vuule
- Fix for encodings listed in the Parquet column chunk metadata (#13907) @etseidl
- Use cudf::thread_index_type in concatenate.cu. (#13906) @bdice
- Use cudf::thread_index_type in replace.cu. (#13905) @bdice
- Add noSanitizer tag to Java reduction tests failing with sanitizer in CUDA 12 (#13904) @jlowe
- Remove the internal use of the cudf&#39;s default stream in cuIO (#13903) @vuule
- Use cuda-nvtx-dev CUDA 12 package. (#13901) @bdice
- Use `thread_index_type` to avoid index overflow in grid-stride loops (#13895) @PointKernel
- Fix memory access error in cudf::shift for sliced strings (#13894) @davidwendt
- Raise error when trying to construct a `DataFrame` with mixed types (#13889) @galipremsagar
- Return `nan` when one variable to be correlated has zero variance in JIT GroupBy Apply (#13884) @brandon-b-miller
- Correctly detect the BOM mark in `read_csv` with compressed input (#13881) @vuule
- Check for the presence of all values in `MultiIndex.isin` (#13879) @galipremsagar
- Fix nvtext::generate_character_ngrams performance regression for longer strings (#13874) @davidwendt
- Fix return type of `MultiIndex.levels` (#13870) @galipremsagar
- Fix List&#39;s missing children metadata in JSON writer (#13869) @karthikeyann
- Disable construction of Index when `freq` is set in pandas-compatibility mode (#13857) @galipremsagar
- Fix an issue with fetching `NA` from a `TimedeltaColumn` (#13853) @galipremsagar
- Simplify implementation of interval_range() and fix behaviour for floating `freq` (#13844) @shwina
- Fix binary operations between `Series` and `Index` (#13842) @galipremsagar
- Update make_lists_column_from_scalar to use make_offsets_child_column utility (#13841) @davidwendt
- Fix read out of bounds in string concatenate (#13838) @pentschev
- Raise error for more cases when `timezone-aware` data is passed to `as_column` (#13835) @galipremsagar
- Fix `any`, `all` reduction behavior for `axis=None` and warn for other reductions (#13831) @galipremsagar
- Raise error when trying to construct time-zone aware timestamps (#13830) @galipremsagar
- Fix cuFile I/O factories (#13829) @vuule
- DataFrame with namedtuples uses ._field as column names (#13824) @mroeschke
- Branch 23.10 merge 23.08 (#13822) @vyasr
- Return a Series from JIT GroupBy apply, rather than a DataFrame (#13820) @brandon-b-miller
- No need to dlsym EnsureS3Finalized we can call it directly (#13819) @robertmaynard
- Raise error when mixed types are being constructed (#13816) @galipremsagar
- Fix unbounded sequence issue in `DataFrame` constructor (#13811) @galipremsagar
- Fix Byte-Pair-Encoding usage of cuco static-map for storing merge-pairs (#13807) @davidwendt
- Fix for Parquet writer when requested pages per row is smaller than fragment size (#13806) @etseidl
- Remove hangs from trying to construct un-bounded sequences (#13799) @galipremsagar
- Bug/update libcudf to handle arrow12 changes (#13794) @robertmaynard
- Update get_arrow to arrows 12 CMake target name of arrow::xsimd (#13790) @robertmaynard
- Raise error when trying to join `datetime` and `timedelta` types with other types (#13786) @galipremsagar
- Fix negative unary operation for boolean type (#13780) @galipremsagar
- Fix contains(`in`) method for `Series` (#13779) @galipremsagar
- Fix binary operation column ordering and missing column issues (#13778) @galipremsagar
- Cast only time of day to nanos to avoid an overflow in Parquet INT96 write (#13776) @gerashegalov
- Preserve names of column object in various APIs (#13772) @galipremsagar
- Raise error on constructing an array from mixed type inputs (#13768) @galipremsagar
- Fix construction of DataFrames from dict when columns are provided (#13766) @wence-
- Provide our own Cython declaration for make_unique (#13746) @wence-

## 📖 Documentation

- Fix benchmark image. (#14376) @bdice
- Fix typo in docstring: metadata. (#14025) @bdice
- Fix typo in parquet/page_decode.cuh (#13849) @XinyuZeng
- Simplify Python doc configuration (#13826) @vyasr
- Update documentation to reflect recent changes in JSON reader and writer (#13791) @vuule
- Fix all warnings in Python docs (#13789) @vyasr

## 🚀 New Features

- [Java] Add JNI bindings for `integers_to_hex` (#14205) @razajafri
- Propagate errors from Parquet reader kernels back to host (#14167) @vuule
- JNI for `HISTOGRAM` and `MERGE_HISTOGRAM` aggregations (#14154) @ttnghia
- Expose streams in all public sorting APIs (#14146) @vyasr
- Enable direct ingestion and production of Arrow scalars (#14121) @vyasr
- Implement `GroupBy.value_counts` to match pandas API (#14114) @stmio
- Refactor parquet thrift reader (#14097) @etseidl
- Refactor `hash_reduce_by_row` (#14095) @ttnghia
- Support negative preceding/following for ROW window functions (#14093) @mythrocks
- Support for progressive parquet chunked reading. (#14079) @nvdbaranec
- Implement `HISTOGRAM` and `MERGE_HISTOGRAM` aggregations (#14045) @ttnghia
- Expose streams in public search APIs (#14034) @vyasr
- Expose streams in public replace APIs (#14010) @vyasr
- Add stream parameter to public cudf::strings::split APIs (#13997) @davidwendt
- Expose streams in public filling APIs (#13990) @vyasr
- Expose streams in public concatenate APIs (#13987) @vyasr
- Use HostMemoryAllocator in jni::allocate_host_buffer (#13975) @gerashegalov
- Enable fractional null probability for hashing benchmark (#13967) @Blonck
- Switch pylibcudf-enabled types to use enum class in Cython (#13931) @vyasr
- Add nvtext::tokenize_with_vocabulary API (#13930) @davidwendt
- Rewrite `DataFrame.stack` to support multi level column names (#13927) @isVoid
- Add HostMemoryAllocator interface (#13924) @gerashegalov
- Global stream pool (#13922) @etseidl
- Create table_input_metadata from a table_metadata (#13920) @etseidl
- Translate column size overflow exception to JNI (#13911) @mythrocks
- Enable RLE boolean encoding for v2 Parquet files (#13886) @etseidl
- Exclude some tests from running with the compute sanitizer (#13872) @firestarman
- Expand statistics support in ORC writer (#13848) @vuule
- Register the memory mapped buffer in `datasource` to improve H2D throughput (#13814) @vuule
- Add cudf::strings::find function with target per row (#13808) @davidwendt
- Add minhash support for MurmurHash3_x64_128 (#13796) @davidwendt
- Remove unnecessary pointer copying in JIT GroupBy Apply (#13792) @brandon-b-miller
- Add &#39;poll&#39; function to custreamz kafka consumer (#13782) @jdye64
- Support `corr` in `GroupBy.apply` through the jit engine (#13767) @shwina
- Optionally write version 2 page headers in Parquet writer (#13751) @etseidl
- Support more numeric types in `Groupby.apply` with `engine=&#39;jit&#39;` (#13729) @brandon-b-miller
- [FEA] Add DELTA_BINARY_PACKED decoding support to Parquet reader (#13637) @etseidl
- Read FIXED_LEN_BYTE_ARRAY as binary in parquet reader (#13437) @PointKernel

## 🛠️ Improvements

- Update `shared-action-workflows` references (backport from `23.12` to `23.10`) (#14300) @AyodeAwe
- Pin `dask` and `distributed` for `23.10` release (#14225) @galipremsagar
- update rmm tag path (#14195) @AyodeAwe
- Disable `Recently Updated` Check (#14193) @ajschmidt8
- Move cpp/src/hash/hash_allocator.cuh to include/cudf/hashing/detail (#14163) @davidwendt
- Add Parquet reader benchmarks for row selection (#14147) @vuule
- Update image names (#14145) @AyodeAwe
- Support callables in DataFrame.assign (#14142) @wence-
- Reduce memory usage of as_categorical_column (#14138) @wence-
- Replace Python scalar conversions with libcudf (#14124) @vyasr
- Update to clang 16.0.6. (#14120) @bdice
- Fix type of empty `Index` and raise warning in `Series` constructor (#14116) @galipremsagar
- Add stream parameter to external dict APIs (#14115) @SurajAralihalli
- Add fallback matrix for nvcomp. (#14082) @bdice
- [Java] Add recoverWithNull to JSONOptions and pass to Table.readJSON (#14078) @andygrove
- Remove header tests (#14072) @ajschmidt8
- Refactor `contains_table` with cuco::static_set (#14064) @PointKernel
- Remove debug print in a Parquet test (#14063) @vuule
- Expose stream parameter in public nvtext ngram APIs (#14061) @davidwendt
- Expose stream parameter in public strings find APIs (#14060) @davidwendt
- Update doxygen to 1.9.1 (#14059) @vyasr
- Remove the mr from the base fixture (#14057) @vyasr
- Expose streams in public strings case APIs (#14056) @davidwendt
- Refactor libcudf indexalator to typed normalator (#14043) @davidwendt
- Use cudf::make_empty_column instead of column_view constructor (#14030) @davidwendt
- Remove quadratic runtime due to accessing Frame._dtypes in loop (#14028) @wence-
- Explicitly depend on zlib in conda recipes (#14018) @wence-
- Use grid_stride for stride computations. (#13996) @bdice
- Fix an issue where casting null-array to `object` dtype will result in a failure (#13994) @galipremsagar
- Add tab as literal to cudf::test::to_string output (#13993) @davidwendt
- Enable `codes` dtype parity in pandas-compatibility mode for `factorize` API (#13982) @galipremsagar
- Fix `CategoricalIndex` ordering in `Groupby.agg` when pandas-compatibility mode is enabled (#13978) @galipremsagar
- Produce a fatal error if cudf is unable to find pyarrow include directory (#13976) @cwharris
- Use `thread_index_type` in `partitioning.cu` (#13973) @divyegala
- Use `cudf::thread_index_type` in `merge.cu` (#13972) @divyegala
- Use `copy-pr-bot` (#13970) @ajschmidt8
- Use cudf::thread_index_type in strings custom kernels (#13968) @davidwendt
- Add `bytes_per_second` to hash_partition benchmark (#13965) @Blonck
- Added pinned pool reservation API for java (#13964) @revans2
- Simplify wheel build scripts and allow alphas of RAPIDS dependencies (#13963) @vyasr
- Add `bytes_per_second` to copy_if_else benchmark (#13960) @Blonck
- Add pandas compatible output to `Series.unique` (#13959) @galipremsagar
- Add `bytes_per_second` to compiled binaryop benchmark (#13938) @Blonck
- Unpin `dask` and `distributed` for `23.10` development (#13935) @galipremsagar
- Make HostColumnVector.getRefCount public (#13934) @abellina
- Use cuco::static_set in JSON tree algorithm (#13928) @karthikeyann
- Add java API to get size of host memory needed to copy column view (#13919) @revans2
- Use cudf::size_type instead of int32 where appropriate in nvtext functions (#13915) @davidwendt
- Enable hugepage for arrow host allocations (#13914) @madsbk
- Improve performance of nvtext::edit_distance (#13912) @davidwendt
- Ensure cudf internals use pylibcudf in pure Python mode (#13909) @vyasr
- Use `empty()` instead of `size()` where possible (#13908) @vuule
- [JNI] Adds HostColumnVector.EventHandler for spillability checks (#13898) @abellina
- Return `Timestamp` &amp; `Timedelta` for fetching scalars in `DatetimeIndex` &amp; `TimedeltaIndex` (#13896) @galipremsagar
- Allow explicit `shuffle=&quot;p2p&quot;` within dask-cudf API (#13893) @rjzamora
- Disable creation of `DatetimeIndex` when `freq` is passed to `cudf.date_range` (#13890) @galipremsagar
- Bring parity with pandas for `datetime` &amp; `timedelta` comparison operations (#13877) @galipremsagar
- Change `NA` to `NaT` for `datetime` and `timedelta` types (#13868) @galipremsagar
- Raise error when `astype(object)` is called in pandas compatibility mode (#13862) @galipremsagar
- Fixes a performance regression in FST (#13850) @elstehle
- Set native handles to null on close in Java wrapper classes (#13818) @jlowe
- Avoid use of CUDF_EXPECTS in libcudf unit tests outside of helper functions with return values (#13812) @vuule
- Update `lists::contains` to experimental row comparator (#13810) @divyegala
- Reduce `lists::contains` dispatches for scalars (#13805) @divyegala
- Long string optimization for string column parsing in JSON reader (#13803) @karthikeyann
- Raise NotImplementedError for pd.SparseDtype (#13798) @mroeschke
- Remove the libcudf cudf::offset_type type (#13788) @davidwendt
- Move Spark-indpendent Table debug to cudf Java (#13783) @gerashegalov
- Update to Cython 3.0.0 (#13777) @vyasr
- Refactor Parquet reader handling of V2 page header info (#13775) @etseidl
- Branch 23.10 merge 23.08 (#13773) @vyasr
- Restructure JSON code to correctly reflect legacy/experimental status (#13757) @vuule
- Branch 23.10 merge 23.08 (#13753) @vyasr
- Enforce deprecations in `23.10` (#13732) @galipremsagar
- Upgrade to arrow 12 (#13728) @galipremsagar
- Refactors JSON reader&#39;s pushdown automaton (#13716) @elstehle
- Remove Arrow dependency from the `datasource.hpp` public header (#13698) @vuule
v23.10.00: tag_name: v23.10.00
body: ## 🚨 Breaking Changes

- Expose stream parameter in public nvtext ngram APIs (#14061) @davidwendt
- Raise `MixedTypeError` when a column of mixed-dtype is being constructed (#14050) @galipremsagar
- Raise `NotImplementedError` for `MultiIndex.to_series` (#14049) @galipremsagar
- Create table_input_metadata from a table_metadata (#13920) @etseidl
- Enable RLE boolean encoding for v2 Parquet files (#13886) @etseidl
- Change `NA` to `NaT` for `datetime` and `timedelta` types (#13868) @galipremsagar
- Fix `any`, `all` reduction behavior for `axis=None` and warn for other reductions (#13831) @galipremsagar
- Add minhash support for MurmurHash3_x64_128 (#13796) @davidwendt
- Remove the libcudf cudf::offset_type type (#13788) @davidwendt
- Raise error when trying to join `datetime` and `timedelta` types with other types (#13786) @galipremsagar
- Update to Cython 3.0.0 (#13777) @vyasr
- Raise error on constructing an array from mixed type inputs (#13768) @galipremsagar
- Enforce deprecations in `23.10` (#13732) @galipremsagar
- Upgrade to arrow 12 (#13728) @galipremsagar
- Remove Arrow dependency from the `datasource.hpp` public header (#13698) @vuule

## 🐛 Bug Fixes

- Fix inaccurate ceil/floor and inaccurate rescaling casts of fixed-point values. (#14242) @bdice
- Fix inaccuracy in decimal128 rounding. (#14233) @bdice
- Workaround for illegal instruction error in sm90 for warp instrinsics with mask (#14201) @karthikeyann
- Fix pytorch related pytest (#14198) @galipremsagar
- Pin to `aws-sdk-cpp&lt;1.11` (#14173) @pentschev
- Fix assert failure for range window functions (#14168) @mythrocks
- Fix Memcheck error found in JSON_TEST JsonReaderTest.ErrorStrings (#14164) @karthikeyann
- Fix calls to copy_bitmask to pass stream parameter (#14158) @davidwendt
- Fix DataFrame from Series with different CategoricalIndexes (#14157) @mroeschke
- Pin to numpy&lt;1.25 and numba&lt;0.58 to avoid errors and deprecation warnings-as-errors. (#14156) @bdice
- Fix kernel launch error for cudf::io::orc::gpu::rowgroup_char_counts_kernel (#14139) @davidwendt
- Don&#39;t sort columns for DataFrame init from list of Series (#14136) @mroeschke
- Fix DataFrame.values with no columns but index (#14134) @mroeschke
- Avoid circular cimports in _lib/cpp/reduce.pxd (#14125) @vyasr
- Add support for nested dict in `DataFrame` constructor (#14119) @galipremsagar
- Restrict iterables of `DataFrame`&#39;s as input to `DataFrame` constructor (#14118) @galipremsagar
- Allow `numeric_only=True` for reduction operations on numeric types (#14111) @galipremsagar
- Preserve name of the column while initializing a `DataFrame` (#14110) @galipremsagar
- Correct numerous 20054-D: dynamic initialization errors found on arm+12.2 (#14108) @robertmaynard
- Drop `kwargs` from `Series.count` (#14106) @galipremsagar
- Fix naming issues with `Index.to_frame` and `MultiIndex.to_frame` APIs (#14105) @galipremsagar
- Only use memory resources that haven&#39;t been freed (#14103) @robertmaynard
- Add support for `__round__` in `Series` and `DataFrame` (#14099) @galipremsagar
- Validate ignore_index type in drop_duplicates (#14098) @mroeschke
- Fix renaming `Series` and `Index` (#14080) @galipremsagar
- Raise NotImplementedError in to_datetime if Z (or tz component) in string (#14074) @mroeschke
- Raise NotImplementedError for datetime strings with UTC offset (#14070) @mroeschke
- Update pyarrow-related dispatch logic in dask_cudf (#14069) @rjzamora
- Use `conda mambabuild` rather than `mamba mambabuild` (#14067) @wence-
- Raise NotImplementedError in to_datetime with dayfirst without infer_format (#14058) @mroeschke
- Fix various issues in `Index.intersection` (#14054) @galipremsagar
- Fix `Index.difference` to match with pandas (#14053) @galipremsagar
- Fix empty string column construction (#14052) @galipremsagar
- Fix `IntervalIndex.union` to preserve type-metadata (#14051) @galipremsagar
- Raise `MixedTypeError` when a column of mixed-dtype is being constructed (#14050) @galipremsagar
- Raise `NotImplementedError` for `MultiIndex.to_series` (#14049) @galipremsagar
- Ignore compile_commands.json (#14048) @harrism
- Raise TypeError for any non-parseable argument in to_datetime (#14044) @mroeschke
- Raise NotImplementedError for to_datetime with z format (#14037) @mroeschke
- Implement `sort_remaining` for `sort_index` (#14033) @wence-
- Raise NotImplementedError for Categoricals with timezones (#14032) @mroeschke
- Temporary fix Parquet metadata with empty value string being ignored from writing (#14026) @ttnghia
- Preserve types of scalar being returned when possible in `quantile` (#14014) @galipremsagar
- Fix return type of `MultiIndex.difference` (#14009) @galipremsagar
- Raise an error when timezone subtypes are encountered in `pd.IntervalDtype` (#14006) @galipremsagar
- Fix map column can not be non-nullable for java (#14003) @res-life
- Fix `name` selection in `Index.difference` and `Index.intersection` (#13986) @galipremsagar
- Restore column type metadata with `dropna` to fix `factorize` API (#13980) @galipremsagar
- Use thread_index_type to avoid out of bounds accesses in conditional joins (#13971) @vyasr
- Fix `MultiIndex.to_numpy` to return numpy array with tuples (#13966) @galipremsagar
- Use cudf::thread_index_type in get_json_object and tdigest kernels (#13962) @nvdbaranec
- Fix an issue with `IntervalIndex.repr` when null values are present (#13958) @galipremsagar
- Fix type metadata issue preservation with `Column.unique` (#13957) @galipremsagar
- Handle `Interval` scalars when passed in list-like inputs to `cudf.Index` (#13956) @galipremsagar
- Fix setting of categories order when `dtype` is passed to a `CategoricalColumn` (#13955) @galipremsagar
- Handle `as_index` in `GroupBy.apply` (#13951) @brandon-b-miller
- Raise error for string types in `nsmallest` and `nlargest` (#13946) @galipremsagar
- Fix `index` of `Groupby.apply` results when it is performed on empty objects (#13944) @galipremsagar
- Fix integer overflow in shim `device_sum` functions (#13943) @brandon-b-miller
- Fix type mismatch in groupby reduction for empty objects (#13942) @galipremsagar
- Fixed processed bytes calculation in APPLY_BOOLEAN_MASK benchmark. (#13937) @Blonck
- Fix construction of `Grouping` objects (#13932) @galipremsagar
- Fix an issue with `loc` when column names is `MultiIndex` (#13929) @galipremsagar
- Fix handling of typecasting in `searchsorted` (#13925) @galipremsagar
- Preserve index `name` in `reindex` (#13917) @galipremsagar
- Use `cudf::thread_index_type` in cuIO to prevent overflow in row indexing (#13910) @vuule
- Fix for encodings listed in the Parquet column chunk metadata (#13907) @etseidl
- Use cudf::thread_index_type in concatenate.cu. (#13906) @bdice
- Use cudf::thread_index_type in replace.cu. (#13905) @bdice
- Add noSanitizer tag to Java reduction tests failing with sanitizer in CUDA 12 (#13904) @jlowe
- Remove the internal use of the cudf&#39;s default stream in cuIO (#13903) @vuule
- Use cuda-nvtx-dev CUDA 12 package. (#13901) @bdice
- Use `thread_index_type` to avoid index overflow in grid-stride loops (#13895) @PointKernel
- Fix memory access error in cudf::shift for sliced strings (#13894) @davidwendt
- Raise error when trying to construct a `DataFrame` with mixed types (#13889) @galipremsagar
- Return `nan` when one variable to be correlated has zero variance in JIT GroupBy Apply (#13884) @brandon-b-miller
- Correctly detect the BOM mark in `read_csv` with compressed input (#13881) @vuule
- Check for the presence of all values in `MultiIndex.isin` (#13879) @galipremsagar
- Fix nvtext::generate_character_ngrams performance regression for longer strings (#13874) @davidwendt
- Fix return type of `MultiIndex.levels` (#13870) @galipremsagar
- Fix List&#39;s missing children metadata in JSON writer (#13869) @karthikeyann
- Disable construction of Index when `freq` is set in pandas-compatibility mode (#13857) @galipremsagar
- Fix an issue with fetching `NA` from a `TimedeltaColumn` (#13853) @galipremsagar
- Simplify implementation of interval_range() and fix behaviour for floating `freq` (#13844) @shwina
- Fix binary operations between `Series` and `Index` (#13842) @galipremsagar
- Update make_lists_column_from_scalar to use make_offsets_child_column utility (#13841) @davidwendt
- Fix read out of bounds in string concatenate (#13838) @pentschev
- Raise error for more cases when `timezone-aware` data is passed to `as_column` (#13835) @galipremsagar
- Fix `any`, `all` reduction behavior for `axis=None` and warn for other reductions (#13831) @galipremsagar
- Raise error when trying to construct time-zone aware timestamps (#13830) @galipremsagar
- Fix cuFile I/O factories (#13829) @vuule
- DataFrame with namedtuples uses ._field as column names (#13824) @mroeschke
- Branch 23.10 merge 23.08 (#13822) @vyasr
- Return a Series from JIT GroupBy apply, rather than a DataFrame (#13820) @brandon-b-miller
- No need to dlsym EnsureS3Finalized we can call it directly (#13819) @robertmaynard
- Raise error when mixed types are being constructed (#13816) @galipremsagar
- Fix unbounded sequence issue in `DataFrame` constructor (#13811) @galipremsagar
- Fix Byte-Pair-Encoding usage of cuco static-map for storing merge-pairs (#13807) @davidwendt
- Fix for Parquet writer when requested pages per row is smaller than fragment size (#13806) @etseidl
- Remove hangs from trying to construct un-bounded sequences (#13799) @galipremsagar
- Bug/update libcudf to handle arrow12 changes (#13794) @robertmaynard
- Update get_arrow to arrows 12 CMake target name of arrow::xsimd (#13790) @robertmaynard
- Raise error when trying to join `datetime` and `timedelta` types with other types (#13786) @galipremsagar
- Fix negative unary operation for boolean type (#13780) @galipremsagar
- Fix contains(`in`) method for `Series` (#13779) @galipremsagar
- Fix binary operation column ordering and missing column issues (#13778) @galipremsagar
- Cast only time of day to nanos to avoid an overflow in Parquet INT96 write (#13776) @gerashegalov
- Preserve names of column object in various APIs (#13772) @galipremsagar
- Raise error on constructing an array from mixed type inputs (#13768) @galipremsagar
- Fix construction of DataFrames from dict when columns are provided (#13766) @wence-
- Provide our own Cython declaration for make_unique (#13746) @wence-

## 📖 Documentation

- Fix typo in docstring: metadata. (#14025) @bdice
- Fix typo in parquet/page_decode.cuh (#13849) @XinyuZeng
- Simplify Python doc configuration (#13826) @vyasr
- Update documentation to reflect recent changes in JSON reader and writer (#13791) @vuule
- Fix all warnings in Python docs (#13789) @vyasr

## 🚀 New Features

- [Java] Add JNI bindings for `integers_to_hex` (#14205) @razajafri
- Propagate errors from Parquet reader kernels back to host (#14167) @vuule
- JNI for `HISTOGRAM` and `MERGE_HISTOGRAM` aggregations (#14154) @ttnghia
- Expose streams in all public sorting APIs (#14146) @vyasr
- Enable direct ingestion and production of Arrow scalars (#14121) @vyasr
- Implement `GroupBy.value_counts` to match pandas API (#14114) @stmio
- Refactor parquet thrift reader (#14097) @etseidl
- Refactor `hash_reduce_by_row` (#14095) @ttnghia
- Support negative preceding/following for ROW window functions (#14093) @mythrocks
- Support for progressive parquet chunked reading. (#14079) @nvdbaranec
- Implement `HISTOGRAM` and `MERGE_HISTOGRAM` aggregations (#14045) @ttnghia
- Expose streams in public search APIs (#14034) @vyasr
- Expose streams in public replace APIs (#14010) @vyasr
- Add stream parameter to public cudf::strings::split APIs (#13997) @davidwendt
- Expose streams in public filling APIs (#13990) @vyasr
- Expose streams in public concatenate APIs (#13987) @vyasr
- Use HostMemoryAllocator in jni::allocate_host_buffer (#13975) @gerashegalov
- Enable fractional null probability for hashing benchmark (#13967) @Blonck
- Switch pylibcudf-enabled types to use enum class in Cython (#13931) @vyasr
- Add nvtext::tokenize_with_vocabulary API (#13930) @davidwendt
- Rewrite `DataFrame.stack` to support multi level column names (#13927) @isVoid
- Add HostMemoryAllocator interface (#13924) @gerashegalov
- Global stream pool (#13922) @etseidl
- Create table_input_metadata from a table_metadata (#13920) @etseidl
- Translate column size overflow exception to JNI (#13911) @mythrocks
- Enable RLE boolean encoding for v2 Parquet files (#13886) @etseidl
- Exclude some tests from running with the compute sanitizer (#13872) @firestarman
- Expand statistics support in ORC writer (#13848) @vuule
- Register the memory mapped buffer in `datasource` to improve H2D throughput (#13814) @vuule
- Add cudf::strings::find function with target per row (#13808) @davidwendt
- Add minhash support for MurmurHash3_x64_128 (#13796) @davidwendt
- Remove unnecessary pointer copying in JIT GroupBy Apply (#13792) @brandon-b-miller
- Add &#39;poll&#39; function to custreamz kafka consumer (#13782) @jdye64
- Support `corr` in `GroupBy.apply` through the jit engine (#13767) @shwina
- Optionally write version 2 page headers in Parquet writer (#13751) @etseidl
- Support more numeric types in `Groupby.apply` with `engine=&#39;jit&#39;` (#13729) @brandon-b-miller
- [FEA] Add DELTA_BINARY_PACKED decoding support to Parquet reader (#13637) @etseidl
- Read FIXED_LEN_BYTE_ARRAY as binary in parquet reader (#13437) @PointKernel

## 🛠️ Improvements

- Pin `dask` and `distributed` for `23.10` release (#14225) @galipremsagar
- update rmm tag path (#14195) @AyodeAwe
- Disable `Recently Updated` Check (#14193) @ajschmidt8
- Move cpp/src/hash/hash_allocator.cuh to include/cudf/hashing/detail (#14163) @davidwendt
- Add Parquet reader benchmarks for row selection (#14147) @vuule
- Update image names (#14145) @AyodeAwe
- Support callables in DataFrame.assign (#14142) @wence-
- Reduce memory usage of as_categorical_column (#14138) @wence-
- Replace Python scalar conversions with libcudf (#14124) @vyasr
- Update to clang 16.0.6. (#14120) @bdice
- Fix type of empty `Index` and raise warning in `Series` constructor (#14116) @galipremsagar
- Add stream parameter to external dict APIs (#14115) @SurajAralihalli
- Add fallback matrix for nvcomp. (#14082) @bdice
- [Java] Add recoverWithNull to JSONOptions and pass to Table.readJSON (#14078) @andygrove
- Remove header tests (#14072) @ajschmidt8
- Refactor `contains_table` with cuco::static_set (#14064) @PointKernel
- Remove debug print in a Parquet test (#14063) @vuule
- Expose stream parameter in public nvtext ngram APIs (#14061) @davidwendt
- Expose stream parameter in public strings find APIs (#14060) @davidwendt
- Update doxygen to 1.9.1 (#14059) @vyasr
- Remove the mr from the base fixture (#14057) @vyasr
- Expose streams in public strings case APIs (#14056) @davidwendt
- Refactor libcudf indexalator to typed normalator (#14043) @davidwendt
- Use cudf::make_empty_column instead of column_view constructor (#14030) @davidwendt
- Remove quadratic runtime due to accessing Frame._dtypes in loop (#14028) @wence-
- Explicitly depend on zlib in conda recipes (#14018) @wence-
- Use grid_stride for stride computations. (#13996) @bdice
- Fix an issue where casting null-array to `object` dtype will result in a failure (#13994) @galipremsagar
- Add tab as literal to cudf::test::to_string output (#13993) @davidwendt
- Enable `codes` dtype parity in pandas-compatibility mode for `factorize` API (#13982) @galipremsagar
- Fix `CategoricalIndex` ordering in `Groupby.agg` when pandas-compatibility mode is enabled (#13978) @galipremsagar
- Produce a fatal error if cudf is unable to find pyarrow include directory (#13976) @cwharris
- Use `thread_index_type` in `partitioning.cu` (#13973) @divyegala
- Use `cudf::thread_index_type` in `merge.cu` (#13972) @divyegala
- Use `copy-pr-bot` (#13970) @ajschmidt8
- Use cudf::thread_index_type in strings custom kernels (#13968) @davidwendt
- Add `bytes_per_second` to hash_partition benchmark (#13965) @Blonck
- Added pinned pool reservation API for java (#13964) @revans2
- Simplify wheel build scripts and allow alphas of RAPIDS dependencies (#13963) @vyasr
- Add `bytes_per_second` to copy_if_else benchmark (#13960) @Blonck
- Add pandas compatible output to `Series.unique` (#13959) @galipremsagar
- Add `bytes_per_second` to compiled binaryop benchmark (#13938) @Blonck
- Unpin `dask` and `distributed` for `23.10` development (#13935) @galipremsagar
- Make HostColumnVector.getRefCount public (#13934) @abellina
- Use cuco::static_set in JSON tree algorithm (#13928) @karthikeyann
- Add java API to get size of host memory needed to copy column view (#13919) @revans2
- Use cudf::size_type instead of int32 where appropriate in nvtext functions (#13915) @davidwendt
- Enable hugepage for arrow host allocations (#13914) @madsbk
- Improve performance of nvtext::edit_distance (#13912) @davidwendt
- Ensure cudf internals use pylibcudf in pure Python mode (#13909) @vyasr
- Use `empty()` instead of `size()` where possible (#13908) @vuule
- [JNI] Adds HostColumnVector.EventHandler for spillability checks (#13898) @abellina
- Return `Timestamp` &amp; `Timedelta` for fetching scalars in `DatetimeIndex` &amp; `TimedeltaIndex` (#13896) @galipremsagar
- Allow explicit `shuffle=&quot;p2p&quot;` within dask-cudf API (#13893) @rjzamora
- Disable creation of `DatetimeIndex` when `freq` is passed to `cudf.date_range` (#13890) @galipremsagar
- Bring parity with pandas for `datetime` &amp; `timedelta` comparison operations (#13877) @galipremsagar
- Change `NA` to `NaT` for `datetime` and `timedelta` types (#13868) @galipremsagar
- Raise error when `astype(object)` is called in pandas compatibility mode (#13862) @galipremsagar
- Fixes a performance regression in FST (#13850) @elstehle
- Set native handles to null on close in Java wrapper classes (#13818) @jlowe
- Avoid use of CUDF_EXPECTS in libcudf unit tests outside of helper functions with return values (#13812) @vuule
- Update `lists::contains` to experimental row comparator (#13810) @divyegala
- Reduce `lists::contains` dispatches for scalars (#13805) @divyegala
- Long string optimization for string column parsing in JSON reader (#13803) @karthikeyann
- Raise NotImplementedError for pd.SparseDtype (#13798) @mroeschke
- Remove the libcudf cudf::offset_type type (#13788) @davidwendt
- Move Spark-indpendent Table debug to cudf Java (#13783) @gerashegalov
- Update to Cython 3.0.0 (#13777) @vyasr
- Refactor Parquet reader handling of V2 page header info (#13775) @etseidl
- Branch 23.10 merge 23.08 (#13773) @vyasr
- Restructure JSON code to correctly reflect legacy/experimental status (#13757) @vuule
- Branch 23.10 merge 23.08 (#13753) @vyasr
- Enforce deprecations in `23.10` (#13732) @galipremsagar
- Upgrade to arrow 12 (#13728) @galipremsagar
- Refactors JSON reader&#39;s pushdown automaton (#13716) @elstehle
- Remove Arrow dependency from the `datasource.hpp` public header (#13698) @vuule
v23.08.00: tag_name: v23.08.00
body: ## 🚨 Breaking Changes

- Enforce deprecations and add clarifications around existing deprecations (#13710) @galipremsagar
- Separate MurmurHash32 from hash_functions.cuh (#13681) @davidwendt
- Avoid storing metadata in pointers in ORC and Parquet writers (#13648) @vuule
- Expose streams in all public copying APIs (#13629) @vyasr
- Remove deprecated cudf::strings::slice_strings (by delimiter) functions (#13628) @davidwendt
- Remove deprecated cudf.set_allocator. (#13591) @bdice
- Change build.sh to use pip install instead of setup.py (#13507) @vyasr
- Remove unused max_rows_tensor parameter from subword tokenizer (#13463) @davidwendt
- Fix decimal scale reductions in `_get_decimal_type` (#13224) @charlesbluca

## 🐛 Bug Fixes

- Add CUDA version to cudf_kafka and libcudf-example build strings. (#13769) @bdice
- Fix typo in wheels-test.yaml. (#13763) @bdice
- Don&#39;t test strings shorter than the requested ngram size (#13758) @vyasr
- Add CUDA version to custreamz build string. (#13754) @bdice
- Fix writing of ORC files with empty child string columns (#13745) @vuule
- Remove the erroneous &quot;empty level&quot; short-circuit from ORC reader (#13722) @vuule
- Fix character counting when writing sliced tables into ORC (#13721) @vuule
- Parquet uses row group row count if missing from header (#13712) @hyperbolic2346
- Fix reading of RLE encoded boolean data from parquet files with V2 page headers (#13707) @etseidl
- Fix a corner case of list lexicographic comparator (#13701) @ttnghia
- Fix combined filtering and column projection in `dask_cudf.read_parquet` (#13697) @rjzamora
- Revert fetch-rapids changes (#13696) @vyasr
- Data generator - include offsets in the size estimate of list elments (#13688) @vuule
- Add `cuda-nvcc-impl` to `cudf` for `numba` CUDA 12 (#13673) @jakirkham
- Fix combined filtering and column projection in `read_parquet` (#13666) @rjzamora
- Use `thrust::identity` as hash functions for byte pair encoding (#13665) @PointKernel
- Fix loc-getitem ordering when index contains duplicate labels (#13659) @wence-
- [REVIEW] Introduce parity with pandas for `MultiIndex.loc` ordering &amp; fix a bug in `Groupby` with `as_index` (#13657) @galipremsagar
- Fix memcheck error found in nvtext tokenize functions (#13649) @davidwendt
- Fix `has_nonempty_nulls` ignoring column offset (#13647) @ttnghia
- [Java] Avoid double-free corruption in case of an Exception while creating a ColumnView (#13645) @razajafri
- Fix memcheck error in ORC reader call to cudf::io::copy_uncompressed_kernel (#13643) @davidwendt
- Fix CUDA 12 conda environment to remove cubinlinker and ptxcompiler. (#13636) @bdice
- Fix inf/NaN comparisons for FLOAT orderby in window functions (#13635) @mythrocks
- Refactor `Index` search to simplify code and increase correctness (#13625) @wence-
- Fix compile warning for unused variable in split_re.cu (#13621) @davidwendt
- Fix tz_localize for dask_cudf Series (#13610) @shwina
- Fix issue with no decompressed data in ORC reader (#13609) @vuule
- Fix floating point window range extents. (#13606) @mythrocks
- Fix `localize(None)` for timezone-naive columns (#13603) @shwina
- Fixed a memory leak caused by Exception thrown while constructing a ColumnView (#13597) @razajafri
- Handle nullptr return value from bitmask_or in distinct_count (#13590) @wence-
- Bring parity with pandas in Index.join (#13589) @galipremsagar
- Fix cudf.melt when there are more than 255 columns (#13588) @hcho3
- Fix memory issues in cuIO due to removal of memory padding (#13586) @ttnghia
- Fix Parquet multi-file reading (#13584) @etseidl
- Fix memcheck error found in LISTS_TEST (#13579) @davidwendt
- Fix memcheck error found in STRINGS_TEST (#13578) @davidwendt
- Fix memcheck error found in INTEROP_TEST (#13577) @davidwendt
- Fix memcheck errors found in REDUCTION_TEST (#13574) @davidwendt
- Preemptive fix for hive-partitioning change in dask (#13564) @rjzamora
- Fix an issue with `dask_cudf.read_csv` when lines are needed to be skipped (#13555) @galipremsagar
- Fix out-of-bounds memory write in cudf::dictionary::detail::concatenate (#13554) @davidwendt
- Fix the null mask size in json reader (#13537) @karthikeyann
- Fix cudf::strings::strip for all-empty input column (#13533) @davidwendt
- Make sure to build without isolation or installing dependencies (#13524) @vyasr
- Remove preload lib from CMake for now (#13519) @vyasr
- Fix missing separator after null values in JSON writer (#13503) @karthikeyann
- Ensure `single_lane_block_sum_reduce` is safe to call in a loop (#13488) @wence-
- Update all versions in pyproject.toml files. (#13486) @bdice
- Remove applying nvbench that doesn&#39;t exist in 23.08 (#13484) @robertmaynard
- Fix chunked Parquet reader benchmark (#13482) @vuule
- Update JNI JSON reader column compatability for Spark (#13477) @revans2
- Fix unsanitized output of scan with strings (#13455) @davidwendt
- Reject functions without bytecode from `_can_be_jitted` in GroupBy Apply (#13429) @brandon-b-miller
- Fix decimal scale reductions in `_get_decimal_type` (#13224) @charlesbluca

## 📖 Documentation

- Fix doxygen groups for io data sources and sinks (#13718) @davidwendt
- Add pandas compatibility note to DataFrame.query docstring (#13693) @beckernick
- Add pylibcudf to developer guide (#13639) @vyasr
- Fix repeated words in doxygen text (#13598) @karthikeyann
- Update docs for top-level API. (#13592) @bdice
- Fix the the doxygen text for cudf::concatenate and other places (#13561) @davidwendt
- Document stream validation approach used in testing (#13556) @vyasr
- Cleanup doc repetitions in libcudf (#13470) @karthikeyann

## 🚀 New Features

- Support `min` and `max` aggregations for list type in groupby and reduction (#13676) @ttnghia
- Add nvtext::jaccard_index API for strings columns (#13669) @davidwendt
- Add read_parquet_metadata libcudf API (#13663) @karthikeyann
- Expose streams in all public copying APIs (#13629) @vyasr
- Add XXHash_64 hash function to cudf (#13612) @davidwendt
- Java support: Floating point order-by columns for RANGE window functions (#13595) @mythrocks
- Use `cuco::static_map` to build string dictionaries in ORC writer (#13580) @vuule
- Add pylibcudf subpackage with gather implementation (#13562) @vyasr
- Add JNI for `lists::concatenate_list_elements` (#13547) @ttnghia
- Enable nested types for `lists::concatenate_list_elements` (#13545) @ttnghia
- Add unicode encoding for string columns in JSON writer (#13539) @karthikeyann
- Remove numba kernels from `find_index_of_val` (#13517) @brandon-b-miller
- Floating point order-by columns for RANGE window functions (#13512) @mythrocks
- Parse column chunk metadata statistics in parquet reader (#13472) @karthikeyann
- Add `abs` function to apply (#13408) @brandon-b-miller
- [FEA] AST filtering in parquet reader (#13348) @karthikeyann
- [FEA] Adds option to recover from invalid JSON lines in JSON tokenizer (#13344) @elstehle
- Ensure cccl packages don&#39;t clash with upstream version (#13235) @robertmaynard
- Update `struct_minmax_util` to experimental row comparator (#13069) @divyegala
- Add stream parameter to hashing APIs (#12090) @vyasr

## 🛠️ Improvements

- Pin `dask` and `distributed` for `23.08` release (#13802) @galipremsagar
- Relax protobuf pinnings. (#13770) @bdice
- Switch fully unbounded window functions to use aggregations (#13727) @mythrocks
- Switch to new wheel building pipeline (#13723) @vyasr
- Revert CUDA 12.0 CI workflows to branch-23.08. (#13719) @bdice
- Adding identify minimum version requirement (#13713) @hyperbolic2346
- Enforce deprecations and add clarifications around existing deprecations (#13710) @galipremsagar
- Optimize ORC reader performance for list data (#13708) @vyasr
- fix limit overflow message in a docstring (#13703) @ahmet-uyar
- Alleviates JSON parser&#39;s need for multi-file sources to end with a newline (#13702) @elstehle
- Update cython-lint and replace flake8 with ruff (#13699) @vyasr
- Add `__dask_tokenize__` definitions to cudf classes (#13695) @rjzamora
- Convert libcudf hashing benchmarks to nvbench (#13694) @davidwendt
- Separate MurmurHash32 from hash_functions.cuh (#13681) @davidwendt
- Improve performance of cudf::strings::split on whitespace (#13680) @davidwendt
- Allow ORC and Parquet writers to write nullable columns without nulls as non-nullable (#13675) @vuule
- Raise a NotImplementedError in to_datetime when utc is passed (#13670) @shwina
- Add rmm_mode parameter to nvbench base fixture (#13668) @davidwendt
- Fix multiindex loc ordering in pandas-compat mode (#13660) @wence-
- Add nvtext hash_character_ngrams function (#13654) @davidwendt
- Avoid storing metadata in pointers in ORC and Parquet writers (#13648) @vuule
- Acquire spill lock in to/from_arrow (#13646) @shwina
- Expose stable versions of libcudf sort routines (#13634) @wence-
- Separate out hash_test.cpp source for each hash API (#13633) @davidwendt
- Remove deprecated cudf::strings::slice_strings (by delimiter) functions (#13628) @davidwendt
- Create separate libcudf hash APIs for each supported hash function (#13626) @davidwendt
- Add convert_dtypes API (#13623) @shwina
- Clean up cupy in dependencies.yaml. (#13617) @bdice
- Use cuda-version to constrain cudatoolkit. (#13615) @bdice
- Add murmurhash3_x64_128 function to libcudf (#13604) @davidwendt
- Performance improvement for cudf::strings::like (#13594) @davidwendt
- Remove deprecated cudf.set_allocator. (#13591) @bdice
- Clean up cudf device atomic with `cuda::atomic_ref` (#13583) @PointKernel
- Add java bindings for distinct count (#13573) @revans2
- Use nvcomp conda package. (#13566) @bdice
- Add exception to string_scalar if input string exceeds size_type (#13560) @davidwendt
- Add dispatch for `cudf.Dataframe` to/from `pyarrow.Table` conversion (#13558) @rjzamora
- Get rid of `cuco::pair_type` aliases (#13553) @PointKernel
- Introduce parity with pandas when `sort=False` in `Groupby` (#13551) @galipremsagar
- Update CMake in docker to 3.26.4 (#13550) @NvTimLiu
- Clarify source of error message in stream testing. (#13541) @bdice
- Deprecate `strings_to_categorical` in `cudf.read_parquet` (#13540) @galipremsagar
- Update to CMake 3.26.4 (#13538) @vyasr
- s3 folder naming fix (#13536) @AyodeAwe
- Implement iloc-getitem using parse-don&#39;t-validate approach (#13534) @wence-
- Make synchronization explicit in the names of `hostdevice_*` copying APIs (#13530) @ttnghia
- Add benchmark (Google Benchmark) dependency to conda packages. (#13528) @bdice
- Add libcufile to dependencies.yaml. (#13523) @bdice
- Fix some memoization logic in groupby/sort/sort_helper.cu (#13521) @davidwendt
- Use sizes_to_offsets_iterator in cudf::gather for strings (#13520) @davidwendt
- use rapids-upload-docs script (#13518) @AyodeAwe
- Support UTF-8 BOM in CSV reader (#13516) @davidwendt
- Move stream-related test configuration to CMake (#13513) @vyasr
- Implement `cudf.option_context` (#13511) @galipremsagar
- Unpin `dask` and `distributed` for development (#13508) @galipremsagar
- Change build.sh to use pip install instead of setup.py (#13507) @vyasr
- Use test default stream (#13506) @vyasr
- Remove documentation build scripts for Jenkins (#13495) @ajschmidt8
- Use east const in include files (#13494) @karthikeyann
- Use east const in src files (#13493) @karthikeyann
- Use east const in tests files (#13492) @karthikeyann
- Use east const in benchmarks files (#13491) @karthikeyann
- Performance improvement for nvtext tokenize/token functions (#13480) @davidwendt
- Add pd.Float*Dtype to Avro and ORC mappings (#13475) @mroeschke
- Use pandas public APIs where available (#13467) @mroeschke
- Allow pd.ArrowDtype in cudf.from_pandas (#13465) @mroeschke
- Rework libcudf regex benchmarks with nvbench (#13464) @davidwendt
- Remove unused max_rows_tensor parameter from subword tokenizer (#13463) @davidwendt
- Separate io-text and nvtext pytests into different files (#13435) @davidwendt
- Add a move_to function to cudf::string_view::const_iterator (#13428) @davidwendt
- Allow newer scikit-build (#13424) @vyasr
- Refactor sort_by_values to sort_values, drop indices from return values. (#13419) @bdice
- Inline Cython exception handler (#13411) @vyasr
- Init JNI version 23.08.0-SNAPSHOT (#13401) @pxLi
- Refactor ORC reader (#13396) @ttnghia
- JNI: Remove cleaned objects in memory cleaner (#13378) @res-life
- Add tests of currently unsupported indexing (#13338) @wence-
- Performance improvement for some libcudf regex functions for long strings (#13322) @davidwendt
- Exposure Tracked Buffer (first step towards unifying copy-on-write and spilling) (#13307) @madsbk
- Write string data directly to column_buffer in Parquet reader (#13302) @etseidl
- Add stacktrace into cudf exception types (#13298) @ttnghia
- cuDF: Build CUDA 12 packages (#12922) @bdice
v23.06.01: tag_name: v23.06.01
body: ## 🚨 Breaking Changes

- Fix batch processing for parquet writer (#13438) @ttnghia
- Use &lt;NA&gt; instead of null to match pandas. (#13415) @bdice
- Remove UNKNOWN_NULL_COUNT (#13372) @vyasr
- Remove default UNKNOWN_NULL_COUNT from cudf::column member functions (#13341) @davidwendt
- Use std::overflow_error when output would exceed column size limit (#13323) @davidwendt
- Remove null mask and null count from column_view constructors (#13311) @vyasr
- Change default value of the `observed=` argument in groupby to `True` to reflect the actual behaviour (#13296) @shwina
- Throw error if UNINITIALIZED is passed to cudf::state_null_count (#13292) @davidwendt
- Remove default null-count parameter from cudf::make_strings_column factory (#13227) @davidwendt
- Remove UNKNOWN_NULL_COUNT where it can be easily computed (#13205) @vyasr
- Update minimum Python version to Python 3.9 (#13196) @shwina
- Refactor contiguous_split API into contiguous_split.hpp (#13186) @abellina
- Cleanup Parquet chunked writer (#13094) @ttnghia
- Cleanup ORC chunked writer (#13091) @ttnghia
- Raise `NotImplementedError` when attempting to construct cuDF objects from timezone-aware datetimes (#13086) @shwina
- Remove deprecated regex functions from libcudf (#13067) @davidwendt
- [REVIEW] Upgrade to `arrow-11` (#12757) @galipremsagar
- Implement Python drop_duplicates with cudf::stable_distinct. (#11656) @brandon-b-miller

## 🐛 Bug Fixes

- Fix valid count computation in offset_bitmask_binop kernel (#13489) @davidwendt
- Fix writing of ORC files with empty rowgroups (#13466) @vuule
- Fix cudf::repeat logic when count is zero (#13459) @davidwendt
- Fix batch processing for parquet writer (#13438) @ttnghia
- Fix invalid use of std::exclusive_scan in Parquet writer (#13434) @etseidl
- Patch numba if it is imported first to ensure minor version compatibility works. (#13433) @bdice
- Fix cudf::strings::replace_with_backrefs hang on empty match result (#13418) @davidwendt
- Use &lt;NA&gt; instead of null to match pandas. (#13415) @bdice
- Fix tokenize with non-space delimiter (#13403) @shwina
- Fix groupby head/tail for empty dataframe (#13398) @shwina
- Default to closed=&quot;right&quot; in `IntervalIndex` constructor (#13394) @shwina
- Correctly reorder and reindex scan groupbys with null keys (#13389) @wence-
- Fix unused argument errors in nvcc 11.5 (#13387) @abellina
- Updates needed to work with jitify that leverages libcudacxx (#13383) @robertmaynard
- Fix unused parameter warning/error in parquet/page_data.cu (#13367) @davidwendt
- Fix page size estimation in Parquet writer (#13364) @etseidl
- Fix subword_tokenize error when input contains no tokens (#13320) @davidwendt
- Support gcc 12 as the C++ compiler (#13316) @robertmaynard
- Correctly set bitmask size in `from_column_view` (#13315) @wence-
- Fix approach to detecting assignment for gte/lte operators (#13285) @vyasr
- Fix parquet schema interpretation issue (#13277) @hyperbolic2346
- Fix 64bit shift bug in avro reader (#13276) @karthikeyann
- Fix unused variables/parameters in parquet/writer_impl.cu (#13263) @davidwendt
- Clean up buffers in case AssertionError (#13262) @razajafri
- Allow empty input table in ast `compute_column` (#13245) @wence-
- Fix structs_column_wrapper constructors to copy input column wrappers (#13243) @davidwendt
- Fix the row index stream order in ORC reader (#13242) @vuule
- Make `is_decompression_disabled` and `is_compression_disabled` thread-safe (#13240) @vuule
- Add [[maybe_unused]] to nvbench environment. (#13219) @bdice
- Fix race in ORC string dictionary creation (#13214) @revans2
- Add scalar argtypes to udf cache keys (#13194) @brandon-b-miller
- Fix unused parameter warning/error in grouped_rolling.cu (#13192) @davidwendt
- Avoid skbuild 0.17.2 which affected the cmake -DPython_LIBRARY string (#13188) @sevagh
- Fix `hostdevice_vector::subspan` (#13187) @ttnghia
- Use custom nvbench entry point to ensure `cudf::nvbench_base_fixture` usage (#13183) @robertmaynard
- Fix slice_strings to return empty strings for stop &lt; start indices (#13178) @davidwendt
- Allow compilation with any GTest version 1.11+ (#13153) @robertmaynard
- Fix a few clang-format style check errors (#13146) @davidwendt
- [REVIEW] Fix `Series` and `DataFrame` constructors to validate index lengths (#13122) @galipremsagar
- Fix hash join when the input tables have nulls on only one side (#13120) @ttnghia
- Fix GPU_ARCHS setting in Java CMake build and CMAKE_CUDA_ARCHITECTURES in Python package build. (#13117) @davidwendt
- Adds checks to make sure json reader won&#39;t overflow (#13115) @elstehle
- Fix `null_count` of columns returned by `chunked_parquet_reader` (#13111) @vuule
- Fixes sliced list and struct column bug  in JSON chunked writer (#13108) @karthikeyann
- [REVIEW] Fix missing confluent kafka version (#13101) @galipremsagar
- Use make_empty_lists_column instead of make_empty_column(type_id::LIST) (#13099) @davidwendt
- Raise `NotImplementedError` when attempting to construct cuDF objects from timezone-aware datetimes (#13086) @shwina
- Fix column selection `read_parquet` benchmarks (#13082) @vuule
- Fix bugs in iterative groupby apply algorithm (#13078) @brandon-b-miller
- Add algorithm include in data_sink.hpp (#13068) @ahendriksen
- Fix tests/identify_stream_usage.cpp (#13066) @ahendriksen
- Prevent overflow with `skip_rows` in ORC and Parquet readers (#13063) @vuule
- Add except declaration in Cython interface for regex_program::create (#13054) @davidwendt
- [REVIEW] Fix branch version in CI scripts (#13029) @galipremsagar
- Fix OOB memory access in CSV reader when reading without NA values (#13011) @vuule
- Fix read_avro() skip_rows and num_rows. (#12912) @tpn
- Purge nonempty nulls from byte_cast list outputs. (#11971) @bdice
- Fix consumption of CPU-backed interchange protocol dataframes (#11392) @shwina

## 🚀 New Features

- Remove numba JIT kernel usage from dataframe copy tests (#13385) @brandon-b-miller
- Add JNI for ORC/Parquet writer compression statistics (#13376) @ttnghia
- Use _compile_or_get in JIT groupby apply (#13350) @brandon-b-miller
- cuDF numba cuda 12 updates (#13337) @brandon-b-miller
- Add tz_convert method to convert between timestamps (#13328) @shwina
- Optionally return compression statistics from ORC and Parquet writers (#13294) @vuule
- Support the case=False argument to str.contains (#13290) @shwina
- Add an event handler for ColumnVector.close (#13279) @abellina
- JNI api for cudf::chunked_pack (#13278) @abellina
- Implement a chunked_pack API (#13260) @abellina
- Update cudf recipes to use GTest version to &gt;=1.13 (#13207) @robertmaynard
- JNI changes for range-extents in window functions. (#13199) @mythrocks
- Add support for DatetimeTZDtype and tz_localize (#13163) @shwina
- Add IS_NULL operator to AST (#13145) @karthikeyann
- STRING order-by column for RANGE window functions (#13143) @mythrocks
- Update `contains_table` to experimental row hasher and equality comparator (#13119) @divyegala
- Automatically select `GroupBy.apply` algorithm based on if the UDF is jittable (#13113) @brandon-b-miller
- Refactor Parquet chunked writer (#13076) @ttnghia
- Add Python bindings for string literal support in AST (#13073) @karthikeyann
- Add Java bindings for string literal support in AST (#13072) @karthikeyann
- Add string scalar support in AST (#13061) @karthikeyann
- Log cuIO warnings using the libcudf logger (#13043) @vuule
- Update `mixed_join` to use experimental row hasher and comparator (#13028) @divyegala
- Support structs of lists in row lexicographic comparator (#13005) @ttnghia
- Adding `hostdevice_span` that is a span createable from `hostdevice_vector` (#12981) @hyperbolic2346
- Add nvtext::minhash function (#12961) @davidwendt
- Support lists of structs in row lexicographic comparator (#12953) @ttnghia
- Update `join` to use experimental row hasher and comparator (#12787) @divyegala
- Implement Python drop_duplicates with cudf::stable_distinct. (#11656) @brandon-b-miller

## 🛠️ Improvements

- Bump typing_extensions minimum version to 4.0.0 (#13618) @shwina
- Drop extraneous dependencies from cudf conda recipe. (#13406) @bdice
- Handle some corner-cases in indexing with boolean masks (#13402) @wence-
- Add cudf::stable_distinct public API, tests, and benchmarks. (#13392) @bdice
- [JNI] Pass this ColumnVector to the onClosed event handler (#13386) @abellina
- Fix JNI method with mismatched parameter list (#13384) @ttnghia
- Split up experimental_row_operator_tests.cu to improve its compile time (#13382) @davidwendt
- Deprecate cudf::strings::slice_strings APIs that accept delimiters (#13373) @davidwendt
- Remove UNKNOWN_NULL_COUNT (#13372) @vyasr
- Move some nvtext benchmarks to nvbench (#13368) @davidwendt
- run docs nightly too (#13366) @AyodeAwe
- Add warning for default `dtype` parameter in `get_dummies` (#13365) @galipremsagar
- Add log messages about kvikIO compatibility mode (#13363) @vuule
- Switch back to using primary shared-action-workflows branch (#13362) @vyasr
- Deprecate `StringIndex` and use `Index` instead (#13361) @galipremsagar
- Ensure columns have valid null counts in CUDF JNI. (#13355) @mythrocks
- Expunge most uses of `TypeVar(bound=&quot;Foo&quot;)` (#13346) @wence-
- Remove all references to UNKNOWN_NULL_COUNT in Python (#13345) @vyasr
- Improve `distinct_count` with `cuco::static_set` (#13343) @PointKernel
- Fix  `contiguous_split` performance (#13342) @ttnghia
- Remove default UNKNOWN_NULL_COUNT from cudf::column member functions (#13341) @davidwendt
- Update mypy to 1.3 (#13340) @wence-
- [Java] Purge non-empty nulls when setting validity (#13335) @razajafri
- Add row-wise filtering step to `read_parquet` (#13334) @rjzamora
- Performance improvement for nvtext::minhash (#13333) @davidwendt
- Fix some libcudf functions to set the null count on returning columns (#13331) @davidwendt
- Change cudf::detail::concatenate_masks to return null-count (#13330) @davidwendt
- Move `meta` calculation in `dask_cudf.read_parquet` (#13327) @rjzamora
- Changes to support Numpy &gt;= 1.24 (#13325) @shwina
- Use std::overflow_error when output would exceed column size limit (#13323) @davidwendt
- Clean up `distinct_count` benchmark (#13321) @PointKernel
- Fix gtest pinning to 1.13.0. (#13319) @bdice
- Remove null mask and null count from column_view constructors (#13311) @vyasr
- Address feedback from 13289 (#13306) @vyasr
- Change default value of the `observed=` argument in groupby to `True` to reflect the actual behaviour (#13296) @shwina
- First check for `BaseDtype` when infering the data type of an arbitrary object (#13295) @shwina
- Throw error if UNINITIALIZED is passed to cudf::state_null_count (#13292) @davidwendt
- Support CUDA 12.0 for pip wheels (#13289) @divyegala
- Refactor `transform_lists_of_structs` in `row_operators.cu` (#13288) @ttnghia
- Branch 23.06 merge 23.04 (#13286) @vyasr
- Update cupy dependency (#13284) @vyasr
- Performance improvement in cudf::strings::join_strings for long strings (#13283) @davidwendt
- Fix unused variables and functions (#13275) @karthikeyann
- Fix integer overflow in `partition` `scatter_map` construction (#13272) @wence-
- Numba 0.57 compatibility fixes (#13271) @gmarkall
- Performance improvement in cudf::strings::all_characters_of_type (#13259) @davidwendt
- Remove default null-count parameter from some libcudf factory functions (#13258) @davidwendt
- Roll our own generate_string() because mimesis&#39; has gone away (#13257) @shwina
- Build wheels using new single image workflow (#13249) @vyasr
- Enable sccache hits from local builds (#13248) @AyodeAwe
- Revert to branch-23.06 for shared-action-workflows (#13247) @shwina
- Introduce `pandas_compatible` option in `cudf` (#13241) @galipremsagar
- Add metadata_builder helper class (#13232) @abellina
- Use libkvikio conda packages in libcudf, add explicit libcufile dependency. (#13231) @bdice
- Remove default null-count parameter from cudf::make_strings_column factory (#13227) @davidwendt
- Performance improvement in cudf::strings::find/rfind for long strings (#13226) @davidwendt
- Add chunked reader benchmark (#13223) @SrikarVanavasam
- Set the null count in output columns in the CSV reader (#13221) @vuule
- Skip Non-Empty nulls tests for the nightly build just like we skip CuFileTest and CudaFatalTest (#13213) @razajafri
- Fix string_scalar stream usage in write_json.cu (#13212) @davidwendt
- Use canonicalized name for dlopen&#39;d libraries (libcufile) (#13210) @shwina
- Refactor pinned memory vector and ORC+Parquet writers (#13206) @ttnghia
- Remove UNKNOWN_NULL_COUNT where it can be easily computed (#13205) @vyasr
- Optimization to decoding of parquet level streams (#13203) @nvdbaranec
- Clean up and simplify `gpuDecideCompression` (#13202) @vuule
- Use std::array for a statically sized vector in `create_serialized_trie` (#13201) @vuule
- Update minimum Python version to Python 3.9 (#13196) @shwina
- Refactor contiguous_split API into contiguous_split.hpp (#13186) @abellina
- Remove usage of rapids-get-rapids-version-from-git (#13184) @jjacobelli
- Enable mixed-dtype decimal/scalar binary operations (#13171) @shwina
- Split up unique_count.cu to improve build time (#13169) @davidwendt
- Use nvtx3 includes in string examples. (#13165) @bdice
- Change some .cu gtest files to .cpp (#13155) @davidwendt
- Remove wheel pytest verbosity (#13151) @sevagh
- Fix libcudf to always pass null-count to set_null_mask (#13149) @davidwendt
- Fix gtests to always pass null-count to set_null_mask calls (#13148) @davidwendt
- Optimize JSON writer (#13144) @karthikeyann
- Performance improvement for libcudf upper/lower conversion for long strings (#13142) @davidwendt
- [REVIEW] Deprecate `pad` and `backfill` methods (#13140) @galipremsagar
- Use CTAD instead of functions in ProtobufReader (#13135) @vuule
- Remove more instances of `UNKNOWN_NULL_COUNT` (#13134) @vyasr
- Update clang-format to 16.0.1. (#13133) @bdice
- Add log messages about cuIO&#39;s nvCOMP and cuFile use (#13132) @vuule
- Branch 23.06 merge 23.04 (#13131) @vyasr
- Compute null-count in cudf::detail::slice (#13124) @davidwendt
- Use ARC V2 self-hosted runners for GPU jobs (#13123) @jjacobelli
- Set null-count in linked_column_view conversion operator (#13121) @davidwendt
- Adding ifdefs around nvcc-specific pragmas (#13110) @hyperbolic2346
- Add null-count parameter to json experimental parse_data utility (#13107) @davidwendt
- Remove uses-setup-env-vars (#13105) @vyasr
- Explicitly compute null count in concatenate APIs (#13104) @vyasr
- Replace unnecessary uses of `UNKNOWN_NULL_COUNT` (#13102) @vyasr
- Performance improvement for cudf::string_view::find functions (#13100) @davidwendt
- Use `.element()` instead of `.data()` for window range calculations (#13095) @mythrocks
- Cleanup Parquet chunked writer (#13094) @ttnghia
- Fix unused variable error/warning in page_data.cu (#13093) @davidwendt
- Cleanup ORC chunked writer (#13091) @ttnghia
- Remove using namespace cudf; from libcudf gtests source (#13089) @davidwendt
- Change cudf::test::make_null_mask to also return null-count (#13081) @davidwendt
- Resolved automerger from `branch-23.04` to `branch-23.06` (#13080) @galipremsagar
- Assert for non-empty nulls (#13071) @razajafri
- Remove deprecated regex functions from libcudf (#13067) @davidwendt
- Refactor `cudf::detail::sorted_order` (#13062) @ttnghia
- Improve performance of slice_strings for long strings (#13057) @davidwendt
- Reduce shared memory usage in gpuComputePageSizes by 50% (#13047) @nvdbaranec
- [REVIEW] Add notes to performance comparisons notebook (#13044) @galipremsagar
- Enable binary operations between scalars and columns of differing decimal types (#13034) @shwina
- Remove console output from some libcudf gtests (#13027) @davidwendt
- Remove underscore in build string. (#13025) @bdice
- Bump up JNI version 23.06.0-SNAPSHOT (#13021) @pxLi
- Fix auto merger from `branch-23.04` to `branch-23.06` (#13009) @galipremsagar
- Reduce peak memory use when writing compressed ORC files. (#12963) @vuule
- Add nvtx annotatations to groupby methods (#12941) @wence-
- Compute column sizes in Parquet preprocess with single kernel (#12931) @SrikarVanavasam
- Add Python bindings for time zone data (TZiF) reader (#12826) @shwina
- Optimize set-like operations (#12769) @ttnghia
- [REVIEW] Upgrade to `arrow-11` (#12757) @galipremsagar
- Add empty test files for test reorganization (#12288) @shwina
v23.06.00: tag_name: v23.06.00
body: ## 🚨 Breaking Changes

- Fix batch processing for parquet writer (#13438) @ttnghia
- Use &lt;NA&gt; instead of null to match pandas. (#13415) @bdice
- Remove UNKNOWN_NULL_COUNT (#13372) @vyasr
- Remove default UNKNOWN_NULL_COUNT from cudf::column member functions (#13341) @davidwendt
- Use std::overflow_error when output would exceed column size limit (#13323) @davidwendt
- Remove null mask and null count from column_view constructors (#13311) @vyasr
- Change default value of the `observed=` argument in groupby to `True` to reflect the actual behaviour (#13296) @shwina
- Throw error if UNINITIALIZED is passed to cudf::state_null_count (#13292) @davidwendt
- Remove default null-count parameter from cudf::make_strings_column factory (#13227) @davidwendt
- Remove UNKNOWN_NULL_COUNT where it can be easily computed (#13205) @vyasr
- Update minimum Python version to Python 3.9 (#13196) @shwina
- Refactor contiguous_split API into contiguous_split.hpp (#13186) @abellina
- Cleanup Parquet chunked writer (#13094) @ttnghia
- Cleanup ORC chunked writer (#13091) @ttnghia
- Raise `NotImplementedError` when attempting to construct cuDF objects from timezone-aware datetimes (#13086) @shwina
- Remove deprecated regex functions from libcudf (#13067) @davidwendt
- [REVIEW] Upgrade to `arrow-11` (#12757) @galipremsagar
- Implement Python drop_duplicates with cudf::stable_distinct. (#11656) @brandon-b-miller

## 🐛 Bug Fixes

- Fix valid count computation in offset_bitmask_binop kernel (#13489) @davidwendt
- Fix writing of ORC files with empty rowgroups (#13466) @vuule
- Fix cudf::repeat logic when count is zero (#13459) @davidwendt
- Fix batch processing for parquet writer (#13438) @ttnghia
- Fix invalid use of std::exclusive_scan in Parquet writer (#13434) @etseidl
- Patch numba if it is imported first to ensure minor version compatibility works. (#13433) @bdice
- Fix cudf::strings::replace_with_backrefs hang on empty match result (#13418) @davidwendt
- Use &lt;NA&gt; instead of null to match pandas. (#13415) @bdice
- Fix tokenize with non-space delimiter (#13403) @shwina
- Fix groupby head/tail for empty dataframe (#13398) @shwina
- Default to closed=&quot;right&quot; in `IntervalIndex` constructor (#13394) @shwina
- Correctly reorder and reindex scan groupbys with null keys (#13389) @wence-
- Fix unused argument errors in nvcc 11.5 (#13387) @abellina
- Updates needed to work with jitify that leverages libcudacxx (#13383) @robertmaynard
- Fix unused parameter warning/error in parquet/page_data.cu (#13367) @davidwendt
- Fix page size estimation in Parquet writer (#13364) @etseidl
- Fix subword_tokenize error when input contains no tokens (#13320) @davidwendt
- Support gcc 12 as the C++ compiler (#13316) @robertmaynard
- Correctly set bitmask size in `from_column_view` (#13315) @wence-
- Fix approach to detecting assignment for gte/lte operators (#13285) @vyasr
- Fix parquet schema interpretation issue (#13277) @hyperbolic2346
- Fix 64bit shift bug in avro reader (#13276) @karthikeyann
- Fix unused variables/parameters in parquet/writer_impl.cu (#13263) @davidwendt
- Clean up buffers in case AssertionError (#13262) @razajafri
- Allow empty input table in ast `compute_column` (#13245) @wence-
- Fix structs_column_wrapper constructors to copy input column wrappers (#13243) @davidwendt
- Fix the row index stream order in ORC reader (#13242) @vuule
- Make `is_decompression_disabled` and `is_compression_disabled` thread-safe (#13240) @vuule
- Add [[maybe_unused]] to nvbench environment. (#13219) @bdice
- Fix race in ORC string dictionary creation (#13214) @revans2
- Add scalar argtypes to udf cache keys (#13194) @brandon-b-miller
- Fix unused parameter warning/error in grouped_rolling.cu (#13192) @davidwendt
- Avoid skbuild 0.17.2 which affected the cmake -DPython_LIBRARY string (#13188) @sevagh
- Fix `hostdevice_vector::subspan` (#13187) @ttnghia
- Use custom nvbench entry point to ensure `cudf::nvbench_base_fixture` usage (#13183) @robertmaynard
- Fix slice_strings to return empty strings for stop &lt; start indices (#13178) @davidwendt
- Allow compilation with any GTest version 1.11+ (#13153) @robertmaynard
- Fix a few clang-format style check errors (#13146) @davidwendt
- [REVIEW] Fix `Series` and `DataFrame` constructors to validate index lengths (#13122) @galipremsagar
- Fix hash join when the input tables have nulls on only one side (#13120) @ttnghia
- Fix GPU_ARCHS setting in Java CMake build and CMAKE_CUDA_ARCHITECTURES in Python package build. (#13117) @davidwendt
- Adds checks to make sure json reader won&#39;t overflow (#13115) @elstehle
- Fix `null_count` of columns returned by `chunked_parquet_reader` (#13111) @vuule
- Fixes sliced list and struct column bug  in JSON chunked writer (#13108) @karthikeyann
- [REVIEW] Fix missing confluent kafka version (#13101) @galipremsagar
- Use make_empty_lists_column instead of make_empty_column(type_id::LIST) (#13099) @davidwendt
- Raise `NotImplementedError` when attempting to construct cuDF objects from timezone-aware datetimes (#13086) @shwina
- Fix column selection `read_parquet` benchmarks (#13082) @vuule
- Fix bugs in iterative groupby apply algorithm (#13078) @brandon-b-miller
- Add algorithm include in data_sink.hpp (#13068) @ahendriksen
- Fix tests/identify_stream_usage.cpp (#13066) @ahendriksen
- Prevent overflow with `skip_rows` in ORC and Parquet readers (#13063) @vuule
- Add except declaration in Cython interface for regex_program::create (#13054) @davidwendt
- [REVIEW] Fix branch version in CI scripts (#13029) @galipremsagar
- Fix OOB memory access in CSV reader when reading without NA values (#13011) @vuule
- Fix read_avro() skip_rows and num_rows. (#12912) @tpn
- Purge nonempty nulls from byte_cast list outputs. (#11971) @bdice
- Fix consumption of CPU-backed interchange protocol dataframes (#11392) @shwina

## 🚀 New Features

- Remove numba JIT kernel usage from dataframe copy tests (#13385) @brandon-b-miller
- Add JNI for ORC/Parquet writer compression statistics (#13376) @ttnghia
- Use _compile_or_get in JIT groupby apply (#13350) @brandon-b-miller
- cuDF numba cuda 12 updates (#13337) @brandon-b-miller
- Add tz_convert method to convert between timestamps (#13328) @shwina
- Optionally return compression statistics from ORC and Parquet writers (#13294) @vuule
- Support the case=False argument to str.contains (#13290) @shwina
- Add an event handler for ColumnVector.close (#13279) @abellina
- JNI api for cudf::chunked_pack (#13278) @abellina
- Implement a chunked_pack API (#13260) @abellina
- Update cudf recipes to use GTest version to &gt;=1.13 (#13207) @robertmaynard
- JNI changes for range-extents in window functions. (#13199) @mythrocks
- Add support for DatetimeTZDtype and tz_localize (#13163) @shwina
- Add IS_NULL operator to AST (#13145) @karthikeyann
- STRING order-by column for RANGE window functions (#13143) @mythrocks
- Update `contains_table` to experimental row hasher and equality comparator (#13119) @divyegala
- Automatically select `GroupBy.apply` algorithm based on if the UDF is jittable (#13113) @brandon-b-miller
- Refactor Parquet chunked writer (#13076) @ttnghia
- Add Python bindings for string literal support in AST (#13073) @karthikeyann
- Add Java bindings for string literal support in AST (#13072) @karthikeyann
- Add string scalar support in AST (#13061) @karthikeyann
- Log cuIO warnings using the libcudf logger (#13043) @vuule
- Update `mixed_join` to use experimental row hasher and comparator (#13028) @divyegala
- Support structs of lists in row lexicographic comparator (#13005) @ttnghia
- Adding `hostdevice_span` that is a span createable from `hostdevice_vector` (#12981) @hyperbolic2346
- Add nvtext::minhash function (#12961) @davidwendt
- Support lists of structs in row lexicographic comparator (#12953) @ttnghia
- Update `join` to use experimental row hasher and comparator (#12787) @divyegala
- Implement Python drop_duplicates with cudf::stable_distinct. (#11656) @brandon-b-miller

## 🛠️ Improvements

- Drop extraneous dependencies from cudf conda recipe. (#13406) @bdice
- Handle some corner-cases in indexing with boolean masks (#13402) @wence-
- Add cudf::stable_distinct public API, tests, and benchmarks. (#13392) @bdice
- [JNI] Pass this ColumnVector to the onClosed event handler (#13386) @abellina
- Fix JNI method with mismatched parameter list (#13384) @ttnghia
- Split up experimental_row_operator_tests.cu to improve its compile time (#13382) @davidwendt
- Deprecate cudf::strings::slice_strings APIs that accept delimiters (#13373) @davidwendt
- Remove UNKNOWN_NULL_COUNT (#13372) @vyasr
- Move some nvtext benchmarks to nvbench (#13368) @davidwendt
- run docs nightly too (#13366) @AyodeAwe
- Add warning for default `dtype` parameter in `get_dummies` (#13365) @galipremsagar
- Add log messages about kvikIO compatibility mode (#13363) @vuule
- Switch back to using primary shared-action-workflows branch (#13362) @vyasr
- Deprecate `StringIndex` and use `Index` instead (#13361) @galipremsagar
- Ensure columns have valid null counts in CUDF JNI. (#13355) @mythrocks
- Expunge most uses of `TypeVar(bound=&quot;Foo&quot;)` (#13346) @wence-
- Remove all references to UNKNOWN_NULL_COUNT in Python (#13345) @vyasr
- Improve `distinct_count` with `cuco::static_set` (#13343) @PointKernel
- Fix  `contiguous_split` performance (#13342) @ttnghia
- Remove default UNKNOWN_NULL_COUNT from cudf::column member functions (#13341) @davidwendt
- Update mypy to 1.3 (#13340) @wence-
- [Java] Purge non-empty nulls when setting validity (#13335) @razajafri
- Add row-wise filtering step to `read_parquet` (#13334) @rjzamora
- Performance improvement for nvtext::minhash (#13333) @davidwendt
- Fix some libcudf functions to set the null count on returning columns (#13331) @davidwendt
- Change cudf::detail::concatenate_masks to return null-count (#13330) @davidwendt
- Move `meta` calculation in `dask_cudf.read_parquet` (#13327) @rjzamora
- Changes to support Numpy &gt;= 1.24 (#13325) @shwina
- Use std::overflow_error when output would exceed column size limit (#13323) @davidwendt
- Clean up `distinct_count` benchmark (#13321) @PointKernel
- Fix gtest pinning to 1.13.0. (#13319) @bdice
- Remove null mask and null count from column_view constructors (#13311) @vyasr
- Address feedback from 13289 (#13306) @vyasr
- Change default value of the `observed=` argument in groupby to `True` to reflect the actual behaviour (#13296) @shwina
- First check for `BaseDtype` when infering the data type of an arbitrary object (#13295) @shwina
- Throw error if UNINITIALIZED is passed to cudf::state_null_count (#13292) @davidwendt
- Support CUDA 12.0 for pip wheels (#13289) @divyegala
- Refactor `transform_lists_of_structs` in `row_operators.cu` (#13288) @ttnghia
- Branch 23.06 merge 23.04 (#13286) @vyasr
- Update cupy dependency (#13284) @vyasr
- Performance improvement in cudf::strings::join_strings for long strings (#13283) @davidwendt
- Fix unused variables and functions (#13275) @karthikeyann
- Fix integer overflow in `partition` `scatter_map` construction (#13272) @wence-
- Numba 0.57 compatibility fixes (#13271) @gmarkall
- Performance improvement in cudf::strings::all_characters_of_type (#13259) @davidwendt
- Remove default null-count parameter from some libcudf factory functions (#13258) @davidwendt
- Roll our own generate_string() because mimesis&#39; has gone away (#13257) @shwina
- Build wheels using new single image workflow (#13249) @vyasr
- Enable sccache hits from local builds (#13248) @AyodeAwe
- Revert to branch-23.06 for shared-action-workflows (#13247) @shwina
- Introduce `pandas_compatible` option in `cudf` (#13241) @galipremsagar
- Add metadata_builder helper class (#13232) @abellina
- Use libkvikio conda packages in libcudf, add explicit libcufile dependency. (#13231) @bdice
- Remove default null-count parameter from cudf::make_strings_column factory (#13227) @davidwendt
- Performance improvement in cudf::strings::find/rfind for long strings (#13226) @davidwendt
- Add chunked reader benchmark (#13223) @SrikarVanavasam
- Set the null count in output columns in the CSV reader (#13221) @vuule
- Skip Non-Empty nulls tests for the nightly build just like we skip CuFileTest and CudaFatalTest (#13213) @razajafri
- Fix string_scalar stream usage in write_json.cu (#13212) @davidwendt
- Use canonicalized name for dlopen&#39;d libraries (libcufile) (#13210) @shwina
- Refactor pinned memory vector and ORC+Parquet writers (#13206) @ttnghia
- Remove UNKNOWN_NULL_COUNT where it can be easily computed (#13205) @vyasr
- Optimization to decoding of parquet level streams (#13203) @nvdbaranec
- Clean up and simplify `gpuDecideCompression` (#13202) @vuule
- Use std::array for a statically sized vector in `create_serialized_trie` (#13201) @vuule
- Update minimum Python version to Python 3.9 (#13196) @shwina
- Refactor contiguous_split API into contiguous_split.hpp (#13186) @abellina
- Remove usage of rapids-get-rapids-version-from-git (#13184) @jjacobelli
- Enable mixed-dtype decimal/scalar binary operations (#13171) @shwina
- Split up unique_count.cu to improve build time (#13169) @davidwendt
- Use nvtx3 includes in string examples. (#13165) @bdice
- Change some .cu gtest files to .cpp (#13155) @davidwendt
- Remove wheel pytest verbosity (#13151) @sevagh
- Fix libcudf to always pass null-count to set_null_mask (#13149) @davidwendt
- Fix gtests to always pass null-count to set_null_mask calls (#13148) @davidwendt
- Optimize JSON writer (#13144) @karthikeyann
- Performance improvement for libcudf upper/lower conversion for long strings (#13142) @davidwendt
- [REVIEW] Deprecate `pad` and `backfill` methods (#13140) @galipremsagar
- Use CTAD instead of functions in ProtobufReader (#13135) @vuule
- Remove more instances of `UNKNOWN_NULL_COUNT` (#13134) @vyasr
- Update clang-format to 16.0.1. (#13133) @bdice
- Add log messages about cuIO&#39;s nvCOMP and cuFile use (#13132) @vuule
- Branch 23.06 merge 23.04 (#13131) @vyasr
- Compute null-count in cudf::detail::slice (#13124) @davidwendt
- Use ARC V2 self-hosted runners for GPU jobs (#13123) @jjacobelli
- Set null-count in linked_column_view conversion operator (#13121) @davidwendt
- Adding ifdefs around nvcc-specific pragmas (#13110) @hyperbolic2346
- Add null-count parameter to json experimental parse_data utility (#13107) @davidwendt
- Remove uses-setup-env-vars (#13105) @vyasr
- Explicitly compute null count in concatenate APIs (#13104) @vyasr
- Replace unnecessary uses of `UNKNOWN_NULL_COUNT` (#13102) @vyasr
- Performance improvement for cudf::string_view::find functions (#13100) @davidwendt
- Use `.element()` instead of `.data()` for window range calculations (#13095) @mythrocks
- Cleanup Parquet chunked writer (#13094) @ttnghia
- Fix unused variable error/warning in page_data.cu (#13093) @davidwendt
- Cleanup ORC chunked writer (#13091) @ttnghia
- Remove using namespace cudf; from libcudf gtests source (#13089) @davidwendt
- Change cudf::test::make_null_mask to also return null-count (#13081) @davidwendt
- Resolved automerger from `branch-23.04` to `branch-23.06` (#13080) @galipremsagar
- Assert for non-empty nulls (#13071) @razajafri
- Remove deprecated regex functions from libcudf (#13067) @davidwendt
- Refactor `cudf::detail::sorted_order` (#13062) @ttnghia
- Improve performance of slice_strings for long strings (#13057) @davidwendt
- Reduce shared memory usage in gpuComputePageSizes by 50% (#13047) @nvdbaranec
- [REVIEW] Add notes to performance comparisons notebook (#13044) @galipremsagar
- Enable binary operations between scalars and columns of differing decimal types (#13034) @shwina
- Remove console output from some libcudf gtests (#13027) @davidwendt
- Remove underscore in build string. (#13025) @bdice
- Bump up JNI version 23.06.0-SNAPSHOT (#13021) @pxLi
- Fix auto merger from `branch-23.04` to `branch-23.06` (#13009) @galipremsagar
- Reduce peak memory use when writing compressed ORC files. (#12963) @vuule
- Add nvtx annotatations to groupby methods (#12941) @wence-
- Compute column sizes in Parquet preprocess with single kernel (#12931) @SrikarVanavasam
- Add Python bindings for time zone data (TZiF) reader (#12826) @shwina
- Optimize set-like operations (#12769) @ttnghia
- [REVIEW] Upgrade to `arrow-11` (#12757) @galipremsagar
- Add empty test files for test reorganization (#12288) @shwina
v23.04.01: tag_name: v23.04.01
body: ## 🚨 Breaking Changes

- Pin `dask` and `distributed` for release (#13070) @galipremsagar
- Declare a different name for nan_equality.UNEQUAL to prevent Cython warnings. (#12947) @bdice
- Update minimum `pandas` and `numpy` pinnings (#12887) @galipremsagar
- Deprecate `names` &amp; `dtype` in `Index.copy` (#12825) @galipremsagar
- Deprecate `Index.is_*` methods (#12820) @galipremsagar
- Deprecate `datetime_is_numeric` from `describe` (#12818) @galipremsagar
- Deprecate `na_sentinel` in `factorize` (#12817) @galipremsagar
- Make string methods return a Series with a useful Index (#12814) @shwina
- Produce useful guidance on overflow error in `to_csv` (#12705) @wence-
- Move `strings_udf` code into cuDF (#12669) @brandon-b-miller
- Remove cudf::strings::repeat_strings_output_sizes and optional parameter from cudf::strings::repeat_strings (#12609) @davidwendt
- Replace message parsing with throwing more specific exceptions (#12426) @vyasr

## 🐛 Bug Fixes

- Pin curand version (#13127) @vyasr
- Fix memcheck script to execute only _TEST files found in bin/gtests/libcudf (#13006) @davidwendt
- Fix `DataFrame` constructor to broadcast scalar inputs properly (#12997) @galipremsagar
- Drop `force_nullable_schema` from chunked parquet writer (#12996) @galipremsagar
- Fix gtest column utility comparator diff reporting (#12995) @davidwendt
- Handle index names while performing `groupby` (#12992) @galipremsagar
- Fix `__setitem__` on string columns when the scalar value ends in a null byte (#12991) @wence-
- Fix `sort_values` when column is all empty strings (#12988) @eriknw
- Remove unused variable and fix memory issue in ORC writer (#12984) @ttnghia
- Pre-emptive fix for upstream `dask.dataframe.read_parquet` changes (#12983) @rjzamora
- Remove MANIFEST.in use auto-generated one for sdists and package_data for wheels (#12960) @vyasr
- Update to use rapids-export(COMPONENTS) feature. (#12959) @robertmaynard
- cudftestutil supports static gtest dependencies (#12957) @robertmaynard
- Include gtest in build environment. (#12956) @vyasr
- Correctly handle scalar indices in `Index.__getitem__` (#12955) @wence-
- Avoid building cython twice (#12945) @galipremsagar
- Fix set index error for Series rolling window operations (#12942) @galipremsagar
- Fix calculation of null counts for Parquet statistics (#12938) @etseidl
- Preserve integer dtype of hive-partitioned column containing nulls (#12930) @rjzamora
- Use get_current_device_resource for intermediate allocations in COLLECT_LIST window code (#12927) @karthikeyann
- Mark dlpack tensor deleter as noexcept to match PyCapsule_Destructor signature. (#12921) @bdice
- Fix conda recipe post-link.sh typo (#12916) @pentschev
- min_rows and num_rows are swapped in ComputePageSizes declaration in Parquet reader (#12886) @etseidl
- Expect cupy to now support bool arrays for dlpack. (#12883) @vyasr
- Use python -m pytest for nightly wheel tests (#12871) @bdice
- Parquet writer column_size() should return a size_t (#12870) @etseidl
- Fix cudf::hash_partition kernel launch error with decimal128 types (#12863) @davidwendt
- Fix an issue with parquet chunked reader undercounting string lengths. (#12859) @nvdbaranec
- Remove tokenizers pre-install pinning. (#12854) @vyasr
- Fix parquet `RangeIndex` bug (#12838) @rjzamora
- Remove KAFKA_HOST_TEST from compute-sanitizer check (#12831) @davidwendt
- Make string methods return a Series with a useful Index (#12814) @shwina
- Tell cudf_kafka to use header-only fmt (#12796) @vyasr
- Add `GroupBy.dtypes` (#12783) @galipremsagar
- Fix a leak in a test and clarify some test names (#12781) @revans2
- Fix bug in all-null list due to join_list_elements special handling (#12767) @karthikeyann
- Add try/except for expected null-schema error in read_parquet (#12756) @rjzamora
- Throw an exception if an unsupported page encoding is detected in Parquet reader (#12754) @etseidl
- Fix a bug with `num_keys` in `_scatter_by_slice` (#12749) @thomcom
- Bump pinned rapids wheel deps to 23.4 (#12735) @sevagh
- Rework logic in cudf::strings::split_record to improve performance (#12729) @davidwendt
- Add `always_nullable` flag to Dremel encoding (#12727) @divyegala
- Fix memcheck read error in compound segmented reduce (#12722) @davidwendt
- Fix faulty conditional logic in JIT `GroupBy.apply` (#12706) @brandon-b-miller
- Produce useful guidance on overflow error in `to_csv` (#12705) @wence-
- Handle parquet list data corner case (#12698) @nvdbaranec
- Fix missing trailing comma in json writer (#12688) @karthikeyann
- Remove child fom newCudaAsyncMemoryResource (#12681) @abellina
- Handle bool types in `round` API (#12670) @galipremsagar
- Ensure all of device bitmask is initialized in from_arrow (#12668) @wence-
- Fix `from_arrow` to load a sliced arrow table (#12665) @galipremsagar
- Fix dask-cudf read_parquet bug for multi-file aggregation (#12663) @rjzamora
- Fix AllocateLikeTest gtests reading uninitialized null-mask (#12643) @davidwendt
- Fix `find_common_dtype` and `values` to handle complex dtypes (#12537) @galipremsagar
- Fix fetching of MultiIndex values when a label is passed (#12521) @galipremsagar
- Fix `Series` comparison vs scalars (#12519) @brandon-b-miller
- Allow casting from `UDFString` back to `StringView` to call methods in `strings_udf` (#12363) @brandon-b-miller

## 📖 Documentation

- Fix `GroupBy.apply` doc examples rendering (#12994) @brandon-b-miller
- add sphinx building and s3 uploading for dask-cudf docs (#12982) @quasiben
- Add developer documentation forbidding default parameters in detail APIs (#12978) @vyasr
- Add README symlink for dask-cudf. (#12946) @bdice
- Remove return type from @return doxygen tags (#12908) @davidwendt
- Fix docs build to be `pydata-sphinx-theme=0.13.0` compatible (#12874) @galipremsagar
- Add skeleton API and prose documentation for dask-cudf (#12725) @wence-
- Enable doctests for GroupBy methods (#12658) @brandon-b-miller
- Add comment about CUB patch for SegmentedSortInt.Bool gtest (#12611) @davidwendt

## 🚀 New Features

- Add JNI method for strings::replace multi variety (#12979) @NVnavkumar
- Add nunique aggregation support for cudf::segmented_reduce (#12972) @davidwendt
- Refactor orc chunked writer (#12949) @ttnghia
- Make Parquet writer `nullable` option application to single table writes (#12933) @vuule
- Refactor `io::orc::ProtobufWriter` (#12877) @ttnghia
- Make timezone table independent from ORC (#12805) @vuule
- Cache JIT `GroupBy.apply` functions (#12802) @brandon-b-miller
- Implement initial support for avro logical types (#6482) (#12788) @tpn
- Update `tests/column_utilities` to use `experimental::equality` row comparator (#12777) @divyegala
- Update `distinct/unique_count` to `experimental::row` hasher/comparator (#12776) @divyegala
- Update `hash_partition` to use `experimental::row::row_hasher` (#12761) @divyegala
- Update `is_sorted` to use `experimental::row::lexicographic` (#12752) @divyegala
- Update default data source in cuio reader benchmarks (#12740) @PointKernel
- Reenable stream identification library in CI (#12714) @vyasr
- Add `regex_program` strings splitting java APIs and tests (#12713) @cindyyuanjiang
- Add `regex_program` strings replacing java APIs and tests (#12701) @cindyyuanjiang
- Add `regex_program` strings extract java APIs and tests (#12699) @cindyyuanjiang
- Variable fragment sizes for Parquet writer (#12685) @etseidl
- Add segmented reduction support for fixed-point types (#12680) @davidwendt
- Move `strings_udf` code into cuDF (#12669) @brandon-b-miller
- Add `regex_program` searching APIs and related java classes (#12666) @cindyyuanjiang
- Add logging to libcudf (#12637) @vuule
- Add compound aggregations to cudf::segmented_reduce (#12573) @davidwendt
- Convert `rank` to use to experimental row comparators (#12481) @divyegala
- Use rapids-cmake parallel testing feature (#12451) @robertmaynard
- Enable detection of undesired stream usage (#12089) @vyasr

## 🛠️ Improvements

- Pin `dask` and `distributed` for release (#13070) @galipremsagar
- Pin cupy in wheel tests to supported versions (#13041) @vyasr
- Pin numba version (#13001) @vyasr
- Rework gtests SequenceTest to remove using namepace cudf (#12985) @davidwendt
- Stop setting package version attribute in wheels (#12977) @vyasr
- Move detail reduction functions to cudf::reduction::detail namespace (#12971) @davidwendt
- Remove default detail mrs: part7 (#12970) @vyasr
- Remove default detail mrs: part6 (#12969) @vyasr
- Remove default detail mrs: part5 (#12968) @vyasr
- Remove default detail mrs: part4 (#12967) @vyasr
- Remove default detail mrs: part3 (#12966) @vyasr
- Remove default detail mrs: part2 (#12965) @vyasr
- Remove default detail mrs: part1 (#12964) @vyasr
- Add `force_nullable_schema` parameter to Parquet writer. (#12952) @galipremsagar
- Declare a different name for nan_equality.UNEQUAL to prevent Cython warnings. (#12947) @bdice
- Remove remaining default stream parameters (#12943) @vyasr
- Fix cudf::segmented_reduce gtest for ANY aggregation (#12940) @davidwendt
- Implement `groupby.head` and `groupby.tail` (#12939) @wence-
- Fix libcudf gtests to pass null-count=0 for empty validity masks (#12923) @davidwendt
- Migrate parquet encoding to use experimental row operators (#12918) @PointKernel
- Fix benchmarks coded in namespace cudf and using namespace cudf (#12915) @karthikeyann
- Fix io/text gtests coded in namespace cudf::test (#12914) @karthikeyann
- Pass `SCCACHE_S3_USE_SSL` to conda builds (#12910) @ajschmidt8
- Fix FST, JSON gtests &amp; benchmarks coded in namespace cudf::test (#12907) @karthikeyann
- Generate pyproject dependencies using dfg (#12906) @vyasr
- Update libcudf counting functions to specify cudf::size_type (#12904) @davidwendt
- Fix `moto` env vars &amp; pass `AWS_SESSION_TOKEN` to conda builds (#12902) @ajschmidt8
- Rewrite CSV writer benchmark with nvbench (#12901) @PointKernel
- Rework some code logic to reduce iterator and comparator inlining to improve compile time (#12900) @davidwendt
- Deprecate `line_terminator` in favor of `lineterminator` in `to_csv` (#12896) @wence-
- Add `stream` and `mr` parameters for `structs::detail::flatten_nested_columns` (#12892) @ttnghia
- Deprecate libcudf regex APIs accepting pattern strings directly (#12891) @davidwendt
- Remove default parameters from detail headers in include (#12888) @vyasr
- Update minimum `pandas` and `numpy` pinnings (#12887) @galipremsagar
- Implement `groupby.sample` (#12882) @wence-
- Update JNI build ENV default to gcc 11 (#12881) @pxLi
- Change return type of `cudf::structs::detail::flatten_nested_columns` to smart pointer (#12878) @ttnghia
- Fix passing seed parameter to MurmurHash3_32 in cudf::hash() function (#12875) @davidwendt
- Remove manual artifact upload step in CI (#12869) @ajschmidt8
- Update to GCC 11 (#12868) @bdice
- Fix null hive-partition behavior in dask-cudf parquet (#12866) @rjzamora
- Update to protobuf&gt;=4.21.6,&lt;4.22. (#12864) @bdice
- Update RMM allocators (#12861) @pentschev
- Improve performance for replace-multi for long strings (#12858) @davidwendt
- Drop Python 3.7 handling for pickle protocol 4 (#12857) @jakirkham
- Migrate as much as possible to pyproject.toml (#12850) @vyasr
- Enable nbqa pre-commit hooks for isort and black. (#12848) @bdice
- Setting a threshold for KvikIO IO (#12841) @madsbk
- Update datasets download URL (#12840) @jjacobelli
- Make docs builds less verbose (#12836) @AyodeAwe
- Consolidate linter configs into pyproject.toml (#12834) @vyasr
- Deprecate `names` &amp; `dtype` in `Index.copy` (#12825) @galipremsagar
- Deprecate `inplace` parameters in categorical methods (#12824) @galipremsagar
- Add optional text file support to ninja-log utility (#12823) @davidwendt
- Deprecate `Index.is_*` methods (#12820) @galipremsagar
- Add dfg as a pre-commit hook (#12819) @vyasr
- Deprecate `datetime_is_numeric` from `describe` (#12818) @galipremsagar
- Deprecate `na_sentinel` in `factorize` (#12817) @galipremsagar
- Shuffling read into a sub function in parquet read (#12809) @hyperbolic2346
- Fixing parquet coalescing of reads (#12808) @hyperbolic2346
- CI: Remove specification of manual stage for check_style.sh script. (#12803) @csadorf
- Add compute-sanitizer github workflow action to nightly tests (#12800) @davidwendt
- Enable groupby std and variance aggregation types in libcudf Debug build (#12799) @davidwendt
- Expose seed argument to hash_values (#12795) @ayushdg
- Fix groupby gtests coded in namespace cudf::test (#12784) @davidwendt
- Improve performance for cudf::strings::count_characters for long strings (#12779) @davidwendt
- Deallocate encoded data in ORC writer immediately after compression (#12770) @vuule
- Stop force pulling fmt in nvbench. (#12768) @vyasr
- Remove now redundant cuda initialization (#12758) @vyasr
- Adds JSON reader, writer io benchmark (#12753) @karthikeyann
- Use test paths relative to package directory. (#12751) @bdice
- Add build metrics report as artifact to cpp-build workflow (#12750) @davidwendt
- Add JNI methods for detecting and purging non-empty nulls from LIST and STRUCT (#12742) @razajafri
- Stop using versioneer to manage versions (#12741) @vyasr
- Reduce error handling verbosity in CI tests scripts (#12738) @AjayThorve
- Reduce the number of test cases in multibyte_split benchmark (#12737) @PointKernel
- Update shared workflow branches (#12733) @ajschmidt8
- JNI switches to nested JSON reader (#12732) @res-life
- Changing `cudf::io::source_info` to use `cudf::host_span&lt;std::byte&gt;` in a non-breaking form (#12730) @hyperbolic2346
- Add nvbench environment class for initializing RMM in benchmarks (#12728) @davidwendt
- Split C++ and Python build dependencies into separate lists. (#12724) @bdice
- Add build dependencies to Java tests. (#12723) @bdice
- Allow setting the seed argument for hash partition (#12715) @firestarman
- Remove gpuCI scripts. (#12712) @bdice
- Unpin `dask` and `distributed` for development (#12710) @galipremsagar
- `partition_by_hash()`: use `_split()` (#12704) @madsbk
- Remove DataFrame.quantiles from docs. (#12684) @bdice
- Fast path for `experimental::row::equality` (#12676) @divyegala
- Move date to build string in `conda` recipe (#12661) @ajschmidt8
- Refactor reduction logic for fixed-point types (#12652) @davidwendt
- Pay off some JNI RMM API tech debt (#12632) @revans2
- Merge `copy-on-write` feature branch into `branch-23.04` (#12619) @galipremsagar
- Remove cudf::strings::repeat_strings_output_sizes and optional parameter from cudf::strings::repeat_strings (#12609) @davidwendt
- Pin cuda-nvrtc. (#12606) @bdice
- Remove cudf::test::print calls from libcudf gtests (#12604) @davidwendt
- Init JNI version 23.04.0-SNAPSHOT (#12599) @pxLi
- Add performance benchmarks to user facing docs (#12595) @galipremsagar
- Add docs build job (#12592) @AyodeAwe
- Replace message parsing with throwing more specific exceptions (#12426) @vyasr
- Support conversion to/from cudf in dask.dataframe.core.to_backend (#12380) @rjzamora
v23.04.00: tag_name: v23.04.00
body: ## 🚨 Breaking Changes

- Pin `dask` and `distributed` for release (#13070) @galipremsagar
- Declare a different name for nan_equality.UNEQUAL to prevent Cython warnings. (#12947) @bdice
- Update minimum `pandas` and `numpy` pinnings (#12887) @galipremsagar
- Deprecate `names` &amp; `dtype` in `Index.copy` (#12825) @galipremsagar
- Deprecate `Index.is_*` methods (#12820) @galipremsagar
- Deprecate `datetime_is_numeric` from `describe` (#12818) @galipremsagar
- Deprecate `na_sentinel` in `factorize` (#12817) @galipremsagar
- Make string methods return a Series with a useful Index (#12814) @shwina
- Produce useful guidance on overflow error in `to_csv` (#12705) @wence-
- Move `strings_udf` code into cuDF (#12669) @brandon-b-miller
- Remove cudf::strings::repeat_strings_output_sizes and optional parameter from cudf::strings::repeat_strings (#12609) @davidwendt
- Replace message parsing with throwing more specific exceptions (#12426) @vyasr

## 🐛 Bug Fixes

- Fix memcheck script to execute only _TEST files found in bin/gtests/libcudf (#13006) @davidwendt
- Fix `DataFrame` constructor to broadcast scalar inputs properly (#12997) @galipremsagar
- Drop `force_nullable_schema` from chunked parquet writer (#12996) @galipremsagar
- Fix gtest column utility comparator diff reporting (#12995) @davidwendt
- Handle index names while performing `groupby` (#12992) @galipremsagar
- Fix `__setitem__` on string columns when the scalar value ends in a null byte (#12991) @wence-
- Fix `sort_values` when column is all empty strings (#12988) @eriknw
- Remove unused variable and fix memory issue in ORC writer (#12984) @ttnghia
- Pre-emptive fix for upstream `dask.dataframe.read_parquet` changes (#12983) @rjzamora
- Remove MANIFEST.in use auto-generated one for sdists and package_data for wheels (#12960) @vyasr
- Update to use rapids-export(COMPONENTS) feature. (#12959) @robertmaynard
- cudftestutil supports static gtest dependencies (#12957) @robertmaynard
- Include gtest in build environment. (#12956) @vyasr
- Correctly handle scalar indices in `Index.__getitem__` (#12955) @wence-
- Avoid building cython twice (#12945) @galipremsagar
- Fix set index error for Series rolling window operations (#12942) @galipremsagar
- Fix calculation of null counts for Parquet statistics (#12938) @etseidl
- Preserve integer dtype of hive-partitioned column containing nulls (#12930) @rjzamora
- Use get_current_device_resource for intermediate allocations in COLLECT_LIST window code (#12927) @karthikeyann
- Mark dlpack tensor deleter as noexcept to match PyCapsule_Destructor signature. (#12921) @bdice
- Fix conda recipe post-link.sh typo (#12916) @pentschev
- min_rows and num_rows are swapped in ComputePageSizes declaration in Parquet reader (#12886) @etseidl
- Expect cupy to now support bool arrays for dlpack. (#12883) @vyasr
- Use python -m pytest for nightly wheel tests (#12871) @bdice
- Parquet writer column_size() should return a size_t (#12870) @etseidl
- Fix cudf::hash_partition kernel launch error with decimal128 types (#12863) @davidwendt
- Fix an issue with parquet chunked reader undercounting string lengths. (#12859) @nvdbaranec
- Remove tokenizers pre-install pinning. (#12854) @vyasr
- Fix parquet `RangeIndex` bug (#12838) @rjzamora
- Remove KAFKA_HOST_TEST from compute-sanitizer check (#12831) @davidwendt
- Make string methods return a Series with a useful Index (#12814) @shwina
- Tell cudf_kafka to use header-only fmt (#12796) @vyasr
- Add `GroupBy.dtypes` (#12783) @galipremsagar
- Fix a leak in a test and clarify some test names (#12781) @revans2
- Fix bug in all-null list due to join_list_elements special handling (#12767) @karthikeyann
- Add try/except for expected null-schema error in read_parquet (#12756) @rjzamora
- Throw an exception if an unsupported page encoding is detected in Parquet reader (#12754) @etseidl
- Fix a bug with `num_keys` in `_scatter_by_slice` (#12749) @thomcom
- Bump pinned rapids wheel deps to 23.4 (#12735) @sevagh
- Rework logic in cudf::strings::split_record to improve performance (#12729) @davidwendt
- Add `always_nullable` flag to Dremel encoding (#12727) @divyegala
- Fix memcheck read error in compound segmented reduce (#12722) @davidwendt
- Fix faulty conditional logic in JIT `GroupBy.apply` (#12706) @brandon-b-miller
- Produce useful guidance on overflow error in `to_csv` (#12705) @wence-
- Handle parquet list data corner case (#12698) @nvdbaranec
- Fix missing trailing comma in json writer (#12688) @karthikeyann
- Remove child fom newCudaAsyncMemoryResource (#12681) @abellina
- Handle bool types in `round` API (#12670) @galipremsagar
- Ensure all of device bitmask is initialized in from_arrow (#12668) @wence-
- Fix `from_arrow` to load a sliced arrow table (#12665) @galipremsagar
- Fix dask-cudf read_parquet bug for multi-file aggregation (#12663) @rjzamora
- Fix AllocateLikeTest gtests reading uninitialized null-mask (#12643) @davidwendt
- Fix `find_common_dtype` and `values` to handle complex dtypes (#12537) @galipremsagar
- Fix fetching of MultiIndex values when a label is passed (#12521) @galipremsagar
- Fix `Series` comparison vs scalars (#12519) @brandon-b-miller
- Allow casting from `UDFString` back to `StringView` to call methods in `strings_udf` (#12363) @brandon-b-miller

## 📖 Documentation

- Fix `GroupBy.apply` doc examples rendering (#12994) @brandon-b-miller
- add sphinx building and s3 uploading for dask-cudf docs (#12982) @quasiben
- Add developer documentation forbidding default parameters in detail APIs (#12978) @vyasr
- Add README symlink for dask-cudf. (#12946) @bdice
- Remove return type from @return doxygen tags (#12908) @davidwendt
- Fix docs build to be `pydata-sphinx-theme=0.13.0` compatible (#12874) @galipremsagar
- Add skeleton API and prose documentation for dask-cudf (#12725) @wence-
- Enable doctests for GroupBy methods (#12658) @brandon-b-miller
- Add comment about CUB patch for SegmentedSortInt.Bool gtest (#12611) @davidwendt

## 🚀 New Features

- Add JNI method for strings::replace multi variety (#12979) @NVnavkumar
- Add nunique aggregation support for cudf::segmented_reduce (#12972) @davidwendt
- Refactor orc chunked writer (#12949) @ttnghia
- Make Parquet writer `nullable` option application to single table writes (#12933) @vuule
- Refactor `io::orc::ProtobufWriter` (#12877) @ttnghia
- Make timezone table independent from ORC (#12805) @vuule
- Cache JIT `GroupBy.apply` functions (#12802) @brandon-b-miller
- Implement initial support for avro logical types (#6482) (#12788) @tpn
- Update `tests/column_utilities` to use `experimental::equality` row comparator (#12777) @divyegala
- Update `distinct/unique_count` to `experimental::row` hasher/comparator (#12776) @divyegala
- Update `hash_partition` to use `experimental::row::row_hasher` (#12761) @divyegala
- Update `is_sorted` to use `experimental::row::lexicographic` (#12752) @divyegala
- Update default data source in cuio reader benchmarks (#12740) @PointKernel
- Reenable stream identification library in CI (#12714) @vyasr
- Add `regex_program` strings splitting java APIs and tests (#12713) @cindyyuanjiang
- Add `regex_program` strings replacing java APIs and tests (#12701) @cindyyuanjiang
- Add `regex_program` strings extract java APIs and tests (#12699) @cindyyuanjiang
- Variable fragment sizes for Parquet writer (#12685) @etseidl
- Add segmented reduction support for fixed-point types (#12680) @davidwendt
- Move `strings_udf` code into cuDF (#12669) @brandon-b-miller
- Add `regex_program` searching APIs and related java classes (#12666) @cindyyuanjiang
- Add logging to libcudf (#12637) @vuule
- Add compound aggregations to cudf::segmented_reduce (#12573) @davidwendt
- Convert `rank` to use to experimental row comparators (#12481) @divyegala
- Use rapids-cmake parallel testing feature (#12451) @robertmaynard
- Enable detection of undesired stream usage (#12089) @vyasr

## 🛠️ Improvements

- Pin `dask` and `distributed` for release (#13070) @galipremsagar
- Pin cupy in wheel tests to supported versions (#13041) @vyasr
- Pin numba version (#13001) @vyasr
- Rework gtests SequenceTest to remove using namepace cudf (#12985) @davidwendt
- Stop setting package version attribute in wheels (#12977) @vyasr
- Move detail reduction functions to cudf::reduction::detail namespace (#12971) @davidwendt
- Remove default detail mrs: part7 (#12970) @vyasr
- Remove default detail mrs: part6 (#12969) @vyasr
- Remove default detail mrs: part5 (#12968) @vyasr
- Remove default detail mrs: part4 (#12967) @vyasr
- Remove default detail mrs: part3 (#12966) @vyasr
- Remove default detail mrs: part2 (#12965) @vyasr
- Remove default detail mrs: part1 (#12964) @vyasr
- Add `force_nullable_schema` parameter to Parquet writer. (#12952) @galipremsagar
- Declare a different name for nan_equality.UNEQUAL to prevent Cython warnings. (#12947) @bdice
- Remove remaining default stream parameters (#12943) @vyasr
- Fix cudf::segmented_reduce gtest for ANY aggregation (#12940) @davidwendt
- Implement `groupby.head` and `groupby.tail` (#12939) @wence-
- Fix libcudf gtests to pass null-count=0 for empty validity masks (#12923) @davidwendt
- Migrate parquet encoding to use experimental row operators (#12918) @PointKernel
- Fix benchmarks coded in namespace cudf and using namespace cudf (#12915) @karthikeyann
- Fix io/text gtests coded in namespace cudf::test (#12914) @karthikeyann
- Pass `SCCACHE_S3_USE_SSL` to conda builds (#12910) @ajschmidt8
- Fix FST, JSON gtests &amp; benchmarks coded in namespace cudf::test (#12907) @karthikeyann
- Generate pyproject dependencies using dfg (#12906) @vyasr
- Update libcudf counting functions to specify cudf::size_type (#12904) @davidwendt
- Fix `moto` env vars &amp; pass `AWS_SESSION_TOKEN` to conda builds (#12902) @ajschmidt8
- Rewrite CSV writer benchmark with nvbench (#12901) @PointKernel
- Rework some code logic to reduce iterator and comparator inlining to improve compile time (#12900) @davidwendt
- Deprecate `line_terminator` in favor of `lineterminator` in `to_csv` (#12896) @wence-
- Add `stream` and `mr` parameters for `structs::detail::flatten_nested_columns` (#12892) @ttnghia
- Deprecate libcudf regex APIs accepting pattern strings directly (#12891) @davidwendt
- Remove default parameters from detail headers in include (#12888) @vyasr
- Update minimum `pandas` and `numpy` pinnings (#12887) @galipremsagar
- Implement `groupby.sample` (#12882) @wence-
- Update JNI build ENV default to gcc 11 (#12881) @pxLi
- Change return type of `cudf::structs::detail::flatten_nested_columns` to smart pointer (#12878) @ttnghia
- Fix passing seed parameter to MurmurHash3_32 in cudf::hash() function (#12875) @davidwendt
- Remove manual artifact upload step in CI (#12869) @ajschmidt8
- Update to GCC 11 (#12868) @bdice
- Fix null hive-partition behavior in dask-cudf parquet (#12866) @rjzamora
- Update to protobuf&gt;=4.21.6,&lt;4.22. (#12864) @bdice
- Update RMM allocators (#12861) @pentschev
- Improve performance for replace-multi for long strings (#12858) @davidwendt
- Drop Python 3.7 handling for pickle protocol 4 (#12857) @jakirkham
- Migrate as much as possible to pyproject.toml (#12850) @vyasr
- Enable nbqa pre-commit hooks for isort and black. (#12848) @bdice
- Setting a threshold for KvikIO IO (#12841) @madsbk
- Update datasets download URL (#12840) @jjacobelli
- Make docs builds less verbose (#12836) @AyodeAwe
- Consolidate linter configs into pyproject.toml (#12834) @vyasr
- Deprecate `names` &amp; `dtype` in `Index.copy` (#12825) @galipremsagar
- Deprecate `inplace` parameters in categorical methods (#12824) @galipremsagar
- Add optional text file support to ninja-log utility (#12823) @davidwendt
- Deprecate `Index.is_*` methods (#12820) @galipremsagar
- Add dfg as a pre-commit hook (#12819) @vyasr
- Deprecate `datetime_is_numeric` from `describe` (#12818) @galipremsagar
- Deprecate `na_sentinel` in `factorize` (#12817) @galipremsagar
- Shuffling read into a sub function in parquet read (#12809) @hyperbolic2346
- Fixing parquet coalescing of reads (#12808) @hyperbolic2346
- CI: Remove specification of manual stage for check_style.sh script. (#12803) @csadorf
- Add compute-sanitizer github workflow action to nightly tests (#12800) @davidwendt
- Enable groupby std and variance aggregation types in libcudf Debug build (#12799) @davidwendt
- Expose seed argument to hash_values (#12795) @ayushdg
- Fix groupby gtests coded in namespace cudf::test (#12784) @davidwendt
- Improve performance for cudf::strings::count_characters for long strings (#12779) @davidwendt
- Deallocate encoded data in ORC writer immediately after compression (#12770) @vuule
- Stop force pulling fmt in nvbench. (#12768) @vyasr
- Remove now redundant cuda initialization (#12758) @vyasr
- Adds JSON reader, writer io benchmark (#12753) @karthikeyann
- Use test paths relative to package directory. (#12751) @bdice
- Add build metrics report as artifact to cpp-build workflow (#12750) @davidwendt
- Add JNI methods for detecting and purging non-empty nulls from LIST and STRUCT (#12742) @razajafri
- Stop using versioneer to manage versions (#12741) @vyasr
- Reduce error handling verbosity in CI tests scripts (#12738) @AjayThorve
- Reduce the number of test cases in multibyte_split benchmark (#12737) @PointKernel
- Update shared workflow branches (#12733) @ajschmidt8
- JNI switches to nested JSON reader (#12732) @res-life
- Changing `cudf::io::source_info` to use `cudf::host_span&lt;std::byte&gt;` in a non-breaking form (#12730) @hyperbolic2346
- Add nvbench environment class for initializing RMM in benchmarks (#12728) @davidwendt
- Split C++ and Python build dependencies into separate lists. (#12724) @bdice
- Add build dependencies to Java tests. (#12723) @bdice
- Allow setting the seed argument for hash partition (#12715) @firestarman
- Remove gpuCI scripts. (#12712) @bdice
- Unpin `dask` and `distributed` for development (#12710) @galipremsagar
- `partition_by_hash()`: use `_split()` (#12704) @madsbk
- Remove DataFrame.quantiles from docs. (#12684) @bdice
- Fast path for `experimental::row::equality` (#12676) @divyegala
- Move date to build string in `conda` recipe (#12661) @ajschmidt8
- Refactor reduction logic for fixed-point types (#12652) @davidwendt
- Pay off some JNI RMM API tech debt (#12632) @revans2
- Merge `copy-on-write` feature branch into `branch-23.04` (#12619) @galipremsagar
- Remove cudf::strings::repeat_strings_output_sizes and optional parameter from cudf::strings::repeat_strings (#12609) @davidwendt
- Pin cuda-nvrtc. (#12606) @bdice
- Remove cudf::test::print calls from libcudf gtests (#12604) @davidwendt
- Init JNI version 23.04.0-SNAPSHOT (#12599) @pxLi
- Add performance benchmarks to user facing docs (#12595) @galipremsagar
- Add docs build job (#12592) @AyodeAwe
- Replace message parsing with throwing more specific exceptions (#12426) @vyasr
- Support conversion to/from cudf in dask.dataframe.core.to_backend (#12380) @rjzamora
[NIGHTLY] v23.06.00: tag_name: v23.06.00a
body: ## 🔗 Links

- [Development Branch](https://github.com/rapidsai/cudf/tree/branch-23.06)
- [Compare with `main` branch](https://github.com/rapidsai/cudf/compare/main...branch-23.06)

## 🚨 Breaking Changes

- Fix batch processing for parquet writer (#13438) @ttnghia
- Use &lt;NA&gt; instead of null to match pandas. (#13415) @bdice
- Remove UNKNOWN_NULL_COUNT (#13372) @vyasr
- Remove default UNKNOWN_NULL_COUNT from cudf::column member functions (#13341) @davidwendt
- Use std::overflow_error when output would exceed column size limit (#13323) @davidwendt
- Remove null mask and null count from column_view constructors (#13311) @vyasr
- Change default value of the `observed=` argument in groupby to `True` to reflect the actual behaviour (#13296) @shwina
- Throw error if UNINITIALIZED is passed to cudf::state_null_count (#13292) @davidwendt
- Remove default null-count parameter from cudf::make_strings_column factory (#13227) @davidwendt
- Remove UNKNOWN_NULL_COUNT where it can be easily computed (#13205) @vyasr
- Update minimum Python version to Python 3.9 (#13196) @shwina
- Refactor contiguous_split API into contiguous_split.hpp (#13186) @abellina
- Cleanup Parquet chunked writer (#13094) @ttnghia
- Cleanup ORC chunked writer (#13091) @ttnghia
- Raise `NotImplementedError` when attempting to construct cuDF objects from timezone-aware datetimes (#13086) @shwina
- Remove deprecated regex functions from libcudf (#13067) @davidwendt
- [REVIEW] Upgrade to `arrow-11` (#12757) @galipremsagar
- Implement Python drop_duplicates with cudf::stable_distinct. (#11656) @brandon-b-miller

## 🐛 Bug Fixes

- Fix valid count computation in offset_bitmask_binop kernel (#13489) @davidwendt
- Fix writing of ORC files with empty rowgroups (#13466) @vuule
- Fix cudf::repeat logic when count is zero (#13459) @davidwendt
- Fix batch processing for parquet writer (#13438) @ttnghia
- Fix invalid use of std::exclusive_scan in Parquet writer (#13434) @etseidl
- Patch numba if it is imported first to ensure minor version compatibility works. (#13433) @bdice
- Fix cudf::strings::replace_with_backrefs hang on empty match result (#13418) @davidwendt
- Use &lt;NA&gt; instead of null to match pandas. (#13415) @bdice
- Fix tokenize with non-space delimiter (#13403) @shwina
- Fix groupby head/tail for empty dataframe (#13398) @shwina
- Default to closed=&quot;right&quot; in `IntervalIndex` constructor (#13394) @shwina
- Correctly reorder and reindex scan groupbys with null keys (#13389) @wence-
- Fix unused argument errors in nvcc 11.5 (#13387) @abellina
- Updates needed to work with jitify that leverages libcudacxx (#13383) @robertmaynard
- Fix unused parameter warning/error in parquet/page_data.cu (#13367) @davidwendt
- Fix page size estimation in Parquet writer (#13364) @etseidl
- Fix subword_tokenize error when input contains no tokens (#13320) @davidwendt
- Support gcc 12 as the C++ compiler (#13316) @robertmaynard
- Correctly set bitmask size in `from_column_view` (#13315) @wence-
- Fix approach to detecting assignment for gte/lte operators (#13285) @vyasr
- Fix parquet schema interpretation issue (#13277) @hyperbolic2346
- Fix 64bit shift bug in avro reader (#13276) @karthikeyann
- Fix unused variables/parameters in parquet/writer_impl.cu (#13263) @davidwendt
- Clean up buffers in case AssertionError (#13262) @razajafri
- Allow empty input table in ast `compute_column` (#13245) @wence-
- Fix structs_column_wrapper constructors to copy input column wrappers (#13243) @davidwendt
- Fix the row index stream order in ORC reader (#13242) @vuule
- Make `is_decompression_disabled` and `is_compression_disabled` thread-safe (#13240) @vuule
- Add [[maybe_unused]] to nvbench environment. (#13219) @bdice
- Fix race in ORC string dictionary creation (#13214) @revans2
- Add scalar argtypes to udf cache keys (#13194) @brandon-b-miller
- Fix unused parameter warning/error in grouped_rolling.cu (#13192) @davidwendt
- Avoid skbuild 0.17.2 which affected the cmake -DPython_LIBRARY string (#13188) @sevagh
- Fix `hostdevice_vector::subspan` (#13187) @ttnghia
- Use custom nvbench entry point to ensure `cudf::nvbench_base_fixture` usage (#13183) @robertmaynard
- Fix slice_strings to return empty strings for stop &lt; start indices (#13178) @davidwendt
- Allow compilation with any GTest version 1.11+ (#13153) @robertmaynard
- Fix a few clang-format style check errors (#13146) @davidwendt
- [REVIEW] Fix `Series` and `DataFrame` constructors to validate index lengths (#13122) @galipremsagar
- Fix hash join when the input tables have nulls on only one side (#13120) @ttnghia
- Fix GPU_ARCHS setting in Java CMake build and CMAKE_CUDA_ARCHITECTURES in Python package build. (#13117) @davidwendt
- Adds checks to make sure json reader won&#39;t overflow (#13115) @elstehle
- Fix `null_count` of columns returned by `chunked_parquet_reader` (#13111) @vuule
- Fixes sliced list and struct column bug  in JSON chunked writer (#13108) @karthikeyann
- [REVIEW] Fix missing confluent kafka version (#13101) @galipremsagar
- Use make_empty_lists_column instead of make_empty_column(type_id::LIST) (#13099) @davidwendt
- Raise `NotImplementedError` when attempting to construct cuDF objects from timezone-aware datetimes (#13086) @shwina
- Fix column selection `read_parquet` benchmarks (#13082) @vuule
- Fix bugs in iterative groupby apply algorithm (#13078) @brandon-b-miller
- Add algorithm include in data_sink.hpp (#13068) @ahendriksen
- Fix tests/identify_stream_usage.cpp (#13066) @ahendriksen
- Prevent overflow with `skip_rows` in ORC and Parquet readers (#13063) @vuule
- Add except declaration in Cython interface for regex_program::create (#13054) @davidwendt
- [REVIEW] Fix branch version in CI scripts (#13029) @galipremsagar
- Fix OOB memory access in CSV reader when reading without NA values (#13011) @vuule
- Fix read_avro() skip_rows and num_rows. (#12912) @tpn
- Purge nonempty nulls from byte_cast list outputs. (#11971) @bdice
- Fix consumption of CPU-backed interchange protocol dataframes (#11392) @shwina

## 🚀 New Features

- Remove numba JIT kernel usage from dataframe copy tests (#13385) @brandon-b-miller
- Add JNI for ORC/Parquet writer compression statistics (#13376) @ttnghia
- Use _compile_or_get in JIT groupby apply (#13350) @brandon-b-miller
- cuDF numba cuda 12 updates (#13337) @brandon-b-miller
- Add tz_convert method to convert between timestamps (#13328) @shwina
- Optionally return compression statistics from ORC and Parquet writers (#13294) @vuule
- Support the case=False argument to str.contains (#13290) @shwina
- Add an event handler for ColumnVector.close (#13279) @abellina
- JNI api for cudf::chunked_pack (#13278) @abellina
- Implement a chunked_pack API (#13260) @abellina
- Update cudf recipes to use GTest version to &gt;=1.13 (#13207) @robertmaynard
- JNI changes for range-extents in window functions. (#13199) @mythrocks
- Add support for DatetimeTZDtype and tz_localize (#13163) @shwina
- Add IS_NULL operator to AST (#13145) @karthikeyann
- STRING order-by column for RANGE window functions (#13143) @mythrocks
- Update `contains_table` to experimental row hasher and equality comparator (#13119) @divyegala
- Automatically select `GroupBy.apply` algorithm based on if the UDF is jittable (#13113) @brandon-b-miller
- Refactor Parquet chunked writer (#13076) @ttnghia
- Add Python bindings for string literal support in AST (#13073) @karthikeyann
- Add Java bindings for string literal support in AST (#13072) @karthikeyann
- Add string scalar support in AST (#13061) @karthikeyann
- Log cuIO warnings using the libcudf logger (#13043) @vuule
- Update `mixed_join` to use experimental row hasher and comparator (#13028) @divyegala
- Support structs of lists in row lexicographic comparator (#13005) @ttnghia
- Adding `hostdevice_span` that is a span createable from `hostdevice_vector` (#12981) @hyperbolic2346
- Add nvtext::minhash function (#12961) @davidwendt
- Support lists of structs in row lexicographic comparator (#12953) @ttnghia
- Update `join` to use experimental row hasher and comparator (#12787) @divyegala
- Implement Python drop_duplicates with cudf::stable_distinct. (#11656) @brandon-b-miller

## 🛠️ Improvements

- Bump typing_extensions minimum version to 4.0.0 (#13618) @shwina
- Drop extraneous dependencies from cudf conda recipe. (#13406) @bdice
- Handle some corner-cases in indexing with boolean masks (#13402) @wence-
- Add cudf::stable_distinct public API, tests, and benchmarks. (#13392) @bdice
- [JNI] Pass this ColumnVector to the onClosed event handler (#13386) @abellina
- Fix JNI method with mismatched parameter list (#13384) @ttnghia
- Split up experimental_row_operator_tests.cu to improve its compile time (#13382) @davidwendt
- Deprecate cudf::strings::slice_strings APIs that accept delimiters (#13373) @davidwendt
- Remove UNKNOWN_NULL_COUNT (#13372) @vyasr
- Move some nvtext benchmarks to nvbench (#13368) @davidwendt
- run docs nightly too (#13366) @AyodeAwe
- Add warning for default `dtype` parameter in `get_dummies` (#13365) @galipremsagar
- Add log messages about kvikIO compatibility mode (#13363) @vuule
- Switch back to using primary shared-action-workflows branch (#13362) @vyasr
- Deprecate `StringIndex` and use `Index` instead (#13361) @galipremsagar
- Ensure columns have valid null counts in CUDF JNI. (#13355) @mythrocks
- Expunge most uses of `TypeVar(bound=&quot;Foo&quot;)` (#13346) @wence-
- Remove all references to UNKNOWN_NULL_COUNT in Python (#13345) @vyasr
- Improve `distinct_count` with `cuco::static_set` (#13343) @PointKernel
- Fix  `contiguous_split` performance (#13342) @ttnghia
- Remove default UNKNOWN_NULL_COUNT from cudf::column member functions (#13341) @davidwendt
- Update mypy to 1.3 (#13340) @wence-
- [Java] Purge non-empty nulls when setting validity (#13335) @razajafri
- Add row-wise filtering step to `read_parquet` (#13334) @rjzamora
- Performance improvement for nvtext::minhash (#13333) @davidwendt
- Fix some libcudf functions to set the null count on returning columns (#13331) @davidwendt
- Change cudf::detail::concatenate_masks to return null-count (#13330) @davidwendt
- Move `meta` calculation in `dask_cudf.read_parquet` (#13327) @rjzamora
- Changes to support Numpy &gt;= 1.24 (#13325) @shwina
- Use std::overflow_error when output would exceed column size limit (#13323) @davidwendt
- Clean up `distinct_count` benchmark (#13321) @PointKernel
- Fix gtest pinning to 1.13.0. (#13319) @bdice
- Remove null mask and null count from column_view constructors (#13311) @vyasr
- Address feedback from 13289 (#13306) @vyasr
- Change default value of the `observed=` argument in groupby to `True` to reflect the actual behaviour (#13296) @shwina
- First check for `BaseDtype` when infering the data type of an arbitrary object (#13295) @shwina
- Throw error if UNINITIALIZED is passed to cudf::state_null_count (#13292) @davidwendt
- Support CUDA 12.0 for pip wheels (#13289) @divyegala
- Refactor `transform_lists_of_structs` in `row_operators.cu` (#13288) @ttnghia
- Branch 23.06 merge 23.04 (#13286) @vyasr
- Update cupy dependency (#13284) @vyasr
- Performance improvement in cudf::strings::join_strings for long strings (#13283) @davidwendt
- Fix unused variables and functions (#13275) @karthikeyann
- Fix integer overflow in `partition` `scatter_map` construction (#13272) @wence-
- Numba 0.57 compatibility fixes (#13271) @gmarkall
- Performance improvement in cudf::strings::all_characters_of_type (#13259) @davidwendt
- Remove default null-count parameter from some libcudf factory functions (#13258) @davidwendt
- Roll our own generate_string() because mimesis&#39; has gone away (#13257) @shwina
- Build wheels using new single image workflow (#13249) @vyasr
- Enable sccache hits from local builds (#13248) @AyodeAwe
- Revert to branch-23.06 for shared-action-workflows (#13247) @shwina
- Introduce `pandas_compatible` option in `cudf` (#13241) @galipremsagar
- Add metadata_builder helper class (#13232) @abellina
- Use libkvikio conda packages in libcudf, add explicit libcufile dependency. (#13231) @bdice
- Remove default null-count parameter from cudf::make_strings_column factory (#13227) @davidwendt
- Performance improvement in cudf::strings::find/rfind for long strings (#13226) @davidwendt
- Add chunked reader benchmark (#13223) @SrikarVanavasam
- Set the null count in output columns in the CSV reader (#13221) @vuule
- Skip Non-Empty nulls tests for the nightly build just like we skip CuFileTest and CudaFatalTest (#13213) @razajafri
- Fix string_scalar stream usage in write_json.cu (#13212) @davidwendt
- Use canonicalized name for dlopen&#39;d libraries (libcufile) (#13210) @shwina
- Refactor pinned memory vector and ORC+Parquet writers (#13206) @ttnghia
- Remove UNKNOWN_NULL_COUNT where it can be easily computed (#13205) @vyasr
- Optimization to decoding of parquet level streams (#13203) @nvdbaranec
- Clean up and simplify `gpuDecideCompression` (#13202) @vuule
- Use std::array for a statically sized vector in `create_serialized_trie` (#13201) @vuule
- Update minimum Python version to Python 3.9 (#13196) @shwina
- Refactor contiguous_split API into contiguous_split.hpp (#13186) @abellina
- Remove usage of rapids-get-rapids-version-from-git (#13184) @jjacobelli
- Enable mixed-dtype decimal/scalar binary operations (#13171) @shwina
- Split up unique_count.cu to improve build time (#13169) @davidwendt
- Use nvtx3 includes in string examples. (#13165) @bdice
- Change some .cu gtest files to .cpp (#13155) @davidwendt
- Remove wheel pytest verbosity (#13151) @sevagh
- Fix libcudf to always pass null-count to set_null_mask (#13149) @davidwendt
- Fix gtests to always pass null-count to set_null_mask calls (#13148) @davidwendt
- Optimize JSON writer (#13144) @karthikeyann
- Performance improvement for libcudf upper/lower conversion for long strings (#13142) @davidwendt
- [REVIEW] Deprecate `pad` and `backfill` methods (#13140) @galipremsagar
- Use CTAD instead of functions in ProtobufReader (#13135) @vuule
- Remove more instances of `UNKNOWN_NULL_COUNT` (#13134) @vyasr
- Update clang-format to 16.0.1. (#13133) @bdice
- Add log messages about cuIO&#39;s nvCOMP and cuFile use (#13132) @vuule
- Branch 23.06 merge 23.04 (#13131) @vyasr
- Compute null-count in cudf::detail::slice (#13124) @davidwendt
- Use ARC V2 self-hosted runners for GPU jobs (#13123) @jjacobelli
- Set null-count in linked_column_view conversion operator (#13121) @davidwendt
- Adding ifdefs around nvcc-specific pragmas (#13110) @hyperbolic2346
- Add null-count parameter to json experimental parse_data utility (#13107) @davidwendt
- Remove uses-setup-env-vars (#13105) @vyasr
- Explicitly compute null count in concatenate APIs (#13104) @vyasr
- Replace unnecessary uses of `UNKNOWN_NULL_COUNT` (#13102) @vyasr
- Performance improvement for cudf::string_view::find functions (#13100) @davidwendt
- Use `.element()` instead of `.data()` for window range calculations (#13095) @mythrocks
- Cleanup Parquet chunked writer (#13094) @ttnghia
- Fix unused variable error/warning in page_data.cu (#13093) @davidwendt
- Cleanup ORC chunked writer (#13091) @ttnghia
- Remove using namespace cudf; from libcudf gtests source (#13089) @davidwendt
- Change cudf::test::make_null_mask to also return null-count (#13081) @davidwendt
- Resolved automerger from `branch-23.04` to `branch-23.06` (#13080) @galipremsagar
- Assert for non-empty nulls (#13071) @razajafri
- Remove deprecated regex functions from libcudf (#13067) @davidwendt
- Refactor `cudf::detail::sorted_order` (#13062) @ttnghia
- Improve performance of slice_strings for long strings (#13057) @davidwendt
- Reduce shared memory usage in gpuComputePageSizes by 50% (#13047) @nvdbaranec
- [REVIEW] Add notes to performance comparisons notebook (#13044) @galipremsagar
- Enable binary operations between scalars and columns of differing decimal types (#13034) @shwina
- Remove console output from some libcudf gtests (#13027) @davidwendt
- Remove underscore in build string. (#13025) @bdice
- Bump up JNI version 23.06.0-SNAPSHOT (#13021) @pxLi
- Fix auto merger from `branch-23.04` to `branch-23.06` (#13009) @galipremsagar
- Reduce peak memory use when writing compressed ORC files. (#12963) @vuule
- Add nvtx annotatations to groupby methods (#12941) @wence-
- Compute column sizes in Parquet preprocess with single kernel (#12931) @SrikarVanavasam
- Add Python bindings for time zone data (TZiF) reader (#12826) @shwina
- Optimize set-like operations (#12769) @ttnghia
- [REVIEW] Upgrade to `arrow-11` (#12757) @galipremsagar
- Add empty test files for test reorganization (#12288) @shwina
v23.02.00: tag_name: v23.02.00
body: ## 🚨 Breaking Changes

- Pin `dask` and `distributed` for release (#12695) @galipremsagar
- Change ways to access `ptr` in `Buffer` (#12587) @galipremsagar
- Remove column names (#12578) @vuule
- Default `cudf::io::read_json` to nested JSON parser (#12544) @vuule
- Switch `engine=cudf` to the new `JSON` reader (#12509) @galipremsagar
- Add trailing comma support for nested JSON reader (#12448) @karthikeyann
- Upgrade to `arrow-10.0.1` (#12327) @galipremsagar
- Fail loudly to avoid data corruption with unsupported input in `read_orc` (#12325) @vuule
- CSV, JSON reader to infer integer column with nulls as int64 instead of float64 (#12309) @karthikeyann
- Remove deprecated code for 23.02 (#12281) @vyasr
- Null element for parsing error in numeric types in JSON, CSV reader (#12272) @karthikeyann
- Purge non-empty nulls for `superimpose_nulls` and `push_down_nulls` (#12239) @ttnghia
- Rename `cudf::structs::detail::superimpose_parent_nulls` APIs (#12230) @ttnghia
- Remove JIT type names, refactor id_to_type. (#12158) @bdice
- Floor division uses integer division for integral arguments (#12131) @wence-

## 🐛 Bug Fixes

- Fix a mask data corruption in UDF (#12647) @galipremsagar
- pre-commit: Update isort version to 5.12.0 (#12645) @wence-
- tests: Skip cuInit tests if cuda-gdb is not found or not working (#12644) @wence-
- Revert regex program java APIs and tests (#12639) @cindyyuanjiang
- Fix leaks in ColumnVectorTest (#12625) @jlowe
- Handle when spillable buffers own each other (#12607) @madsbk
- Fix incorrect null counts for sliced columns in JCudfSerialization (#12589) @jlowe
- lists: Transfer dtypes correctly through list.get (#12586) @wence-
- timedelta: Don&#39;t go via float intermediates for floordiv (#12585) @wence-
- Fixing BUG, `get_next_chunk()` should use the blocking function `device_read()` (#12584) @madsbk
- Make JNI QuoteStyle accessible outside ai.rapids.cudf (#12572) @mythrocks
- `partition_by_hash()`: support index (#12554) @madsbk
- Mixed Join benchmark bug due to wrong conditional column (#12553) @divyegala
- Update List Lexicographical Comparator (#12538) @divyegala
- Dynamically read PTX version (#12534) @brandon-b-miller
- build.sh switch to use `RAPIDS` magic value (#12525) @robertmaynard
- Loosen runtime arrow pinning (#12522) @vyasr
- Enable metadata transfer for complex types in transpose (#12491) @galipremsagar
- Fix issues with parquet chunked reader (#12488) @nvdbaranec
- Fix missing metadata transfer in concat for `ListColumn` (#12487) @galipremsagar
- Rename libcudf substring source files to slice (#12484) @davidwendt
- Fix compile issue with arrow 10 (#12465) @ttnghia
- Fix List offsets bug in mixed type list column in nested JSON reader (#12447) @karthikeyann
- Fix xfail incompatibilities (#12423) @vyasr
- Fix bug in Parquet column index encoding (#12404) @etseidl
- When building Arrow shared look for a shared OpenSSL (#12396) @robertmaynard
- Fix get_json_object to return empty column on empty input (#12384) @davidwendt
- Pin arrow 9 in testing dependencies to prevent conda solve issues (#12377) @vyasr
- Fix reductions any/all return value for empty input (#12374) @davidwendt
- Fix debug compile errors in parquet.hpp (#12372) @davidwendt
- Purge non-empty nulls in `cudf::make_lists_column` (#12370) @ttnghia
- Use correct memory resource in io::make_column (#12364) @vyasr
- Add code to detect possible malformed page data in parquet files. (#12360) @nvdbaranec
- Fail loudly to avoid data corruption with unsupported input in `read_orc` (#12325) @vuule
- Fix NumericPairIteratorTest for float values (#12306) @davidwendt
- Fixes memory allocation in nested JSON tokenizer (#12300) @elstehle
- Reconstruct dtypes correctly for list aggs of struct columns (#12290) @wence-
- Fix regex \A and \Z to strictly match string begin/end (#12282) @davidwendt
- Fix compile issue in `json_chunked_reader.cpp` (#12280) @ttnghia
- Change reductions any/all to return valid values for empty input (#12279) @davidwendt
- Only exclude join keys that are indices from key columns (#12271) @wence-
- Fix spill to device limit (#12252) @madsbk
- Correct behaviour of sort in `concat` for singleton concatenations (#12247) @wence-
- Purge non-empty nulls for `superimpose_nulls` and `push_down_nulls` (#12239) @ttnghia
- Patch CUB DeviceSegmentedSort and remove workaround (#12234) @davidwendt
- Fix memory leak in udf_string::assign(&amp;&amp;) function (#12206) @davidwendt
- Workaround thrust-copy-if limit in json get_tree_representation (#12190) @davidwendt
- Fix page size calculation in Parquet writer (#12182) @etseidl
- Add cudf::detail::sizes_to_offsets_iterator to allow checking overflow in offsets (#12180) @davidwendt
- Workaround thrust-copy-if limit in wordpiece-tokenizer (#12168) @davidwendt
- Floor division uses integer division for integral arguments (#12131) @wence-

## 📖 Documentation

- Fix link to NVTX (#12598) @sameerz
- Include missing groupby functions in documentation (#12580) @quasiben
- Fix documentation author (#12527) @bdice
- Update libcudf reduction docs for casting output types (#12526) @davidwendt
- Add JSON reader page in user guide (#12499) @GregoryKimball
- Link unsupported iteration API docstrings (#12482) @galipremsagar
- `strings_udf` doc update (#12469) @brandon-b-miller
- Update cudf_assert docs with correct NDEBUG behavior (#12464) @robertmaynard
- Update pre-commit hooks guide (#12395) @bdice
- Update test docs to not use detail comparison utilities (#12332) @PointKernel
- Fix doxygen description for regex_program::compute_working_memory_size (#12329) @davidwendt
- Add eval to docs. (#12322) @vyasr
- Turn on xfail_strict=true (#12244) @wence-
- Update 10 minutes to cuDF (#12114) @wence-

## 🚀 New Features

- Use kvikIO as the default IO backend (#12574) @vuule
- Use `has_nonempty_nulls` instead of `may_contain_non_empty_nulls` in `superimpose_nulls` and `push_down_nulls` (#12560) @ttnghia
- Add strings methods removeprefix and removesuffix (#12557) @davidwendt
- Add `regex_program` java APIs and unit tests (#12548) @cindyyuanjiang
- Default `cudf::io::read_json` to nested JSON parser (#12544) @vuule
- Make string quoting optional on CSV write (#12539) @mythrocks
- Use new nvCOMP API to optimize the compression temp memory size (#12533) @vuule
- Support &quot;values&quot; orient (array of arrays) in Nested JSON reader (#12498) @karthikeyann
- `one_hot_encode` to use experimental row comparators (#12478) @divyegala
- Support %W and %w format specifiers in cudf::strings::to_timestamps (#12475) @davidwendt
- Add JSON Writer (#12474) @karthikeyann
- Refactor `thrust_copy_if` into `cudf::detail::copy_if_safe` (#12455) @ttnghia
- Add trailing comma support for nested JSON reader (#12448) @karthikeyann
- Extract `tokenize_json.hpp` detail header from `src/io/json/nested_json.hpp` (#12432) @ttnghia
- JNI bindings to write CSV (#12425) @mythrocks
- Nested JSON depth benchmark (#12371) @karthikeyann
- Implement `lists::reverse` (#12336) @ttnghia
- Use `device_read` in experimental `read_json` (#12314) @vuule
- Implement JNI for `strings::reverse` (#12283) @ttnghia
- Null element for parsing error in numeric types in JSON, CSV reader (#12272) @karthikeyann
- Add cudf::strings:like function with multiple patterns (#12269) @davidwendt
- Add environment variable to control host memory allocation in `hostdevice_vector` (#12251) @vuule
- Add cudf::strings::reverse function (#12227) @davidwendt
- Selectively use dictionary encoding in Parquet writer (#12211) @etseidl
- Support `replace` in `strings_udf` (#12207) @brandon-b-miller
- Add support to read binary encoded decimals in parquet (#12205) @PointKernel
- Support regex EOL where the string ends with a new-line character (#12181) @davidwendt
- Updating `stream_compaction/unique` to use new row comparators (#12159) @divyegala
- Add device buffer datasource (#12024) @PointKernel
- Implement groupby apply with JIT (#11452) @bwyogatama

## 🛠️ Improvements

- Update shared workflow branches (#12696) @ajschmidt8
- Pin `dask` and `distributed` for release (#12695) @galipremsagar
- Don&#39;t upload `libcudf-example` to Anaconda.org (#12671) @ajschmidt8
- Pin wheel dependencies to same RAPIDS release (#12659) @sevagh
- Use CTK 118/cp310 branch of wheel workflows (#12602) @sevagh
- Change ways to access `ptr` in `Buffer` (#12587) @galipremsagar
- Version a parquet writer xfail (#12579) @galipremsagar
- Remove column names (#12578) @vuule
- Parquet reader optimization to address V100 regression. (#12577) @nvdbaranec
- Add support for `category` dtypes in CSV reader (#12571) @galipremsagar
- Remove `spill_lock` parameter from `SpillableBuffer.get_ptr()` (#12564) @madsbk
- Optimize `cudf::make_lists_column` (#12547) @ttnghia
- Remove `cudf::strings::repeat_strings_output_sizes` from Java and JNI (#12546) @ttnghia
- Test that cuInit is not called when RAPIDS_NO_INITIALIZE is set (#12545) @wence-
- Rework repeat_strings to use sizes-to-offsets utility (#12543) @davidwendt
- Replace exclusive_scan with sizes_to_offsets in cudf::lists::sequences (#12541) @davidwendt
- Rework nvtext::ngrams_tokenize to use sizes-to-offsets utility (#12540) @davidwendt
- Fix binary-ops gtests coded in namespace cudf::test (#12536) @davidwendt
- More `@acquire_spill_lock()` and `as_buffer(..., exposed=False)` (#12535) @madsbk
- Guard CUDA runtime APIs with error checking (#12531) @PointKernel
- Update TODOs from issue 10432. (#12528) @bdice
- Update rapids-cmake definitions version in GitHub Actions style checks. (#12511) @bdice
- Switch `engine=cudf` to the new `JSON` reader (#12509) @galipremsagar
- Fix SUM/MEAN aggregation type support. (#12503) @bdice
- Stop using pandas._testing (#12492) @vyasr
- Fix ROLLING_TEST gtests coded in namespace cudf::test (#12490) @davidwendt
- Fix erroneously skipped ORC ZSTD test (#12486) @vuule
- Rework nvtext::generate_character_ngrams to use make_strings_children (#12480) @davidwendt
- Raise warnings as errors in the test suite (#12468) @vyasr
- Remove `int32` hard-coding in python (#12467) @galipremsagar
- Use cudaMemcpyDefault. (#12466) @bdice
- Update workflows for nightly tests (#12462) @ajschmidt8
- Build CUDA `11.8` and Python `3.10` Packages (#12457) @ajschmidt8
- JNI build image default as cuda11.8 (#12441) @pxLi
- Re-enable `Recently Updated` Check (#12435) @ajschmidt8
- Rework remaining cudf::strings::from_xyz functions to use make_strings_children (#12434) @vuule
- Build wheels alongside conda CI (#12427) @sevagh
- Remove arguments for checking exception messages in Python (#12424) @vyasr
- Clean up cuco usage (#12421) @PointKernel
- Fix warnings in remaining modules (#12406) @vyasr
- Update `ops-bot.yaml` (#12402) @ajschmidt8
- Rework cudf::strings::integers_to_ipv4 to use make_strings_children utility (#12401) @davidwendt
- Use `numpy.empty()` instead of `bytearray` to allocate host memory for spilling (#12399) @madsbk
- Deprecate chunksize from dask_cudf.read_csv (#12394) @rjzamora
- Expose the RMM pool size in JNI (#12390) @revans2
- Fix COPYING_TEST: gtests coded in namespace cudf::test (#12387) @davidwendt
- Rework cudf::strings::url_encode to use make_strings_children utility (#12385) @davidwendt
- Use make_strings_children in parse_data nested json reader (#12382) @karthikeyann
- Fix warnings in test_datetime.py (#12381) @vyasr
- Mixed Join Benchmarks (#12375) @divyegala
- Fix warnings in dataframe.py (#12369) @vyasr
- Update conda recipes. (#12368) @bdice
- Use gpu-latest-1 runner tag (#12366) @bdice
- Rework cudf::strings::from_booleans to use make_strings_children (#12365) @vuule
- Fix warnings in test modules up to test_dataframe.py (#12355) @vyasr
- JSON column performance optimization - struct column nulls (#12354) @karthikeyann
- Accelerate stable-segmented-sort with CUB segmented sort (#12347) @davidwendt
- Add size check to make_offsets_child_column utility (#12345) @davidwendt
- Enable max compression ratio small block optimization for ZSTD (#12338) @vuule
- Fix warnings in test_monotonic.py (#12334) @vyasr
- Improve JSON column creation performance (list offsets) (#12330) @karthikeyann
- Upgrade to `arrow-10.0.1` (#12327) @galipremsagar
- Fix warnings in test_orc.py (#12326) @vyasr
- Fix warnings in test_groupby.py (#12324) @vyasr
- Fix `test_notebooks.sh` (#12323) @ajschmidt8
- Fix transform gtests coded in namespace cudf::test (#12321) @davidwendt
- Fix `check_style.sh` script (#12320) @ajschmidt8
- Rework cudf::strings::from_timestamps to use make_strings_children (#12317) @davidwendt
- Fix warnings in test_index.py (#12313) @vyasr
- Fix warnings in test_multiindex.py (#12310) @vyasr
- CSV, JSON reader to infer integer column with nulls as int64 instead of float64 (#12309) @karthikeyann
- Fix warnings in test_indexing.py (#12305) @vyasr
- Fix warnings in test_joining.py (#12304) @vyasr
- Unpin `dask` and `distributed` for development (#12302) @galipremsagar
- Re-enable `sccache` for Jenkins builds (#12297) @ajschmidt8
- Define needs for pr-builder workflow. (#12296) @bdice
- Forward merge 22.12 into 23.02 (#12294) @vyasr
- Fix warnings in test_stats.py (#12293) @vyasr
- Fix table gtests coded in namespace cudf::test (#12292) @davidwendt
- Change cython for regex calls to use cudf::strings::regex_program (#12289) @davidwendt
- Improved error reporting when reading multiple JSON files (#12285) @vuule
- Deprecate Frame.sum_of_squares (#12284) @vyasr
- Remove deprecated code for 23.02 (#12281) @vyasr
- Clean up handling of max_page_size_bytes in Parquet writer (#12277) @etseidl
- Fix replace gtests coded in namespace cudf::test (#12270) @davidwendt
- Add pandas nullable type support in `Index.to_pandas` (#12268) @galipremsagar
- Rework nvtext::detokenize to use indexalator for row indices (#12267) @davidwendt
- Fix reduction gtests coded in namespace cudf::test (#12257) @davidwendt
- Remove default parameters from cudf::detail::sort function declarations (#12254) @davidwendt
- Add `duplicated` support for `Series`, `DataFrame` and `Index` (#12246) @galipremsagar
- Replace column/table test utilities with macros (#12242) @PointKernel
- Rework cudf::strings::pad and zfill to use make_strings_children (#12238) @davidwendt
- Fix sort gtests coded in namespace cudf::test (#12237) @davidwendt
- Wrapping concat and file writes in `@acquire_spill_lock()` (#12232) @madsbk
- Rename `cudf::structs::detail::superimpose_parent_nulls` APIs (#12230) @ttnghia
- Cover parsing to decimal types in `read_json` tests (#12229) @vuule
- Spill Statistics (#12223) @madsbk
- Use CUDF_JNI_ENABLE_PROFILING to conditionally enable profiling support. (#12221) @bdice
- Clean up of `test_spilling.py` (#12220) @madsbk
- Simplify repetitive boolean logic (#12218) @vuule
- Add `Series.hasnans` and `Index.hasnans` (#12214) @galipremsagar
- Add cudf::strings:udf::replace function (#12210) @davidwendt
- Adds in new java APIs for appending byte arrays to host columnar data (#12208) @revans2
- Remove Python dependencies from Java CI. (#12193) @bdice
- Fix null order in sort-based groupby and improve groupby tests (#12191) @divyegala
- Move strings children functions from cudf/strings/detail/utilities.cuh to new header (#12185) @davidwendt
- Clean up existing JNI scalar to column code (#12173) @revans2
- Remove JIT type names, refactor id_to_type. (#12158) @bdice
- Update JNI version to 23.02.0-SNAPSHOT (#12129) @pxLi
- Minor refactor of cpp/src/io/parquet/page_data.cu (#12126) @etseidl
- Add codespell as a linter (#12097) @benfred
- Enable specifying exceptions in error macros (#12078) @vyasr
- Move `_label_encoding` from Series to Column (#12040) @shwina
- Add GitHub Actions Workflows (#12002) @ajschmidt8
- Consolidate dask-cudf `groupby_agg` calls in one place (#10835) @charlesbluca
v22.12.01: tag_name: v22.12.01
body: ## 🚨 Breaking Changes

- Add JNI for `substring` without &#39;end&#39; parameter. (#12113) @firestarman
- Refactor `purge_nonempty_nulls` (#12111) @ttnghia
- Create an `int8` column in `read_csv` when all elements are missing (#12110) @vuule
- Throw an error when libcudf is built without cuFile and `LIBCUDF_CUFILE_POLICY` is set to `&quot;ALWAYS&quot;` (#12080) @vuule
- Fix type promotion edge cases in numerical binops (#12074) @wence-
- Reduce/Remove reliance on `**kwargs` and `*args` in `IO` readers &amp; writers (#12025) @galipremsagar
- Rollback of `DeviceBufferLike` (#12009) @madsbk
- Remove unused `managed_allocator` (#12005) @vyasr
- Pass column names to `write_csv` instead of `table_metadata` pointer (#11972) @vuule
- Accept const refs instead of const unique_ptr refs in reduce and scan APIs. (#11960) @vyasr
- Default to equal NaNs in make_merge_sets_aggregation. (#11952) @bdice
- Remove validation that requires introspection (#11938) @vyasr
- Trim quotes for non-string values in nested json parsing (#11898) @karthikeyann
- Add tests ensuring that cudf&#39;s default stream is always used (#11875) @vyasr
- Support nested types as groupby keys in libcudf (#11792) @PointKernel
- Default to equal NaNs in make_collect_set_aggregation. (#11621) @bdice
- Removing int8 column option from parquet byte_array writing (#11539) @hyperbolic2346
- part1: Simplify BaseIndex to an abstract class (#10389) @skirui-source

## 🐛 Bug Fixes

- strings_udf: use libcudf caching of character tables (#12343) @wence-
- Fix include line for IO Cython modules (#12250) @vyasr
- Make dask pinning looser (#12231) @vyasr
- Workaround for CUB segmented-sort bug with boolean keys (#12217) @davidwendt
- Fix `from_dict` backend dispatch to match upstream `dask` (#12203) @galipremsagar
- Merge branch-22.10 into branch-22.12 (#12198) @davidwendt
- Fix compression in ORC writer (#12194) @vuule
- Don&#39;t use CMake 3.25.0 as it has a show stopping FindCUDAToolkit bug (#12188) @robertmaynard
- Fix data corruption when reading ORC files with empty stripes (#12160) @vuule
- Fix decimal binary operations (#12142) @galipremsagar
- Ensure dlpack include is provided to cudf interop lib (#12139) @robertmaynard
- Safely allocate `udf_string` pointers in `strings_udf` (#12138) @brandon-b-miller
- Fix/disable jitify lto (#12122) @robertmaynard
- Fix conditional_full_join benchmark (#12121) @GregoryKimball
- Fix regex working-memory-size refactor error (#12119) @davidwendt
- Add in negative size checks for columns (#12118) @revans2
- Add JNI for `substring` without &#39;end&#39; parameter. (#12113) @firestarman
- Fix reading of CSV files with blank second row (#12098) @vuule
- Fix an error in IO with `GzipFile` type (#12085) @galipremsagar
- Workaround groupby aggregate thrust::copy_if overflow (#12079) @davidwendt
- Fix alignment of compressed blocks in ORC writer (#12077) @vuule
- Fix singleton-range `__setitem__` edge case (#12075) @wence-
- Fix type promotion edge cases in numerical binops (#12074) @wence-
- Force using old fmt in nvbench. (#12067) @vyasr
- Fixes List offset bug in Nested JSON reader (#12060) @karthikeyann
- Allow falling back to `shim_60.ptx` by default in `strings_udf` (#12056) @brandon-b-miller
- Force black exclusions for pre-commit. (#12036) @bdice
- Add `memory_usage` &amp; `items` implementation for `Struct` column &amp; dtype (#12033) @galipremsagar
- Reduce/Remove reliance on `**kwargs` and `*args` in `IO` readers &amp; writers (#12025) @galipremsagar
- Fixes bug in csv_reader_options construction in cython (#12021) @karthikeyann
- Fix issues when both `usecols` and `names` options are used in `read_csv` (#12018) @vuule
- Port thrust&#39;s pinned_allocator to cudf, since Thrust 1.17 removes the type (#12004) @robertmaynard
- Revert &quot;Replace most of preprocessor usage in nvcomp adapter with `constexpr`&quot; (#11999) @vuule
- Fix bug where `df.loc` resulting in single row could give wrong index (#11998) @eriknw
- Switch to DISABLE_DEPRECATION_WARNINGS to match other RAPIDS projects (#11989) @robertmaynard
- Fix maximum page size estimate in Parquet writer (#11962) @vuule
- Fix local offset handling in bgzip reader (#11918) @upsj
- Fix an issue reading struct-of-list types in Parquet. (#11910) @nvdbaranec
- Fix memcheck error in TypeInference.Timestamp gtest (#11905) @davidwendt
- Fix type casting in Series.__setitem__ (#11904) @wence-
- Fix memcheck error in get_dremel_data (#11903) @davidwendt
- Fixes Unsupported column type error due to empty list columns in Nested JSON reader (#11897) @karthikeyann
- Fix segmented-sort to ignore indices outside the offsets (#11888) @davidwendt
- Fix cudf::stable_sorted_order for NaN and -NaN in FLOAT64 columns (#11874) @davidwendt
- Fix writing of Parquet files with many fragments (#11869) @etseidl
- Fix RangeIndex unary operators. (#11868) @vyasr
- JNI Avoid NPE for reading host binary data (#11865) @revans2
- Fix decimal benchmark input data generation (#11863) @karthikeyann
- Fix pre-commit copyright check (#11860) @galipremsagar
- Fix Parquet support for seconds and milliseconds duration types (#11854) @vuule
- Ensure better compiler cache results between cudf cal-ver branches (#11835) @robertmaynard
- Fix make_column_from_scalar for all-null strings column (#11807) @davidwendt
- Tell jitify_preprocess where to search for libnvrtc (#11787) @robertmaynard
- add V2 page header support to parquet reader (#11778) @etseidl
- Parquet reader: bug fix for a num_rows/skip_rows corner case, w/optimization for nested preprocessing (#11752) @nvdbaranec
- Determine if Arrow has S3 support at runtime in unit test. (#11560) @bdice

## 📖 Documentation

- Use rapidsai CODE_OF_CONDUCT.md (#12166) @bdice
- Add symlinks to notebooks. (#12128) @bdice
- Add `truncate` API to python doc pages (#12109) @galipremsagar
- Update Numba docs links. (#12107) @bdice
- Remove &quot;Multi-GPU with Dask-cuDF&quot; notebook. (#12095) @bdice
- Fix link to c++ developer guide from `CONTRIBUTING.md` (#12084) @brandon-b-miller
- Add pivot_table and crosstab to docs. (#12014) @bdice
- Fix doxygen text for cudf::dictionary::encode (#11991) @davidwendt
- Replace default_stream_value with get_default_stream in docs. (#11985) @vyasr
- Add dtype docs pages and docstrings for `cudf` specific dtypes (#11974) @galipremsagar
- Update Unit Testing in libcudf guidelines to code tests outside the cudf::test namespace (#11959) @davidwendt
- Rename libcudf++ to libcudf. (#11953) @bdice
- Fix documentation referring to removed as_gpu_matrix method. (#11937) @bdice
- Remove &quot;experimental&quot; warning for struct columns in ORC reader and writer (#11880) @vuule
- Initial draft of policies and guidelines for libcudf usage. (#11853) @vyasr
- Add clear indication of non-GPU accelerated parameters in read_json docstring (#11825) @GregoryKimball
- Add developer docs for writing tests (#11199) @vyasr

## 🚀 New Features

- Adds an EventHandler to Java MemoryBuffer to be invoked on close (#12125) @abellina
- Support `+` in `strings_udf` (#12117) @brandon-b-miller
- Support `upper` and `lower` in `strings_udf` (#12099) @brandon-b-miller
- Add wheel builds (#12096) @vyasr
- Allow setting malloc heap size in string udfs (#12094) @brandon-b-miller
- Support `strip`, `lstrip`, and `rstrip` in `strings_udf` (#12091) @brandon-b-miller
- Mark nvcomp zstd compression stable (#12059) @jbrennan333
- Add debug-only onAllocated/onDeallocated to RmmEventHandler (#12054) @abellina
- Enable building against the libarrow contained in pyarrow (#12034) @vyasr
- Add strings `like` jni and native method (#12032) @cindyyuanjiang
- Cleanup common parsing code in JSON, CSV reader (#12022) @karthikeyann
- byte_range support for JSON Lines format (#12017) @karthikeyann
- Minor cleanup of root CMakeLists.txt for better organization (#11988) @robertmaynard
- Add inplace arithmetic operators to `MaskedType` (#11987) @brandon-b-miller
- Implement JNI for chunked Parquet reader (#11961) @ttnghia
- Add method argument to DataFrame.quantile (#11957) @rjzamora
- Add gpu memory watermark apis to JNI (#11950) @abellina
- Adds retryCount to RmmEventHandler.onAllocFailure (#11940) @abellina
- Enable returning string data from UDFs used through `apply` (#11933) @brandon-b-miller
- Switch over to rapids-cmake patches for thrust (#11921) @robertmaynard
- Add strings udf C++ classes and functions for phase II (#11912) @davidwendt
- Trim quotes for non-string values in nested json parsing (#11898) @karthikeyann
- Enable CEC for `strings_udf` (#11884) @brandon-b-miller
- ArrowIPCTableWriter writes en empty batch in the case of an empty table. (#11883) @firestarman
- Implement chunked Parquet reader (#11867) @ttnghia
- Add `read_orc_metadata` to libcudf (#11815) @vuule
- Support nested types as groupby keys in libcudf (#11792) @PointKernel
- Adding feature Truncate to DataFrame and Series (#11435) @VamsiTallam95

## 🛠️ Improvements

- Reduce number of tests marked `spilling` (#12197) @madsbk
- Pin `dask` and `distributed` for release (#12165) @galipremsagar
- Don&#39;t rely on GNU find in headers_test.sh (#12164) @wence-
- Update cp.clip call (#12148) @quasiben
- Enable automatic column projection in groupby().agg (#12124) @rjzamora
- Refactor `purge_nonempty_nulls` (#12111) @ttnghia
- Create an `int8` column in `read_csv` when all elements are missing (#12110) @vuule
- Spilling to host memory (#12106) @madsbk
- First pass of `pd.read_orc` changes in tests (#12103) @galipremsagar
- Expose engine argument in dask_cudf.read_json (#12101) @rjzamora
- Remove CUDA 10 compatibility code. (#12088) @bdice
- Move and update `dask` nigthly install in CI (#12082) @galipremsagar
- Throw an error when libcudf is built without cuFile and `LIBCUDF_CUFILE_POLICY` is set to `&quot;ALWAYS&quot;` (#12080) @vuule
- Remove macros that inspect the contents of exceptions (#12076) @vyasr
- Fix ingest_raw_data performance issue in Nested JSON reader due to RVO (#12070) @karthikeyann
- Remove overflow error during decimal binops (#12063) @galipremsagar
- Change cudf::detail::tdigest to cudf::tdigest::detail (#12050) @davidwendt
- Fix quantile gtests coded in namespace cudf::test (#12049) @davidwendt
- Add support for `DataFrame.from_dict`\`to_dict` and `Series.to_dict` (#12048) @galipremsagar
- Refactor Parquet reader (#12046) @ttnghia
- Forward merge 22.10 into 22.12 (#12045) @vyasr
- Standardize newlines at ends of files. (#12042) @bdice
- Trim trailing whitespace from all files. (#12041) @bdice
- Use nosync policy in gather and scatter implementations. (#12038) @bdice
- Remove smart quotes from all docstrings. (#12035) @bdice
- Update cuda-python dependency to 11.7.1 (#12030) @galipremsagar
- Add cython-lint to pre-commit checks. (#12020) @bdice
- Use pragma once (#12019) @bdice
- New GHA to add issues/prs to project board (#12016) @jarmak-nv
- Add DataFrame.pivot_table. (#12015) @bdice
- Rollback of `DeviceBufferLike` (#12009) @madsbk
- Remove default parameters for nvtext::detail functions (#12007) @davidwendt
- Remove default parameters for cudf::dictionary::detail functions (#12006) @davidwendt
- Remove unused `managed_allocator` (#12005) @vyasr
- Remove default parameters for cudf::strings::detail functions (#12003) @davidwendt
- Remove unnecessary code from dask-cudf _Frame (#12001) @rjzamora
- Ignore python docs build artifacts (#12000) @galipremsagar
- Use rapids-cmake for google benchmark. (#11997) @vyasr
- Leverage rapids_cython for more automated RPATH handling (#11996) @vyasr
- Remove stale labeler (#11995) @raydouglass
- Move protobuf compilation to CMake (#11986) @vyasr
- Replace most of preprocessor usage in nvcomp adapter with `constexpr` (#11980) @vuule
- Add missing noexcepts to column_in_metadata methods (#11973) @vyasr
- Pass column names to `write_csv` instead of `table_metadata` pointer (#11972) @vuule
- Accelerate libcudf segmented sort with CUB segmented sort (#11969) @davidwendt
- Feature/remove default streams (#11967) @vyasr
- Add pool memory resource to libcudf basic example (#11966) @davidwendt
- Fix some libcudf calls to cudf::detail::gather (#11963) @davidwendt
- Accept const refs instead of const unique_ptr refs in reduce and scan APIs. (#11960) @vyasr
- Add deprecation warning for set_allocator. (#11958) @vyasr
- Fix lists and structs gtests coded in namespace cudf::test (#11956) @davidwendt
- Add full page indexes to Parquet writer benchmarks (#11955) @etseidl
- Use gather-based strings factory in cudf::strings::strip (#11954) @davidwendt
- Default to equal NaNs in make_merge_sets_aggregation. (#11952) @bdice
- Add `strip_delimiters` option to `read_text` (#11946) @upsj
- Refactor multibyte_split `output_builder` (#11945) @upsj
- Remove validation that requires introspection (#11938) @vyasr
- Add `.str.find_multiple` API (#11928) @galipremsagar
- Add regex_program class for use with all regex APIs (#11927) @davidwendt
- Enable backend dispatching for Dask-DataFrame creation (#11920) @rjzamora
- Performance improvement in JSON Tree traversal (#11919) @karthikeyann
- Fix some gtests incorrectly coded in namespace cudf::test (part I) (#11917) @davidwendt
- Refactor pad/zfill functions for reuse with strings udf (#11914) @davidwendt
- Add `nanosecond` &amp; `microsecond` to `DatetimeProperties` (#11911) @galipremsagar
- Pin mimesis version in setup.py. (#11906) @bdice
- Error on `ListColumn` or any new unsupported column in `cudf.Index` (#11902) @galipremsagar
- Add thrust output iterator fix (1805) to thrust.patch (#11900) @davidwendt
- Relax `codecov` threshold diff (#11899) @galipremsagar
- Use public APIs in STREAM_COMPACTION_NVBENCH (#11892) @GregoryKimball
- Add coverage for string UDF tests. (#11891) @vyasr
- Provide `data_chunk_source` wrapper for `datasource` (#11886) @upsj
- Handle `multibyte_split` byte_range out-of-bounds offsets on host (#11885) @upsj
- Add tests ensuring that cudf&#39;s default stream is always used (#11875) @vyasr
- Change expect_strings_empty into expect_column_empty libcudf test utility (#11873) @davidwendt
- Add ngroup (#11871) @shwina
- Reduce memory usage in nested JSON parser - tree generation (#11864) @karthikeyann
- Unpin `dask` and `distributed` for development (#11859) @galipremsagar
- Remove unused includes for table/row_operators (#11857) @GregoryKimball
- Use conda-forge&#39;s `pyorc` (#11855) @jakirkham
- Add libcudf strings examples (#11849) @davidwendt
- Remove `cudf_io` namespace alias (#11827) @vuule
- Test/remove thrust vector usage (#11813) @vyasr
- Add BGZIP reader to python `read_text` (#11802) @upsj
- Merge branch-22.10 into branch-22.12 (#11801) @davidwendt
- Fix compile warning from CUDF_FUNC_RANGE in a member function (#11798) @davidwendt
- Update cudf JNI version to 22.12.0-SNAPSHOT (#11764) @pxLi
- Update flake8 to 5.0.4 and use flake8-force to check Cython. (#11736) @bdice
- Add BGZIP multibyte_split benchmark (#11723) @upsj
- Bifurcate Dependency Lists (#11674) @bdice
- Default to equal NaNs in make_collect_set_aggregation. (#11621) @bdice
- Conform &quot;bench_isin&quot; to match generator column names (#11549) @GregoryKimball
- Removing int8 column option from parquet byte_array writing (#11539) @hyperbolic2346
- Add checks for HLG layers in dask-cudf groupby tests (#10853) @charlesbluca
- part1: Simplify BaseIndex to an abstract class (#10389) @skirui-source
- Make all `nvcc` warnings into errors (#8916) @trxcllnt
v22.12.00: tag_name: v22.12.00
body: ## 🚨 Breaking Changes

- Add JNI for `substring` without &#39;end&#39; parameter. (#12113) @firestarman
- Refactor `purge_nonempty_nulls` (#12111) @ttnghia
- Create an `int8` column in `read_csv` when all elements are missing (#12110) @vuule
- Throw an error when libcudf is built without cuFile and `LIBCUDF_CUFILE_POLICY` is set to `&quot;ALWAYS&quot;` (#12080) @vuule
- Fix type promotion edge cases in numerical binops (#12074) @wence-
- Reduce/Remove reliance on `**kwargs` and `*args` in `IO` readers &amp; writers (#12025) @galipremsagar
- Rollback of `DeviceBufferLike` (#12009) @madsbk
- Remove unused `managed_allocator` (#12005) @vyasr
- Pass column names to `write_csv` instead of `table_metadata` pointer (#11972) @vuule
- Accept const refs instead of const unique_ptr refs in reduce and scan APIs. (#11960) @vyasr
- Default to equal NaNs in make_merge_sets_aggregation. (#11952) @bdice
- Remove validation that requires introspection (#11938) @vyasr
- Trim quotes for non-string values in nested json parsing (#11898) @karthikeyann
- Add tests ensuring that cudf&#39;s default stream is always used (#11875) @vyasr
- Support nested types as groupby keys in libcudf (#11792) @PointKernel
- Default to equal NaNs in make_collect_set_aggregation. (#11621) @bdice
- Removing int8 column option from parquet byte_array writing (#11539) @hyperbolic2346
- part1: Simplify BaseIndex to an abstract class (#10389) @skirui-source

## 🐛 Bug Fixes

- Fix include line for IO Cython modules (#12250) @vyasr
- Make dask pinning looser (#12231) @vyasr
- Workaround for CUB segmented-sort bug with boolean keys (#12217) @davidwendt
- Fix `from_dict` backend dispatch to match upstream `dask` (#12203) @galipremsagar
- Merge branch-22.10 into branch-22.12 (#12198) @davidwendt
- Fix compression in ORC writer (#12194) @vuule
- Don&#39;t use CMake 3.25.0 as it has a show stopping FindCUDAToolkit bug (#12188) @robertmaynard
- Fix data corruption when reading ORC files with empty stripes (#12160) @vuule
- Fix decimal binary operations (#12142) @galipremsagar
- Ensure dlpack include is provided to cudf interop lib (#12139) @robertmaynard
- Safely allocate `udf_string` pointers in `strings_udf` (#12138) @brandon-b-miller
- Fix/disable jitify lto (#12122) @robertmaynard
- Fix conditional_full_join benchmark (#12121) @GregoryKimball
- Fix regex working-memory-size refactor error (#12119) @davidwendt
- Add in negative size checks for columns (#12118) @revans2
- Add JNI for `substring` without &#39;end&#39; parameter. (#12113) @firestarman
- Fix reading of CSV files with blank second row (#12098) @vuule
- Fix an error in IO with `GzipFile` type (#12085) @galipremsagar
- Workaround groupby aggregate thrust::copy_if overflow (#12079) @davidwendt
- Fix alignment of compressed blocks in ORC writer (#12077) @vuule
- Fix singleton-range `__setitem__` edge case (#12075) @wence-
- Fix type promotion edge cases in numerical binops (#12074) @wence-
- Force using old fmt in nvbench. (#12067) @vyasr
- Fixes List offset bug in Nested JSON reader (#12060) @karthikeyann
- Allow falling back to `shim_60.ptx` by default in `strings_udf` (#12056) @brandon-b-miller
- Force black exclusions for pre-commit. (#12036) @bdice
- Add `memory_usage` &amp; `items` implementation for `Struct` column &amp; dtype (#12033) @galipremsagar
- Reduce/Remove reliance on `**kwargs` and `*args` in `IO` readers &amp; writers (#12025) @galipremsagar
- Fixes bug in csv_reader_options construction in cython (#12021) @karthikeyann
- Fix issues when both `usecols` and `names` options are used in `read_csv` (#12018) @vuule
- Port thrust&#39;s pinned_allocator to cudf, since Thrust 1.17 removes the type (#12004) @robertmaynard
- Revert &quot;Replace most of preprocessor usage in nvcomp adapter with `constexpr`&quot; (#11999) @vuule
- Fix bug where `df.loc` resulting in single row could give wrong index (#11998) @eriknw
- Switch to DISABLE_DEPRECATION_WARNINGS to match other RAPIDS projects (#11989) @robertmaynard
- Fix maximum page size estimate in Parquet writer (#11962) @vuule
- Fix local offset handling in bgzip reader (#11918) @upsj
- Fix an issue reading struct-of-list types in Parquet. (#11910) @nvdbaranec
- Fix memcheck error in TypeInference.Timestamp gtest (#11905) @davidwendt
- Fix type casting in Series.__setitem__ (#11904) @wence-
- Fix memcheck error in get_dremel_data (#11903) @davidwendt
- Fixes Unsupported column type error due to empty list columns in Nested JSON reader (#11897) @karthikeyann
- Fix segmented-sort to ignore indices outside the offsets (#11888) @davidwendt
- Fix cudf::stable_sorted_order for NaN and -NaN in FLOAT64 columns (#11874) @davidwendt
- Fix writing of Parquet files with many fragments (#11869) @etseidl
- Fix RangeIndex unary operators. (#11868) @vyasr
- JNI Avoid NPE for reading host binary data (#11865) @revans2
- Fix decimal benchmark input data generation (#11863) @karthikeyann
- Fix pre-commit copyright check (#11860) @galipremsagar
- Fix Parquet support for seconds and milliseconds duration types (#11854) @vuule
- Ensure better compiler cache results between cudf cal-ver branches (#11835) @robertmaynard
- Fix make_column_from_scalar for all-null strings column (#11807) @davidwendt
- Tell jitify_preprocess where to search for libnvrtc (#11787) @robertmaynard
- add V2 page header support to parquet reader (#11778) @etseidl
- Parquet reader: bug fix for a num_rows/skip_rows corner case, w/optimization for nested preprocessing (#11752) @nvdbaranec
- Determine if Arrow has S3 support at runtime in unit test. (#11560) @bdice

## 📖 Documentation

- Use rapidsai CODE_OF_CONDUCT.md (#12166) @bdice
- Add symlinks to notebooks. (#12128) @bdice
- Add `truncate` API to python doc pages (#12109) @galipremsagar
- Update Numba docs links. (#12107) @bdice
- Remove &quot;Multi-GPU with Dask-cuDF&quot; notebook. (#12095) @bdice
- Fix link to c++ developer guide from `CONTRIBUTING.md` (#12084) @brandon-b-miller
- Add pivot_table and crosstab to docs. (#12014) @bdice
- Fix doxygen text for cudf::dictionary::encode (#11991) @davidwendt
- Replace default_stream_value with get_default_stream in docs. (#11985) @vyasr
- Add dtype docs pages and docstrings for `cudf` specific dtypes (#11974) @galipremsagar
- Update Unit Testing in libcudf guidelines to code tests outside the cudf::test namespace (#11959) @davidwendt
- Rename libcudf++ to libcudf. (#11953) @bdice
- Fix documentation referring to removed as_gpu_matrix method. (#11937) @bdice
- Remove &quot;experimental&quot; warning for struct columns in ORC reader and writer (#11880) @vuule
- Initial draft of policies and guidelines for libcudf usage. (#11853) @vyasr
- Add clear indication of non-GPU accelerated parameters in read_json docstring (#11825) @GregoryKimball
- Add developer docs for writing tests (#11199) @vyasr

## 🚀 New Features

- Adds an EventHandler to Java MemoryBuffer to be invoked on close (#12125) @abellina
- Support `+` in `strings_udf` (#12117) @brandon-b-miller
- Support `upper` and `lower` in `strings_udf` (#12099) @brandon-b-miller
- Add wheel builds (#12096) @vyasr
- Allow setting malloc heap size in string udfs (#12094) @brandon-b-miller
- Support `strip`, `lstrip`, and `rstrip` in `strings_udf` (#12091) @brandon-b-miller
- Mark nvcomp zstd compression stable (#12059) @jbrennan333
- Add debug-only onAllocated/onDeallocated to RmmEventHandler (#12054) @abellina
- Enable building against the libarrow contained in pyarrow (#12034) @vyasr
- Add strings `like` jni and native method (#12032) @cindyyuanjiang
- Cleanup common parsing code in JSON, CSV reader (#12022) @karthikeyann
- byte_range support for JSON Lines format (#12017) @karthikeyann
- Minor cleanup of root CMakeLists.txt for better organization (#11988) @robertmaynard
- Add inplace arithmetic operators to `MaskedType` (#11987) @brandon-b-miller
- Implement JNI for chunked Parquet reader (#11961) @ttnghia
- Add method argument to DataFrame.quantile (#11957) @rjzamora
- Add gpu memory watermark apis to JNI (#11950) @abellina
- Adds retryCount to RmmEventHandler.onAllocFailure (#11940) @abellina
- Enable returning string data from UDFs used through `apply` (#11933) @brandon-b-miller
- Switch over to rapids-cmake patches for thrust (#11921) @robertmaynard
- Add strings udf C++ classes and functions for phase II (#11912) @davidwendt
- Trim quotes for non-string values in nested json parsing (#11898) @karthikeyann
- Enable CEC for `strings_udf` (#11884) @brandon-b-miller
- ArrowIPCTableWriter writes en empty batch in the case of an empty table. (#11883) @firestarman
- Implement chunked Parquet reader (#11867) @ttnghia
- Add `read_orc_metadata` to libcudf (#11815) @vuule
- Support nested types as groupby keys in libcudf (#11792) @PointKernel
- Adding feature Truncate to DataFrame and Series (#11435) @VamsiTallam95

## 🛠️ Improvements

- Reduce number of tests marked `spilling` (#12197) @madsbk
- Pin `dask` and `distributed` for release (#12165) @galipremsagar
- Don&#39;t rely on GNU find in headers_test.sh (#12164) @wence-
- Update cp.clip call (#12148) @quasiben
- Enable automatic column projection in groupby().agg (#12124) @rjzamora
- Refactor `purge_nonempty_nulls` (#12111) @ttnghia
- Create an `int8` column in `read_csv` when all elements are missing (#12110) @vuule
- Spilling to host memory (#12106) @madsbk
- First pass of `pd.read_orc` changes in tests (#12103) @galipremsagar
- Expose engine argument in dask_cudf.read_json (#12101) @rjzamora
- Remove CUDA 10 compatibility code. (#12088) @bdice
- Move and update `dask` nigthly install in CI (#12082) @galipremsagar
- Throw an error when libcudf is built without cuFile and `LIBCUDF_CUFILE_POLICY` is set to `&quot;ALWAYS&quot;` (#12080) @vuule
- Remove macros that inspect the contents of exceptions (#12076) @vyasr
- Fix ingest_raw_data performance issue in Nested JSON reader due to RVO (#12070) @karthikeyann
- Remove overflow error during decimal binops (#12063) @galipremsagar
- Change cudf::detail::tdigest to cudf::tdigest::detail (#12050) @davidwendt
- Fix quantile gtests coded in namespace cudf::test (#12049) @davidwendt
- Add support for `DataFrame.from_dict`\`to_dict` and `Series.to_dict` (#12048) @galipremsagar
- Refactor Parquet reader (#12046) @ttnghia
- Forward merge 22.10 into 22.12 (#12045) @vyasr
- Standardize newlines at ends of files. (#12042) @bdice
- Trim trailing whitespace from all files. (#12041) @bdice
- Use nosync policy in gather and scatter implementations. (#12038) @bdice
- Remove smart quotes from all docstrings. (#12035) @bdice
- Update cuda-python dependency to 11.7.1 (#12030) @galipremsagar
- Add cython-lint to pre-commit checks. (#12020) @bdice
- Use pragma once (#12019) @bdice
- New GHA to add issues/prs to project board (#12016) @jarmak-nv
- Add DataFrame.pivot_table. (#12015) @bdice
- Rollback of `DeviceBufferLike` (#12009) @madsbk
- Remove default parameters for nvtext::detail functions (#12007) @davidwendt
- Remove default parameters for cudf::dictionary::detail functions (#12006) @davidwendt
- Remove unused `managed_allocator` (#12005) @vyasr
- Remove default parameters for cudf::strings::detail functions (#12003) @davidwendt
- Remove unnecessary code from dask-cudf _Frame (#12001) @rjzamora
- Ignore python docs build artifacts (#12000) @galipremsagar
- Use rapids-cmake for google benchmark. (#11997) @vyasr
- Leverage rapids_cython for more automated RPATH handling (#11996) @vyasr
- Remove stale labeler (#11995) @raydouglass
- Move protobuf compilation to CMake (#11986) @vyasr
- Replace most of preprocessor usage in nvcomp adapter with `constexpr` (#11980) @vuule
- Add missing noexcepts to column_in_metadata methods (#11973) @vyasr
- Pass column names to `write_csv` instead of `table_metadata` pointer (#11972) @vuule
- Accelerate libcudf segmented sort with CUB segmented sort (#11969) @davidwendt
- Feature/remove default streams (#11967) @vyasr
- Add pool memory resource to libcudf basic example (#11966) @davidwendt
- Fix some libcudf calls to cudf::detail::gather (#11963) @davidwendt
- Accept const refs instead of const unique_ptr refs in reduce and scan APIs. (#11960) @vyasr
- Add deprecation warning for set_allocator. (#11958) @vyasr
- Fix lists and structs gtests coded in namespace cudf::test (#11956) @davidwendt
- Add full page indexes to Parquet writer benchmarks (#11955) @etseidl
- Use gather-based strings factory in cudf::strings::strip (#11954) @davidwendt
- Default to equal NaNs in make_merge_sets_aggregation. (#11952) @bdice
- Add `strip_delimiters` option to `read_text` (#11946) @upsj
- Refactor multibyte_split `output_builder` (#11945) @upsj
- Remove validation that requires introspection (#11938) @vyasr
- Add `.str.find_multiple` API (#11928) @galipremsagar
- Add regex_program class for use with all regex APIs (#11927) @davidwendt
- Enable backend dispatching for Dask-DataFrame creation (#11920) @rjzamora
- Performance improvement in JSON Tree traversal (#11919) @karthikeyann
- Fix some gtests incorrectly coded in namespace cudf::test (part I) (#11917) @davidwendt
- Refactor pad/zfill functions for reuse with strings udf (#11914) @davidwendt
- Add `nanosecond` &amp; `microsecond` to `DatetimeProperties` (#11911) @galipremsagar
- Pin mimesis version in setup.py. (#11906) @bdice
- Error on `ListColumn` or any new unsupported column in `cudf.Index` (#11902) @galipremsagar
- Add thrust output iterator fix (1805) to thrust.patch (#11900) @davidwendt
- Relax `codecov` threshold diff (#11899) @galipremsagar
- Use public APIs in STREAM_COMPACTION_NVBENCH (#11892) @GregoryKimball
- Add coverage for string UDF tests. (#11891) @vyasr
- Provide `data_chunk_source` wrapper for `datasource` (#11886) @upsj
- Handle `multibyte_split` byte_range out-of-bounds offsets on host (#11885) @upsj
- Add tests ensuring that cudf&#39;s default stream is always used (#11875) @vyasr
- Change expect_strings_empty into expect_column_empty libcudf test utility (#11873) @davidwendt
- Add ngroup (#11871) @shwina
- Reduce memory usage in nested JSON parser - tree generation (#11864) @karthikeyann
- Unpin `dask` and `distributed` for development (#11859) @galipremsagar
- Remove unused includes for table/row_operators (#11857) @GregoryKimball
- Use conda-forge&#39;s `pyorc` (#11855) @jakirkham
- Add libcudf strings examples (#11849) @davidwendt
- Remove `cudf_io` namespace alias (#11827) @vuule
- Test/remove thrust vector usage (#11813) @vyasr
- Add BGZIP reader to python `read_text` (#11802) @upsj
- Merge branch-22.10 into branch-22.12 (#11801) @davidwendt
- Fix compile warning from CUDF_FUNC_RANGE in a member function (#11798) @davidwendt
- Update cudf JNI version to 22.12.0-SNAPSHOT (#11764) @pxLi
- Update flake8 to 5.0.4 and use flake8-force to check Cython. (#11736) @bdice
- Add BGZIP multibyte_split benchmark (#11723) @upsj
- Bifurcate Dependency Lists (#11674) @bdice
- Default to equal NaNs in make_collect_set_aggregation. (#11621) @bdice
- Conform &quot;bench_isin&quot; to match generator column names (#11549) @GregoryKimball
- Removing int8 column option from parquet byte_array writing (#11539) @hyperbolic2346
- Add checks for HLG layers in dask-cudf groupby tests (#10853) @charlesbluca
- part1: Simplify BaseIndex to an abstract class (#10389) @skirui-source
- Make all `nvcc` warnings into errors (#8916) @trxcllnt
[NIGHTLY] v23.02.00: tag_name: v23.02.00a
body: ## 🔗 Links

- [Development Branch](https://github.com/rapidsai/cudf/tree/branch-23.02)
- [Compare with `main` branch](https://github.com/rapidsai/cudf/compare/main...branch-23.02)

## 🚨 Breaking Changes

- Pin `dask` and `distributed` for release (#12695) @galipremsagar
- Change ways to access `ptr` in `Buffer` (#12587) @galipremsagar
- Remove column names (#12578) @vuule
- Default `cudf::io::read_json` to nested JSON parser (#12544) @vuule
- Switch `engine=cudf` to the new `JSON` reader (#12509) @galipremsagar
- Add trailing comma support for nested JSON reader (#12448) @karthikeyann
- Upgrade to `arrow-10.0.1` (#12327) @galipremsagar
- Fail loudly to avoid data corruption with unsupported input in `read_orc` (#12325) @vuule
- CSV, JSON reader to infer integer column with nulls as int64 instead of float64 (#12309) @karthikeyann
- Remove deprecated code for 23.02 (#12281) @vyasr
- Null element for parsing error in numeric types in JSON, CSV reader (#12272) @karthikeyann
- Purge non-empty nulls for `superimpose_nulls` and `push_down_nulls` (#12239) @ttnghia
- Rename `cudf::structs::detail::superimpose_parent_nulls` APIs (#12230) @ttnghia
- Remove JIT type names, refactor id_to_type. (#12158) @bdice
- Floor division uses integer division for integral arguments (#12131) @wence-

## 🐛 Bug Fixes

- Fix update-version.sh (#12745) @raydouglass
- Fix a mask data corruption in UDF (#12647) @galipremsagar
- pre-commit: Update isort version to 5.12.0 (#12645) @wence-
- tests: Skip cuInit tests if cuda-gdb is not found or not working (#12644) @wence-
- Revert regex program java APIs and tests (#12639) @cindyyuanjiang
- Fix leaks in ColumnVectorTest (#12625) @jlowe
- Handle when spillable buffers own each other (#12607) @madsbk
- Fix incorrect null counts for sliced columns in JCudfSerialization (#12589) @jlowe
- lists: Transfer dtypes correctly through list.get (#12586) @wence-
- timedelta: Don&#39;t go via float intermediates for floordiv (#12585) @wence-
- Fixing BUG, `get_next_chunk()` should use the blocking function `device_read()` (#12584) @madsbk
- Make JNI QuoteStyle accessible outside ai.rapids.cudf (#12572) @mythrocks
- `partition_by_hash()`: support index (#12554) @madsbk
- Mixed Join benchmark bug due to wrong conditional column (#12553) @divyegala
- Update List Lexicographical Comparator (#12538) @divyegala
- Dynamically read PTX version (#12534) @brandon-b-miller
- build.sh switch to use `RAPIDS` magic value (#12525) @robertmaynard
- Loosen runtime arrow pinning (#12522) @vyasr
- Enable metadata transfer for complex types in transpose (#12491) @galipremsagar
- Fix issues with parquet chunked reader (#12488) @nvdbaranec
- Fix missing metadata transfer in concat for `ListColumn` (#12487) @galipremsagar
- Rename libcudf substring source files to slice (#12484) @davidwendt
- Fix compile issue with arrow 10 (#12465) @ttnghia
- Fix List offsets bug in mixed type list column in nested JSON reader (#12447) @karthikeyann
- Fix xfail incompatibilities (#12423) @vyasr
- Fix bug in Parquet column index encoding (#12404) @etseidl
- When building Arrow shared look for a shared OpenSSL (#12396) @robertmaynard
- Fix get_json_object to return empty column on empty input (#12384) @davidwendt
- Pin arrow 9 in testing dependencies to prevent conda solve issues (#12377) @vyasr
- Fix reductions any/all return value for empty input (#12374) @davidwendt
- Fix debug compile errors in parquet.hpp (#12372) @davidwendt
- Purge non-empty nulls in `cudf::make_lists_column` (#12370) @ttnghia
- Use correct memory resource in io::make_column (#12364) @vyasr
- Add code to detect possible malformed page data in parquet files. (#12360) @nvdbaranec
- Fail loudly to avoid data corruption with unsupported input in `read_orc` (#12325) @vuule
- Fix NumericPairIteratorTest for float values (#12306) @davidwendt
- Fixes memory allocation in nested JSON tokenizer (#12300) @elstehle
- Reconstruct dtypes correctly for list aggs of struct columns (#12290) @wence-
- Fix regex \A and \Z to strictly match string begin/end (#12282) @davidwendt
- Fix compile issue in `json_chunked_reader.cpp` (#12280) @ttnghia
- Change reductions any/all to return valid values for empty input (#12279) @davidwendt
- Only exclude join keys that are indices from key columns (#12271) @wence-
- Fix spill to device limit (#12252) @madsbk
- Correct behaviour of sort in `concat` for singleton concatenations (#12247) @wence-
- Purge non-empty nulls for `superimpose_nulls` and `push_down_nulls` (#12239) @ttnghia
- Patch CUB DeviceSegmentedSort and remove workaround (#12234) @davidwendt
- Fix memory leak in udf_string::assign(&amp;&amp;) function (#12206) @davidwendt
- Workaround thrust-copy-if limit in json get_tree_representation (#12190) @davidwendt
- Fix page size calculation in Parquet writer (#12182) @etseidl
- Add cudf::detail::sizes_to_offsets_iterator to allow checking overflow in offsets (#12180) @davidwendt
- Workaround thrust-copy-if limit in wordpiece-tokenizer (#12168) @davidwendt
- Floor division uses integer division for integral arguments (#12131) @wence-

## 📖 Documentation

- Fix link to NVTX (#12598) @sameerz
- Include missing groupby functions in documentation (#12580) @quasiben
- Fix documentation author (#12527) @bdice
- Update libcudf reduction docs for casting output types (#12526) @davidwendt
- Add JSON reader page in user guide (#12499) @GregoryKimball
- Link unsupported iteration API docstrings (#12482) @galipremsagar
- `strings_udf` doc update (#12469) @brandon-b-miller
- Update cudf_assert docs with correct NDEBUG behavior (#12464) @robertmaynard
- Update pre-commit hooks guide (#12395) @bdice
- Update test docs to not use detail comparison utilities (#12332) @PointKernel
- Fix doxygen description for regex_program::compute_working_memory_size (#12329) @davidwendt
- Add eval to docs. (#12322) @vyasr
- Turn on xfail_strict=true (#12244) @wence-
- Update 10 minutes to cuDF (#12114) @wence-

## 🚀 New Features

- Use kvikIO as the default IO backend (#12574) @vuule
- Use `has_nonempty_nulls` instead of `may_contain_non_empty_nulls` in `superimpose_nulls` and `push_down_nulls` (#12560) @ttnghia
- Add strings methods removeprefix and removesuffix (#12557) @davidwendt
- Add `regex_program` java APIs and unit tests (#12548) @cindyyuanjiang
- Default `cudf::io::read_json` to nested JSON parser (#12544) @vuule
- Make string quoting optional on CSV write (#12539) @mythrocks
- Use new nvCOMP API to optimize the compression temp memory size (#12533) @vuule
- Support &quot;values&quot; orient (array of arrays) in Nested JSON reader (#12498) @karthikeyann
- `one_hot_encode` to use experimental row comparators (#12478) @divyegala
- Support %W and %w format specifiers in cudf::strings::to_timestamps (#12475) @davidwendt
- Add JSON Writer (#12474) @karthikeyann
- Refactor `thrust_copy_if` into `cudf::detail::copy_if_safe` (#12455) @ttnghia
- Add trailing comma support for nested JSON reader (#12448) @karthikeyann
- Extract `tokenize_json.hpp` detail header from `src/io/json/nested_json.hpp` (#12432) @ttnghia
- JNI bindings to write CSV (#12425) @mythrocks
- Nested JSON depth benchmark (#12371) @karthikeyann
- Implement `lists::reverse` (#12336) @ttnghia
- Use `device_read` in experimental `read_json` (#12314) @vuule
- Implement JNI for `strings::reverse` (#12283) @ttnghia
- Null element for parsing error in numeric types in JSON, CSV reader (#12272) @karthikeyann
- Add cudf::strings:like function with multiple patterns (#12269) @davidwendt
- Add environment variable to control host memory allocation in `hostdevice_vector` (#12251) @vuule
- Add cudf::strings::reverse function (#12227) @davidwendt
- Selectively use dictionary encoding in Parquet writer (#12211) @etseidl
- Support `replace` in `strings_udf` (#12207) @brandon-b-miller
- Add support to read binary encoded decimals in parquet (#12205) @PointKernel
- Support regex EOL where the string ends with a new-line character (#12181) @davidwendt
- Updating `stream_compaction/unique` to use new row comparators (#12159) @divyegala
- Add device buffer datasource (#12024) @PointKernel
- Implement groupby apply with JIT (#11452) @bwyogatama

## 🛠️ Improvements

- Update shared workflow branches (#12696) @ajschmidt8
- Pin `dask` and `distributed` for release (#12695) @galipremsagar
- Don&#39;t upload `libcudf-example` to Anaconda.org (#12671) @ajschmidt8
- Pin wheel dependencies to same RAPIDS release (#12659) @sevagh
- Use CTK 118/cp310 branch of wheel workflows (#12602) @sevagh
- Change ways to access `ptr` in `Buffer` (#12587) @galipremsagar
- Version a parquet writer xfail (#12579) @galipremsagar
- Remove column names (#12578) @vuule
- Parquet reader optimization to address V100 regression. (#12577) @nvdbaranec
- Add support for `category` dtypes in CSV reader (#12571) @galipremsagar
- Remove `spill_lock` parameter from `SpillableBuffer.get_ptr()` (#12564) @madsbk
- Optimize `cudf::make_lists_column` (#12547) @ttnghia
- Remove `cudf::strings::repeat_strings_output_sizes` from Java and JNI (#12546) @ttnghia
- Test that cuInit is not called when RAPIDS_NO_INITIALIZE is set (#12545) @wence-
- Rework repeat_strings to use sizes-to-offsets utility (#12543) @davidwendt
- Replace exclusive_scan with sizes_to_offsets in cudf::lists::sequences (#12541) @davidwendt
- Rework nvtext::ngrams_tokenize to use sizes-to-offsets utility (#12540) @davidwendt
- Fix binary-ops gtests coded in namespace cudf::test (#12536) @davidwendt
- More `@acquire_spill_lock()` and `as_buffer(..., exposed=False)` (#12535) @madsbk
- Guard CUDA runtime APIs with error checking (#12531) @PointKernel
- Update TODOs from issue 10432. (#12528) @bdice
- Update rapids-cmake definitions version in GitHub Actions style checks. (#12511) @bdice
- Switch `engine=cudf` to the new `JSON` reader (#12509) @galipremsagar
- Fix SUM/MEAN aggregation type support. (#12503) @bdice
- Stop using pandas._testing (#12492) @vyasr
- Fix ROLLING_TEST gtests coded in namespace cudf::test (#12490) @davidwendt
- Fix erroneously skipped ORC ZSTD test (#12486) @vuule
- Rework nvtext::generate_character_ngrams to use make_strings_children (#12480) @davidwendt
- Raise warnings as errors in the test suite (#12468) @vyasr
- Remove `int32` hard-coding in python (#12467) @galipremsagar
- Use cudaMemcpyDefault. (#12466) @bdice
- Update workflows for nightly tests (#12462) @ajschmidt8
- Build CUDA `11.8` and Python `3.10` Packages (#12457) @ajschmidt8
- JNI build image default as cuda11.8 (#12441) @pxLi
- Re-enable `Recently Updated` Check (#12435) @ajschmidt8
- Rework remaining cudf::strings::from_xyz functions to use make_strings_children (#12434) @vuule
- Build wheels alongside conda CI (#12427) @sevagh
- Remove arguments for checking exception messages in Python (#12424) @vyasr
- Clean up cuco usage (#12421) @PointKernel
- Fix warnings in remaining modules (#12406) @vyasr
- Update `ops-bot.yaml` (#12402) @ajschmidt8
- Rework cudf::strings::integers_to_ipv4 to use make_strings_children utility (#12401) @davidwendt
- Use `numpy.empty()` instead of `bytearray` to allocate host memory for spilling (#12399) @madsbk
- Deprecate chunksize from dask_cudf.read_csv (#12394) @rjzamora
- Expose the RMM pool size in JNI (#12390) @revans2
- Fix COPYING_TEST: gtests coded in namespace cudf::test (#12387) @davidwendt
- Rework cudf::strings::url_encode to use make_strings_children utility (#12385) @davidwendt
- Use make_strings_children in parse_data nested json reader (#12382) @karthikeyann
- Fix warnings in test_datetime.py (#12381) @vyasr
- Mixed Join Benchmarks (#12375) @divyegala
- Fix warnings in dataframe.py (#12369) @vyasr
- Update conda recipes. (#12368) @bdice
- Use gpu-latest-1 runner tag (#12366) @bdice
- Rework cudf::strings::from_booleans to use make_strings_children (#12365) @vuule
- Fix warnings in test modules up to test_dataframe.py (#12355) @vyasr
- JSON column performance optimization - struct column nulls (#12354) @karthikeyann
- Accelerate stable-segmented-sort with CUB segmented sort (#12347) @davidwendt
- Add size check to make_offsets_child_column utility (#12345) @davidwendt
- Enable max compression ratio small block optimization for ZSTD (#12338) @vuule
- Fix warnings in test_monotonic.py (#12334) @vyasr
- Improve JSON column creation performance (list offsets) (#12330) @karthikeyann
- Upgrade to `arrow-10.0.1` (#12327) @galipremsagar
- Fix warnings in test_orc.py (#12326) @vyasr
- Fix warnings in test_groupby.py (#12324) @vyasr
- Fix `test_notebooks.sh` (#12323) @ajschmidt8
- Fix transform gtests coded in namespace cudf::test (#12321) @davidwendt
- Fix `check_style.sh` script (#12320) @ajschmidt8
- Rework cudf::strings::from_timestamps to use make_strings_children (#12317) @davidwendt
- Fix warnings in test_index.py (#12313) @vyasr
- Fix warnings in test_multiindex.py (#12310) @vyasr
- CSV, JSON reader to infer integer column with nulls as int64 instead of float64 (#12309) @karthikeyann
- Fix warnings in test_indexing.py (#12305) @vyasr
- Fix warnings in test_joining.py (#12304) @vyasr
- Unpin `dask` and `distributed` for development (#12302) @galipremsagar
- Re-enable `sccache` for Jenkins builds (#12297) @ajschmidt8
- Define needs for pr-builder workflow. (#12296) @bdice
- Forward merge 22.12 into 23.02 (#12294) @vyasr
- Fix warnings in test_stats.py (#12293) @vyasr
- Fix table gtests coded in namespace cudf::test (#12292) @davidwendt
- Change cython for regex calls to use cudf::strings::regex_program (#12289) @davidwendt
- Improved error reporting when reading multiple JSON files (#12285) @vuule
- Deprecate Frame.sum_of_squares (#12284) @vyasr
- Remove deprecated code for 23.02 (#12281) @vyasr
- Clean up handling of max_page_size_bytes in Parquet writer (#12277) @etseidl
- Fix replace gtests coded in namespace cudf::test (#12270) @davidwendt
- Add pandas nullable type support in `Index.to_pandas` (#12268) @galipremsagar
- Rework nvtext::detokenize to use indexalator for row indices (#12267) @davidwendt
- Fix reduction gtests coded in namespace cudf::test (#12257) @davidwendt
- Remove default parameters from cudf::detail::sort function declarations (#12254) @davidwendt
- Add `duplicated` support for `Series`, `DataFrame` and `Index` (#12246) @galipremsagar
- Replace column/table test utilities with macros (#12242) @PointKernel
- Rework cudf::strings::pad and zfill to use make_strings_children (#12238) @davidwendt
- Fix sort gtests coded in namespace cudf::test (#12237) @davidwendt
- Wrapping concat and file writes in `@acquire_spill_lock()` (#12232) @madsbk
- Rename `cudf::structs::detail::superimpose_parent_nulls` APIs (#12230) @ttnghia
- Cover parsing to decimal types in `read_json` tests (#12229) @vuule
- Spill Statistics (#12223) @madsbk
- Use CUDF_JNI_ENABLE_PROFILING to conditionally enable profiling support. (#12221) @bdice
- Clean up of `test_spilling.py` (#12220) @madsbk
- Simplify repetitive boolean logic (#12218) @vuule
- Add `Series.hasnans` and `Index.hasnans` (#12214) @galipremsagar
- Add cudf::strings:udf::replace function (#12210) @davidwendt
- Adds in new java APIs for appending byte arrays to host columnar data (#12208) @revans2
- Remove Python dependencies from Java CI. (#12193) @bdice
- Fix null order in sort-based groupby and improve groupby tests (#12191) @divyegala
- Move strings children functions from cudf/strings/detail/utilities.cuh to new header (#12185) @davidwendt
- Clean up existing JNI scalar to column code (#12173) @revans2
- Remove JIT type names, refactor id_to_type. (#12158) @bdice
- Update JNI version to 23.02.0-SNAPSHOT (#12129) @pxLi
- Minor refactor of cpp/src/io/parquet/page_data.cu (#12126) @etseidl
- Add codespell as a linter (#12097) @benfred
- Enable specifying exceptions in error macros (#12078) @vyasr
- Move `_label_encoding` from Series to Column (#12040) @shwina
- Add GitHub Actions Workflows (#12002) @ajschmidt8
- Consolidate dask-cudf `groupby_agg` calls in one place (#10835) @charlesbluca
v22.10.01: tag_name: v22.10.01
body: ## 🚨 Breaking Changes

- Disable Zstandard decompression on nvCOMP 2.4 and Pascal GPus (#11856) @vuule
- Disable nvCOMP DEFLATE integration (#11811) @vuule
- Fix return type of `Index.isna` &amp; `Index.notna` (#11769) @galipremsagar
- Remove `kwargs` in `read_csv` &amp; `to_csv` (#11762) @galipremsagar
- Fix `cudf::partition*` APIs that do not return offsets for empty output table (#11709) @ttnghia
- Fix regex negated classes to not automatically include new-lines (#11644) @davidwendt
- Update zfill to match Python output (#11634) @davidwendt
- Upgrade `pandas` to `1.5` (#11617) @galipremsagar
- Change default value of `ordered` to `False` in `CategoricalDtype` (#11604) @galipremsagar
- Move cudf::strings::findall_record to cudf::strings::findall (#11575) @davidwendt
- Adding optional parquet reader schema (#11524) @hyperbolic2346
- Deprecate `skiprows` and `num_rows` in `read_orc` (#11522) @galipremsagar
- Remove support for skip_rows / num_rows options in the parquet reader. (#11503) @nvdbaranec
- Drop support for `skiprows` and `num_rows` in `cudf.read_parquet` (#11480) @galipremsagar
- Disable Arrow S3 support by default. (#11470) @bdice
- Convert thrust::optional usages to std::optional (#11455) @robertmaynard
- Remove unused is_struct trait. (#11450) @bdice
- Refactor the `Buffer` class (#11447) @madsbk
- Return empty dataframe when reading an ORC file using empty `columns` option (#11446) @vuule
- Refactor pad_side and strip_type enums into side_type enum (#11438) @davidwendt
- Remove HASH_SERIAL_MURMUR3 / serial32BitMurmurHash3 (#11383) @bdice
- Use the new JSON parser when the experimental reader is selected (#11364) @vuule
- Remove deprecated Series.applymap. (#11031) @bdice
- Remove deprecated expand parameter from str.findall. (#11030) @bdice

## 🐛 Bug Fixes

- Update cuda-python dependency to 11.7.1 (#11994) @shwina
- Fixes bug in temporary decompression space estimation before calling nvcomp (#11879) @abellina
- Handle `ptx` file paths during `strings_udf` import (#11862) @galipremsagar
- Disable Zstandard decompression on nvCOMP 2.4 and Pascal GPus (#11856) @vuule
- Reset `strings_udf` CEC and solve several related issues (#11846) @brandon-b-miller
- Fix  bug in new shuffle-based groupby implementation (#11836) @rjzamora
- Fix `is_valid` checks in `Scalar._binaryop` (#11818) @wence-
- Fix operator `NotImplemented` issue with `numpy` (#11816) @galipremsagar
- Disable nvCOMP DEFLATE integration (#11811) @vuule
- Build `strings_udf` package with other python packages in nightlies (#11808) @brandon-b-miller
- Revert problematic shuffle=explicit-comms changes (#11803) @rjzamora
- Fix regex out-of-bounds write in strided rows logic (#11797) @davidwendt
- Build `cudf` locally before building `strings_udf` conda packages in CI (#11785) @brandon-b-miller
- Fix an issue in cudf::row_bit_count involving structs and lists at multiple levels. (#11779) @nvdbaranec
- Fix return type of `Index.isna` &amp; `Index.notna` (#11769) @galipremsagar
- Fix issue with set-item incase of `list` and `struct` types (#11760) @galipremsagar
- Ensure all libcudf APIs run on cudf&#39;s default stream (#11759) @vyasr
- Resolve dask_cudf failures caused by upstream groupby changes (#11755) @rjzamora
- Fix ORC string sum statistics (#11740) @vuule
- Add `strings_udf` package for python 3.9 (#11730) @brandon-b-miller
- Ensure that all tests launch kernels on cudf&#39;s default stream (#11726) @vyasr
- Don&#39;t assume stream is a compile-time constant expression (#11725) @vyasr
- Fix get_thrust.cmake format at patch command (#11715) @davidwendt
- Fix `cudf::partition*` APIs that do not return offsets for empty output table (#11709) @ttnghia
- Fix cudf::lists::sort_lists for NaN and Infinity values (#11703) @davidwendt
- Modify ORC reader timestamp parsing to match the apache reader behavior (#11699) @vuule
- Fix `DataFrame.from_arrow` to preserve type metadata (#11698) @galipremsagar
- Fix compile error due to missing header (#11697) @ttnghia
- Default to Snappy compression in `to_orc` when using cuDF or Dask (#11690) @vuule
- Fix an issue related to `Multindex` when `group_keys=True` (#11689) @galipremsagar
- Transfer correct dtype to exploded column (#11687) @wence-
- Ignore protobuf generated files in `mypy` checks (#11685) @galipremsagar
- Maintain the index name after `.loc` (#11677) @shwina
- Fix issue with extracting nested column data &amp; dtype preservation (#11671) @galipremsagar
- Ensure that all cudf tests and benchmarks are conda env aware (#11666) @robertmaynard
- Update to Thrust 1.17.2 to fix cub ODR issues (#11665) @robertmaynard
- Fix multi-file remote datasource bug (#11655) @rjzamora
- Fix invalid regex quantifier check to not include alternation (#11654) @davidwendt
- Fix bug in `device_write()`: it uses an incorrect size (#11651) @madsbk
- fixes overflows in benchmarks (#11649) @elstehle
- Fix regex negated classes to not automatically include new-lines (#11644) @davidwendt
- Fix compile error in benchmark nested_json.cpp (#11637) @davidwendt
- Update zfill to match Python output (#11634) @davidwendt
- Removed converted type for INT32 and INT64 since they do not convert (#11627) @hyperbolic2346
- Fix host scalars construction of nested types (#11612) @galipremsagar
- Fix compile warning in nested_json_gpu.cu (#11607) @davidwendt
- Change default value of `ordered` to `False` in `CategoricalDtype` (#11604) @galipremsagar
- Preserve order if necessary when deduping categoricals internally (#11597) @brandon-b-miller
- Add is_timestamp test for leap second (60) (#11594) @davidwendt
- Fix an issue with `to_arrow` when column name type is not a string (#11590) @galipremsagar
- Fix exception in segmented-reduce benchmark (#11588) @davidwendt
- Fix encode/decode of negative timestamps in ORC reader/writer (#11586) @vuule
- Correct distribution data type in `quantiles` benchmark (#11584) @vuule
- Fix multibyte_split benchmark for host buffers (#11583) @upsj
- xfail custreamz display test for now (#11567) @shwina
- Fix JNI for TableWithMeta to use schema_info instead of column_names (#11566) @jlowe
- Reduce code duplication for `dask` &amp; `distributed` nightly/stable installs (#11565) @galipremsagar
- Fix groupby failures in dask_cudf CI (#11561) @rjzamora
- Fix for pivot: error when &#39;values&#39; is a multicharacter string (#11538) @shaswat-indian
- find_package(cudf) + arrow9 usable with cudf build directory (#11535) @robertmaynard
- Fixing crash when writing binary nested data in parquet (#11526) @hyperbolic2346
- Fix for: error when assigning a value to an empty series (#11523) @shaswat-indian
- Fix invalid results from conditional-left-anti-join in debug build (#11517) @davidwendt
- Fix cmake error after upgrading to Arrow 9 (#11513) @ttnghia
- Fix reverse binary operators acting on a host value and cudf.Scalar (#11512) @bdice
- Update parquet fuzz tests to drop support for `skiprows` &amp; `num_rows` (#11505) @galipremsagar
- Use rapids-cmake 22.10 best practice for RAPIDS.cmake location (#11493) @robertmaynard
- Handle some zero-sized corner cases in dlpack interop (#11449) @wence-
- Return empty dataframe when reading an ORC file using empty `columns` option (#11446) @vuule
- libcudf c++ example updated to CPM version 0.35.3 (#11417) @robertmaynard
- Fix regex quantifier check to include capture groups (#11373) @davidwendt
- Fix read_text when byte_range is aligned with field (#11371) @upsj
- Fix to_timestamps truncated subsecond calculation (#11367) @davidwendt
- column: calculate null_count before release()ing the cudf::column (#11365) @wence-

## 📖 Documentation

- Update `guide-to-udfs` notebook (#11861) @brandon-b-miller
- Update docstring for cudf.read_text (#11799) @GregoryKimball
- Add doc section for `list` &amp; `struct` handling (#11770) @galipremsagar
- Document that minimum required CMake version is now 3.23.1 (#11751) @robertmaynard
- Update libcudf documentation build command in DOCUMENTATION.md (#11735) @davidwendt
- Add docs for use of string data to `DataFrame.apply` and `Series.apply` and update guide to UDFs notebook (#11733) @brandon-b-miller
- Enable more Pydocstyle rules (#11582) @bdice
- Remove unused cpp/img folder (#11554) @davidwendt
- Publish C++ developer docs (#11475) @vyasr
- Fix a misalignment in `cudf.get_dummies` docstring (#11443) @galipremsagar
- Update contributing doc to include links to the developer guides (#11390) @davidwendt
- Fix table_view_base doxygen format (#11340) @davidwendt
- Create main developer guide for Python (#11235) @vyasr
- Add developer documentation for benchmarking (#11122) @vyasr
- cuDF error handling document (#7917) @isVoid

## 🚀 New Features

- Add hasNull statistic reading ability to ORC (#11747) @devavret
- Add `istitle` to string UDFs (#11738) @brandon-b-miller
- JSON Column creation in GPU (#11714) @karthikeyann
- Adds option to take explicit nested schema for nested JSON reader (#11682) @elstehle
- Add BGZIP `data_chunk_reader` (#11652) @upsj
- Support DECIMAL order-by for RANGE window functions (#11645) @mythrocks
- changing version of cmake to 3.23.3 (#11619) @hyperbolic2346
- Generate unique keys table in java JNI `contiguousSplitGroups` (#11614) @res-life
- Generic type casting to support the new nested JSON reader (#11613) @elstehle
- JSON tree traversal (#11610) @karthikeyann
- Add casting operators to masked UDFs (#11578) @brandon-b-miller
- Adds type inference and type conversion for leaf-columns to the nested JSON parser (#11574) @elstehle
- Add strings &#39;like&#39; function (#11558) @davidwendt
- Handle hyphen as literal for regex cclass when incomplete range (#11557) @davidwendt
- Enable ZSTD compression in ORC and Parquet writers (#11551) @vuule
- Adds support for json lines format to the nested JSON reader (#11534) @elstehle
- Adding optional parquet reader schema (#11524) @hyperbolic2346
- Adds GPU implementation of JSON-token-stream to JSON-tree (#11518) @karthikeyann
- Add `gdb` pretty-printers for simple types (#11499) @upsj
- Add `create_random_column` function to the data generator (#11490) @vuule
- Add fluent API builder to `data_profile` (#11479) @vuule
- Adds Nested Json benchmark (#11466) @karthikeyann
- Convert thrust::optional usages to std::optional (#11455) @robertmaynard
- Python API for the future experimental JSON reader (#11426) @vuule
- Return schema info from JSON reader (#11419) @vuule
- Add regex ASCII flag support for matching builtin character classes (#11404) @davidwendt
- Truncate parquet column indexes (#11403) @etseidl
- Adds the end-to-end JSON parser implementation (#11388) @elstehle
- Use the new JSON parser when the experimental reader is selected (#11364) @vuule
- Add placeholder for the experimental JSON reader (#11334) @vuule
- Add read-only functions on string dtypes to `DataFrame.apply` and `Series.apply` (#11319) @brandon-b-miller
- Added &#39;crosstab&#39; and &#39;pivot_table&#39; features (#11314) @shaswat-indian
- Quickly error out when trying to build with unsupported nvcc versions (#11297) @robertmaynard
- Adds JSON tokenizer (#11264) @elstehle
- List lexicographic comparator (#11129) @devavret
- Add generic type inference for cuIO (#11121) @PointKernel
- Fully support nested types in `cudf::contains` (#10656) @ttnghia
- Support nested types in `lists::contains` (#10548) @ttnghia

## 🛠️ Improvements

- Pin `dask` and `distributed` for release (#11822) @galipremsagar
- Add examples for Nested JSON reader (#11814) @GregoryKimball
- Support shuffle-based groupby aggregations in dask_cudf (#11800) @rjzamora
- Update strings udf version updater script (#11772) @galipremsagar
- Remove `kwargs` in `read_csv` &amp; `to_csv` (#11762) @galipremsagar
- Pass `dtype` param to avoid `pd.Series` warnings (#11761) @galipremsagar
- Enable `schema_element` &amp; `keep_quotes` support in json reader (#11746) @galipremsagar
- Add ability to construct `ListColumn` when size is `None` (#11745) @galipremsagar
- Reduces memory requirements in JSON parser and adds bytes/s and peak memory usage to benchmarks (#11732) @elstehle
- Add missing copyright headers. (#11712) @bdice
- Fix copyright check issues in pre-commit (#11711) @bdice
- Include decimal in supported types for range window order-by columns (#11710) @mythrocks
- Disable very large column gtest for contiguous-split (#11706) @davidwendt
- Drop split_out=None test from groupby.agg (#11704) @wence-
- Use CubinLinker for CUDA Minor Version Compatibility (#11701) @gmarkall
- Add regex capture-group parameter to auto convert to non-capture groups (#11695) @davidwendt
- Add a `__dataframe__` method to the protocol dataframe object (#11692) @rgommers
- Special-case multibyte_split for single-byte delimiter (#11681) @upsj
- Remove isort exclusions (#11680) @bdice
- Refactor CSV reader benchmarks with nvbench (#11678) @PointKernel
- Check conda recipe headers with pre-commit (#11669) @bdice
- Remove redundant style check for clang-format. (#11668) @bdice
- Add support for `group_keys` in `groupby` (#11659) @galipremsagar
- Fix pandoc pinning. (#11658) @bdice
- Revert removal of skip_rows / num_rows options from the Parquet reader. (#11657) @nvdbaranec
- Update git metadata (#11647) @bdice
- Call set_null_count on a returning column if null-count is known (#11646) @davidwendt
- Fix some libcudf detail calls not passing the stream variable (#11642) @davidwendt
- Update to mypy 0.971 (#11640) @wence-
- Refactor strings strip functor to details header (#11635) @davidwendt
- Fix incorrect `nullCount` in `get_json_object` (#11633) @trxcllnt
- Simplify `hostdevice_vector` (#11631) @upsj
- Refactor parquet writer benchmarks with nvbench (#11623) @PointKernel
- Rework contains_scalar to check nulls at runtime (#11622) @davidwendt
- Fix incorrect memory resource used in rolling temp columns (#11618) @mythrocks
- Upgrade `pandas` to `1.5` (#11617) @galipremsagar
- Move type-dispatcher calls from traits.hpp to traits.cpp (#11616) @davidwendt
- Refactor parquet reader benchmarks with nvbench (#11611) @PointKernel
- Forward-merge branch-22.08 to branch-22.10 (#11608) @bdice
- Use stream in Java API. (#11601) @bdice
- Refactors of public/detail APIs, CUDF_FUNC_RANGE, stream handling. (#11600) @bdice
- Improve ORC writer benchmark with nvbench (#11598) @PointKernel
- Tune multibyte_split kernel (#11587) @upsj
- Move split_utils.cuh to strings/detail (#11585) @davidwendt
- Fix warnings due to compiler regression with `if constexpr` (#11581) @ttnghia
- Add full 24-bit dictionary support to Parquet writer (#11580) @etseidl
- Expose &quot;explicit-comms&quot; option in shuffle-based dask_cudf functions (#11576) @rjzamora
- Move cudf::strings::findall_record to cudf::strings::findall (#11575) @davidwendt
- Refactor dask_cudf groupby to use apply_concat_apply (#11571) @rjzamora
- Add ability to write `list(struct)` columns as `map` type in orc writer (#11568) @galipremsagar
- Add byte_range to multibyte_split benchmark + NVBench refactor (#11562) @upsj
- JNI support for writing binary columns in parquet (#11556) @revans2
- Support additional dictionary bit widths in Parquet writer (#11547) @etseidl
- Refactor string/numeric conversion utilities (#11545) @davidwendt
- Removing unnecessary asserts in parquet tests (#11544) @hyperbolic2346
- Clean up ORC reader benchmarks with NVBench (#11543) @PointKernel
- Reuse MurmurHash3_32 in Parquet page data. (#11528) @bdice
- Add hexadecimal value separators (#11527) @bdice
- Deprecate `skiprows` and `num_rows` in `read_orc` (#11522) @galipremsagar
- Struct support for `NULL_EQUALS` binary operation (#11520) @rwlee
- Bump hadoop-common from 3.2.3 to 3.2.4 in /java (#11516) @dependabot[bot]
- Fix Feather test warning. (#11511) @bdice
- copy_range ballot_syncs to have no execution dependency (#11508) @robertmaynard
- Upgrade to `arrow-9.x` (#11507) @galipremsagar
- Remove support for skip_rows / num_rows options in the parquet reader. (#11503) @nvdbaranec
- Single-pass `multibyte_split` (#11500) @upsj
- Sanitize percentile_approx() output for empty input (#11498) @SrikarVanavasam
- Unpin `dask` and `distributed` for development (#11492) @galipremsagar
- Move SparkMurmurHash3_32 functor. (#11489) @bdice
- Refactor group_nunique.cu to use nullate::DYNAMIC for reduce-by-key functor (#11482) @davidwendt
- Drop support for `skiprows` and `num_rows` in `cudf.read_parquet` (#11480) @galipremsagar
- Add reduction `distinct_count` benchmark (#11473) @ttnghia
- Add groupby `nunique` aggregation benchmark (#11472) @ttnghia
- Disable Arrow S3 support by default. (#11470) @bdice
- Add groupby `max` aggregation benchmark (#11464) @ttnghia
- Extract Dremel encoding code from Parquet (#11461) @vyasr
- Add missing Thrust #includes. (#11457) @bdice
- Make CMake hooks verbose (#11456) @vyasr
- Control Parquet page size through Python API (#11454) @etseidl
- Add control of Parquet column index creation to python (#11453) @etseidl
- Remove unused is_struct trait. (#11450) @bdice
- Refactor the `Buffer` class (#11447) @madsbk
- Refactor pad_side and strip_type enums into side_type enum (#11438) @davidwendt
- Update to Thrust 1.17.0 (#11437) @bdice
- Add in JNI for parsing JSON data and getting the metadata back too. (#11431) @revans2
- Convert byte_array_view to use std::byte (#11424) @hyperbolic2346
- Deprecate unflatten_nested_columns (#11421) @SrikarVanavasam
- Remove HASH_SERIAL_MURMUR3 / serial32BitMurmurHash3 (#11383) @bdice
- Add Spark list hashing Java tests (#11379) @bdice
- Move cmake to the build section. (#11376) @vyasr
- Remove use of CUDA driver API calls from libcudf (#11370) @shwina
- Add column constructor from device_uvector&amp;&amp; (#11356) @SrikarVanavasam
- Remove unused custreamz thirdparty directory (#11343) @vyasr
- Update jni version to 22.10.0-SNAPSHOT (#11338) @pxLi
- Enable using upstream jitify2 (#11287) @shwina
- Cache cudf.Scalar (#11246) @shwina
- Remove deprecated Series.applymap. (#11031) @bdice
- Remove deprecated expand parameter from str.findall. (#11030) @bdice
v22.10.00: tag_name: v22.10.00
body: ## 🚨 Breaking Changes

- Disable Zstandard decompression on nvCOMP 2.4 and Pascal GPus (#11856) @vuule
- Disable nvCOMP DEFLATE integration (#11811) @vuule
- Fix return type of `Index.isna` &amp; `Index.notna` (#11769) @galipremsagar
- Remove `kwargs` in `read_csv` &amp; `to_csv` (#11762) @galipremsagar
- Fix `cudf::partition*` APIs that do not return offsets for empty output table (#11709) @ttnghia
- Fix regex negated classes to not automatically include new-lines (#11644) @davidwendt
- Update zfill to match Python output (#11634) @davidwendt
- Upgrade `pandas` to `1.5` (#11617) @galipremsagar
- Change default value of `ordered` to `False` in `CategoricalDtype` (#11604) @galipremsagar
- Move cudf::strings::findall_record to cudf::strings::findall (#11575) @davidwendt
- Adding optional parquet reader schema (#11524) @hyperbolic2346
- Deprecate `skiprows` and `num_rows` in `read_orc` (#11522) @galipremsagar
- Remove support for skip_rows / num_rows options in the parquet reader. (#11503) @nvdbaranec
- Drop support for `skiprows` and `num_rows` in `cudf.read_parquet` (#11480) @galipremsagar
- Disable Arrow S3 support by default. (#11470) @bdice
- Convert thrust::optional usages to std::optional (#11455) @robertmaynard
- Remove unused is_struct trait. (#11450) @bdice
- Refactor the `Buffer` class (#11447) @madsbk
- Return empty dataframe when reading an ORC file using empty `columns` option (#11446) @vuule
- Refactor pad_side and strip_type enums into side_type enum (#11438) @davidwendt
- Remove HASH_SERIAL_MURMUR3 / serial32BitMurmurHash3 (#11383) @bdice
- Use the new JSON parser when the experimental reader is selected (#11364) @vuule
- Remove deprecated Series.applymap. (#11031) @bdice
- Remove deprecated expand parameter from str.findall. (#11030) @bdice

## 🐛 Bug Fixes

- Fixes bug in temporary decompression space estimation before calling nvcomp (#11879) @abellina
- Handle `ptx` file paths during `strings_udf` import (#11862) @galipremsagar
- Disable Zstandard decompression on nvCOMP 2.4 and Pascal GPus (#11856) @vuule
- Reset `strings_udf` CEC and solve several related issues (#11846) @brandon-b-miller
- Fix  bug in new shuffle-based groupby implementation (#11836) @rjzamora
- Fix `is_valid` checks in `Scalar._binaryop` (#11818) @wence-
- Fix operator `NotImplemented` issue with `numpy` (#11816) @galipremsagar
- Disable nvCOMP DEFLATE integration (#11811) @vuule
- Build `strings_udf` package with other python packages in nightlies (#11808) @brandon-b-miller
- Revert problematic shuffle=explicit-comms changes (#11803) @rjzamora
- Fix regex out-of-bounds write in strided rows logic (#11797) @davidwendt
- Build `cudf` locally before building `strings_udf` conda packages in CI (#11785) @brandon-b-miller
- Fix an issue in cudf::row_bit_count involving structs and lists at multiple levels. (#11779) @nvdbaranec
- Fix return type of `Index.isna` &amp; `Index.notna` (#11769) @galipremsagar
- Fix issue with set-item incase of `list` and `struct` types (#11760) @galipremsagar
- Ensure all libcudf APIs run on cudf&#39;s default stream (#11759) @vyasr
- Resolve dask_cudf failures caused by upstream groupby changes (#11755) @rjzamora
- Fix ORC string sum statistics (#11740) @vuule
- Add `strings_udf` package for python 3.9 (#11730) @brandon-b-miller
- Ensure that all tests launch kernels on cudf&#39;s default stream (#11726) @vyasr
- Don&#39;t assume stream is a compile-time constant expression (#11725) @vyasr
- Fix get_thrust.cmake format at patch command (#11715) @davidwendt
- Fix `cudf::partition*` APIs that do not return offsets for empty output table (#11709) @ttnghia
- Fix cudf::lists::sort_lists for NaN and Infinity values (#11703) @davidwendt
- Modify ORC reader timestamp parsing to match the apache reader behavior (#11699) @vuule
- Fix `DataFrame.from_arrow` to preserve type metadata (#11698) @galipremsagar
- Fix compile error due to missing header (#11697) @ttnghia
- Default to Snappy compression in `to_orc` when using cuDF or Dask (#11690) @vuule
- Fix an issue related to `Multindex` when `group_keys=True` (#11689) @galipremsagar
- Transfer correct dtype to exploded column (#11687) @wence-
- Ignore protobuf generated files in `mypy` checks (#11685) @galipremsagar
- Maintain the index name after `.loc` (#11677) @shwina
- Fix issue with extracting nested column data &amp; dtype preservation (#11671) @galipremsagar
- Ensure that all cudf tests and benchmarks are conda env aware (#11666) @robertmaynard
- Update to Thrust 1.17.2 to fix cub ODR issues (#11665) @robertmaynard
- Fix multi-file remote datasource bug (#11655) @rjzamora
- Fix invalid regex quantifier check to not include alternation (#11654) @davidwendt
- Fix bug in `device_write()`: it uses an incorrect size (#11651) @madsbk
- fixes overflows in benchmarks (#11649) @elstehle
- Fix regex negated classes to not automatically include new-lines (#11644) @davidwendt
- Fix compile error in benchmark nested_json.cpp (#11637) @davidwendt
- Update zfill to match Python output (#11634) @davidwendt
- Removed converted type for INT32 and INT64 since they do not convert (#11627) @hyperbolic2346
- Fix host scalars construction of nested types (#11612) @galipremsagar
- Fix compile warning in nested_json_gpu.cu (#11607) @davidwendt
- Change default value of `ordered` to `False` in `CategoricalDtype` (#11604) @galipremsagar
- Preserve order if necessary when deduping categoricals internally (#11597) @brandon-b-miller
- Add is_timestamp test for leap second (60) (#11594) @davidwendt
- Fix an issue with `to_arrow` when column name type is not a string (#11590) @galipremsagar
- Fix exception in segmented-reduce benchmark (#11588) @davidwendt
- Fix encode/decode of negative timestamps in ORC reader/writer (#11586) @vuule
- Correct distribution data type in `quantiles` benchmark (#11584) @vuule
- Fix multibyte_split benchmark for host buffers (#11583) @upsj
- xfail custreamz display test for now (#11567) @shwina
- Fix JNI for TableWithMeta to use schema_info instead of column_names (#11566) @jlowe
- Reduce code duplication for `dask` &amp; `distributed` nightly/stable installs (#11565) @galipremsagar
- Fix groupby failures in dask_cudf CI (#11561) @rjzamora
- Fix for pivot: error when &#39;values&#39; is a multicharacter string (#11538) @shaswat-indian
- find_package(cudf) + arrow9 usable with cudf build directory (#11535) @robertmaynard
- Fixing crash when writing binary nested data in parquet (#11526) @hyperbolic2346
- Fix for: error when assigning a value to an empty series (#11523) @shaswat-indian
- Fix invalid results from conditional-left-anti-join in debug build (#11517) @davidwendt
- Fix cmake error after upgrading to Arrow 9 (#11513) @ttnghia
- Fix reverse binary operators acting on a host value and cudf.Scalar (#11512) @bdice
- Update parquet fuzz tests to drop support for `skiprows` &amp; `num_rows` (#11505) @galipremsagar
- Use rapids-cmake 22.10 best practice for RAPIDS.cmake location (#11493) @robertmaynard
- Handle some zero-sized corner cases in dlpack interop (#11449) @wence-
- Return empty dataframe when reading an ORC file using empty `columns` option (#11446) @vuule
- libcudf c++ example updated to CPM version 0.35.3 (#11417) @robertmaynard
- Fix regex quantifier check to include capture groups (#11373) @davidwendt
- Fix read_text when byte_range is aligned with field (#11371) @upsj
- Fix to_timestamps truncated subsecond calculation (#11367) @davidwendt
- column: calculate null_count before release()ing the cudf::column (#11365) @wence-

## 📖 Documentation

- Update `guide-to-udfs` notebook (#11861) @brandon-b-miller
- Update docstring for cudf.read_text (#11799) @GregoryKimball
- Add doc section for `list` &amp; `struct` handling (#11770) @galipremsagar
- Document that minimum required CMake version is now 3.23.1 (#11751) @robertmaynard
- Update libcudf documentation build command in DOCUMENTATION.md (#11735) @davidwendt
- Add docs for use of string data to `DataFrame.apply` and `Series.apply` and update guide to UDFs notebook (#11733) @brandon-b-miller
- Enable more Pydocstyle rules (#11582) @bdice
- Remove unused cpp/img folder (#11554) @davidwendt
- Publish C++ developer docs (#11475) @vyasr
- Fix a misalignment in `cudf.get_dummies` docstring (#11443) @galipremsagar
- Update contributing doc to include links to the developer guides (#11390) @davidwendt
- Fix table_view_base doxygen format (#11340) @davidwendt
- Create main developer guide for Python (#11235) @vyasr
- Add developer documentation for benchmarking (#11122) @vyasr
- cuDF error handling document (#7917) @isVoid

## 🚀 New Features

- Add hasNull statistic reading ability to ORC (#11747) @devavret
- Add `istitle` to string UDFs (#11738) @brandon-b-miller
- JSON Column creation in GPU (#11714) @karthikeyann
- Adds option to take explicit nested schema for nested JSON reader (#11682) @elstehle
- Add BGZIP `data_chunk_reader` (#11652) @upsj
- Support DECIMAL order-by for RANGE window functions (#11645) @mythrocks
- changing version of cmake to 3.23.3 (#11619) @hyperbolic2346
- Generate unique keys table in java JNI `contiguousSplitGroups` (#11614) @res-life
- Generic type casting to support the new nested JSON reader (#11613) @elstehle
- JSON tree traversal (#11610) @karthikeyann
- Add casting operators to masked UDFs (#11578) @brandon-b-miller
- Adds type inference and type conversion for leaf-columns to the nested JSON parser (#11574) @elstehle
- Add strings &#39;like&#39; function (#11558) @davidwendt
- Handle hyphen as literal for regex cclass when incomplete range (#11557) @davidwendt
- Enable ZSTD compression in ORC and Parquet writers (#11551) @vuule
- Adds support for json lines format to the nested JSON reader (#11534) @elstehle
- Adding optional parquet reader schema (#11524) @hyperbolic2346
- Adds GPU implementation of JSON-token-stream to JSON-tree (#11518) @karthikeyann
- Add `gdb` pretty-printers for simple types (#11499) @upsj
- Add `create_random_column` function to the data generator (#11490) @vuule
- Add fluent API builder to `data_profile` (#11479) @vuule
- Adds Nested Json benchmark (#11466) @karthikeyann
- Convert thrust::optional usages to std::optional (#11455) @robertmaynard
- Python API for the future experimental JSON reader (#11426) @vuule
- Return schema info from JSON reader (#11419) @vuule
- Add regex ASCII flag support for matching builtin character classes (#11404) @davidwendt
- Truncate parquet column indexes (#11403) @etseidl
- Adds the end-to-end JSON parser implementation (#11388) @elstehle
- Use the new JSON parser when the experimental reader is selected (#11364) @vuule
- Add placeholder for the experimental JSON reader (#11334) @vuule
- Add read-only functions on string dtypes to `DataFrame.apply` and `Series.apply` (#11319) @brandon-b-miller
- Added &#39;crosstab&#39; and &#39;pivot_table&#39; features (#11314) @shaswat-indian
- Quickly error out when trying to build with unsupported nvcc versions (#11297) @robertmaynard
- Adds JSON tokenizer (#11264) @elstehle
- List lexicographic comparator (#11129) @devavret
- Add generic type inference for cuIO (#11121) @PointKernel
- Fully support nested types in `cudf::contains` (#10656) @ttnghia
- Support nested types in `lists::contains` (#10548) @ttnghia

## 🛠️ Improvements

- Pin `dask` and `distributed` for release (#11822) @galipremsagar
- Add examples for Nested JSON reader (#11814) @GregoryKimball
- Support shuffle-based groupby aggregations in dask_cudf (#11800) @rjzamora
- Update strings udf version updater script (#11772) @galipremsagar
- Remove `kwargs` in `read_csv` &amp; `to_csv` (#11762) @galipremsagar
- Pass `dtype` param to avoid `pd.Series` warnings (#11761) @galipremsagar
- Enable `schema_element` &amp; `keep_quotes` support in json reader (#11746) @galipremsagar
- Add ability to construct `ListColumn` when size is `None` (#11745) @galipremsagar
- Reduces memory requirements in JSON parser and adds bytes/s and peak memory usage to benchmarks (#11732) @elstehle
- Add missing copyright headers. (#11712) @bdice
- Fix copyright check issues in pre-commit (#11711) @bdice
- Include decimal in supported types for range window order-by columns (#11710) @mythrocks
- Disable very large column gtest for contiguous-split (#11706) @davidwendt
- Drop split_out=None test from groupby.agg (#11704) @wence-
- Use CubinLinker for CUDA Minor Version Compatibility (#11701) @gmarkall
- Add regex capture-group parameter to auto convert to non-capture groups (#11695) @davidwendt
- Add a `__dataframe__` method to the protocol dataframe object (#11692) @rgommers
- Special-case multibyte_split for single-byte delimiter (#11681) @upsj
- Remove isort exclusions (#11680) @bdice
- Refactor CSV reader benchmarks with nvbench (#11678) @PointKernel
- Check conda recipe headers with pre-commit (#11669) @bdice
- Remove redundant style check for clang-format. (#11668) @bdice
- Add support for `group_keys` in `groupby` (#11659) @galipremsagar
- Fix pandoc pinning. (#11658) @bdice
- Revert removal of skip_rows / num_rows options from the Parquet reader. (#11657) @nvdbaranec
- Update git metadata (#11647) @bdice
- Call set_null_count on a returning column if null-count is known (#11646) @davidwendt
- Fix some libcudf detail calls not passing the stream variable (#11642) @davidwendt
- Update to mypy 0.971 (#11640) @wence-
- Refactor strings strip functor to details header (#11635) @davidwendt
- Fix incorrect `nullCount` in `get_json_object` (#11633) @trxcllnt
- Simplify `hostdevice_vector` (#11631) @upsj
- Refactor parquet writer benchmarks with nvbench (#11623) @PointKernel
- Rework contains_scalar to check nulls at runtime (#11622) @davidwendt
- Fix incorrect memory resource used in rolling temp columns (#11618) @mythrocks
- Upgrade `pandas` to `1.5` (#11617) @galipremsagar
- Move type-dispatcher calls from traits.hpp to traits.cpp (#11616) @davidwendt
- Refactor parquet reader benchmarks with nvbench (#11611) @PointKernel
- Forward-merge branch-22.08 to branch-22.10 (#11608) @bdice
- Use stream in Java API. (#11601) @bdice
- Refactors of public/detail APIs, CUDF_FUNC_RANGE, stream handling. (#11600) @bdice
- Improve ORC writer benchmark with nvbench (#11598) @PointKernel
- Tune multibyte_split kernel (#11587) @upsj
- Move split_utils.cuh to strings/detail (#11585) @davidwendt
- Fix warnings due to compiler regression with `if constexpr` (#11581) @ttnghia
- Add full 24-bit dictionary support to Parquet writer (#11580) @etseidl
- Expose &quot;explicit-comms&quot; option in shuffle-based dask_cudf functions (#11576) @rjzamora
- Move cudf::strings::findall_record to cudf::strings::findall (#11575) @davidwendt
- Refactor dask_cudf groupby to use apply_concat_apply (#11571) @rjzamora
- Add ability to write `list(struct)` columns as `map` type in orc writer (#11568) @galipremsagar
- Add byte_range to multibyte_split benchmark + NVBench refactor (#11562) @upsj
- JNI support for writing binary columns in parquet (#11556) @revans2
- Support additional dictionary bit widths in Parquet writer (#11547) @etseidl
- Refactor string/numeric conversion utilities (#11545) @davidwendt
- Removing unnecessary asserts in parquet tests (#11544) @hyperbolic2346
- Clean up ORC reader benchmarks with NVBench (#11543) @PointKernel
- Reuse MurmurHash3_32 in Parquet page data. (#11528) @bdice
- Add hexadecimal value separators (#11527) @bdice
- Deprecate `skiprows` and `num_rows` in `read_orc` (#11522) @galipremsagar
- Struct support for `NULL_EQUALS` binary operation (#11520) @rwlee
- Bump hadoop-common from 3.2.3 to 3.2.4 in /java (#11516) @dependabot[bot]
- Fix Feather test warning. (#11511) @bdice
- copy_range ballot_syncs to have no execution dependency (#11508) @robertmaynard
- Upgrade to `arrow-9.x` (#11507) @galipremsagar
- Remove support for skip_rows / num_rows options in the parquet reader. (#11503) @nvdbaranec
- Single-pass `multibyte_split` (#11500) @upsj
- Sanitize percentile_approx() output for empty input (#11498) @SrikarVanavasam
- Unpin `dask` and `distributed` for development (#11492) @galipremsagar
- Move SparkMurmurHash3_32 functor. (#11489) @bdice
- Refactor group_nunique.cu to use nullate::DYNAMIC for reduce-by-key functor (#11482) @davidwendt
- Drop support for `skiprows` and `num_rows` in `cudf.read_parquet` (#11480) @galipremsagar
- Add reduction `distinct_count` benchmark (#11473) @ttnghia
- Add groupby `nunique` aggregation benchmark (#11472) @ttnghia
- Disable Arrow S3 support by default. (#11470) @bdice
- Add groupby `max` aggregation benchmark (#11464) @ttnghia
- Extract Dremel encoding code from Parquet (#11461) @vyasr
- Add missing Thrust #includes. (#11457) @bdice
- Make CMake hooks verbose (#11456) @vyasr
- Control Parquet page size through Python API (#11454) @etseidl
- Add control of Parquet column index creation to python (#11453) @etseidl
- Remove unused is_struct trait. (#11450) @bdice
- Refactor the `Buffer` class (#11447) @madsbk
- Refactor pad_side and strip_type enums into side_type enum (#11438) @davidwendt
- Update to Thrust 1.17.0 (#11437) @bdice
- Add in JNI for parsing JSON data and getting the metadata back too. (#11431) @revans2
- Convert byte_array_view to use std::byte (#11424) @hyperbolic2346
- Deprecate unflatten_nested_columns (#11421) @SrikarVanavasam
- Remove HASH_SERIAL_MURMUR3 / serial32BitMurmurHash3 (#11383) @bdice
- Add Spark list hashing Java tests (#11379) @bdice
- Move cmake to the build section. (#11376) @vyasr
- Remove use of CUDA driver API calls from libcudf (#11370) @shwina
- Add column constructor from device_uvector&amp;&amp; (#11356) @SrikarVanavasam
- Remove unused custreamz thirdparty directory (#11343) @vyasr
- Update jni version to 22.10.0-SNAPSHOT (#11338) @pxLi
- Enable using upstream jitify2 (#11287) @shwina
- Cache cudf.Scalar (#11246) @shwina
- Remove deprecated Series.applymap. (#11031) @bdice
- Remove deprecated expand parameter from str.findall. (#11030) @bdice
v22.08.01: tag_name: v22.08.01
body: ## 🚨 Breaking Changes

- Pin `numpy` to `&lt;1.23` (#11824) @galipremsagar
- Remove legacy join APIs (#11274) @vyasr
- Remove `lists::drop_list_duplicates` (#11236) @ttnghia
- Remove Index.replace API (#11131) @vyasr
- Remove deprecated Index methods from Frame (#11073) @vyasr
- Remove public API of cudf.merge_sorted. (#11032) @bdice
- Drop python `3.7` in code-base (#11029) @galipremsagar
- Return empty dataframe when reading a Parquet file using empty `columns` option (#11018) @vuule
- Remove Arrow CUDA IPC code (#10995) @shwina
- Buffer: make `.ptr` read-only (#10872) @madsbk

## 🐛 Bug Fixes

- Fix out-of-bound access in `cudf::detail::label_segments` (#11497) @ttnghia
- Fix `distributed` error related to `loop_in_thread` (#11428) @galipremsagar
- Fix atomic operations on NaN values (#11420) @ttnghia
- Relax arrow pinning to just 8.x and remove cuda build dependency from cudf recipe (#11412) @kkraus14
- Revert &quot;Allow CuPy 11&quot; (#11409) @jakirkham
- Fix `moto` timeouts (#11369) @galipremsagar
- Set `+/-infinity` as the `identity` values for floating-point numbers in device operators `min` and `max` (#11357) @ttnghia
- Fix memory_usage() for `ListSeries` (#11355) @thomcom
- Fix constructing Column from column_view with expired mask (#11354) @shwina
- Handle parquet corner case:  Columns with more rows than are in the row group. (#11353) @nvdbaranec
- Fix `DatetimeIndex` &amp; `TimedeltaIndex` constructors (#11342) @galipremsagar
- Fix unsigned-compare compile warning in IntPow binops (#11339) @davidwendt
- Fix performance issue and add a new code path to `cudf::detail::contains` (#11330) @ttnghia
- Pin `pytorch` to temporarily unblock from `libcupti` errors (#11289) @galipremsagar
- Workaround for nvcomp zstd overwriting blocks for orc due to underestimate of sizes (#11288) @jbrennan333
- Fix inconsistency when hashing two tables in `cudf::detail::contains` (#11284) @ttnghia
- Fix issue related to numpy array and `category` dtype (#11282) @galipremsagar
- Add NotImplementedError when on is specified in DataFrame.join. (#11275) @vyasr
- Fix invalid allocate_like() and empty_like() tests. (#11268) @nvdbaranec
- Returns DataFrame When Concating Along Axis 1 (#11263) @isVoid
- Fix compile error due to missing header (#11257) @ttnghia
- Fix a memory aliasing/crash issue in scatter for lists. (#11254) @nvdbaranec
- Fix `tests/rolling/empty_input_test` (#11238) @ttnghia
- Fix const qualifier when using `host_span&lt;bitmask_type const*&gt;` (#11220) @ttnghia
- Avoid using `nvcompBatchedDeflateDecompressGetTempSizeEx` in cuIO (#11213) @vuule
- Generate benchmark data with correct run length regardless of cardinality (#11205) @vuule
- Fix cumulative count index behavior (#11188) @brandon-b-miller
- Fix assertion in dask_cudf test_struct_explode (#11170) @rjzamora
- Provides a method for the user to remove the hook and re-register the hook in a custom shutdown hook manager (#11161) @res-life
- Fix compatibility issues with pandas 1.4.3 (#11152) @vyasr
- Ensure cuco export set is installed in cmake build (#11147) @jlowe
- Avoid redundant deepcopy in `cudf.from_pandas` (#11142) @galipremsagar
- Fix compile error due to missing header (#11126) @ttnghia
- Fix `__cuda_array_interface__` failures (#11113) @galipremsagar
- Support octal and hex within regex character class pattern (#11112) @davidwendt
- Fix split_re matching logic for word boundaries (#11106) @davidwendt
- Handle multiple files metadata in `read_parquet` (#11105) @galipremsagar
- Fix index alignment for Series objects with repeated index (#11103) @shwina
- FindcuFile now searches in the current CUDA Toolkit location (#11101) @robertmaynard
- Fix regex word boundary logic to include underline (#11099) @davidwendt
- Exclude CudaFatalTest when selecting all Java tests (#11083) @jlowe
- Fix duplicate `cudatoolkit` pinning issue (#11070) @galipremsagar
- Maintain the input index in the result of a groupby-transform (#11068) @shwina
- Fix bug with row count comparison for expect_columns_equivalent(). (#11059) @nvdbaranec
- Fix BPE uninitialized size value for null and empty input strings (#11054) @davidwendt
- Include missing header for usage of `get_current_device_resource()` (#11047) @AtlantaPepsi
- Fix warn_unused_result error in parquet test (#11026) @karthikeyann
- Return empty dataframe when reading a Parquet file using empty `columns` option (#11018) @vuule
- Fix small error in page row count limiting (#10991) @etseidl
- Fix a row index entry error in ORC writer issue (#10989) @vuule
- Fix grouped covariance to require both values to be convertible to double. (#10891) @bdice

## 📖 Documentation

- Defer loading of `custom.js` (#11465) @galipremsagar
- Fix issues with day &amp; night modes in python docs (#11400) @galipremsagar
- Update missing data handling APIs in docs (#11345) @galipremsagar
- Add lists filtering APIs to doxygen group. (#11336) @bdice
- Remove unused import in README sample (#11318) @vyasr
- Note null behavior in `where` docs (#11276) @brandon-b-miller
- Update docstring for spans in `get_row_data_range` (#11271) @vyasr
- Update nvCOMP integration table (#11231) @vuule
- Add dev docs for documentation writing (#11217) @vyasr
- Documentation fix for concatenate (#11187) @dagardner-nv
- Fix unresolved links in markdown (#11173) @karthikeyann
- Fix cudf version in README.md install commands (#11164) @jvanstraten
- Switch `language` from `None` to `&quot;en&quot;` in docs build (#11133) @galipremsagar
- Remove docs mentioning scalar_view since no such class exists. (#11132) @bdice
- Add docstring entry for `DataFrame.value_counts` (#11039) @galipremsagar
- Add docs to rolling var, std, count. (#11035) @bdice
- Fix docs for Numba UDFs. (#11020) @bdice
- Replace column comparison utilities functions with macros (#11007) @karthikeyann
- Fix Doxygen warnings in multiple headers files (#11003) @karthikeyann
- Fix doxygen warnings in utilities/ headers (#10974) @karthikeyann
- Fix Doxygen warnings in table header files (#10964) @karthikeyann
- Fix Doxygen warnings in column header files (#10963) @karthikeyann
- Fix Doxygen warnings in strings / header files (#10937) @karthikeyann
- Generate Doxygen Tag File for Libcudf (#10932) @isVoid
- Fix doxygen warnings in structs, lists headers (#10923) @karthikeyann
- Fix doxygen warnings in fixed_point.hpp (#10922) @karthikeyann
- Fix doxygen warnings in ast/, rolling, tdigest/, wrappers/, dictionary/ headers (#10921) @karthikeyann
- fix doxygen warnings in cudf/io/types.hpp, other header files (#10913) @karthikeyann
- fix doxygen warnings in cudf/io/ avro, csv, json, orc, parquet header files (#10912) @karthikeyann
- Fix doxygen warnings in cudf/*.hpp (#10896) @karthikeyann
- Add missing documentation in aggregation.hpp (#10887) @karthikeyann
- Revise PR template. (#10774) @bdice

## 🚀 New Features

- Change cmake to allow controlling Arrow version via cmake variable (#11429) @kkraus14
- Adding support for list&lt;int8&gt; columns to be written as byte arrays in parquet (#11328) @hyperbolic2346
- Adding byte array view structure (#11322) @hyperbolic2346
- Adding byte_array statistics (#11303) @hyperbolic2346
- Add column indexes to Parquet writer (#11302) @etseidl
- Provide an Option for Default Integer and Floating Bitwidth (#11272) @isVoid
- FST benchmark (#11243) @karthikeyann
- Adds the Finite-State Transducer algorithm (#11242) @elstehle
- Refactor `collect_set` to use `cudf::distinct` and `cudf::lists::distinct` (#11228) @ttnghia
- Treat zstd as stable in nvcomp releases 2.3.2 and later (#11226) @jbrennan333
- Add 24 bit dictionary support to Parquet writer (#11216) @devavret
- Enable positive group indices for extractAllRecord on JNI (#11215) @anthony-chang
- JNI bindings for NTH_ELEMENT window aggregation (#11201) @mythrocks
- Add JNI bindings for extractAllRecord (#11196) @anthony-chang
- Add `cudf.options` (#11193) @isVoid
- Add thrift support for parquet column and offset indexes (#11178) @etseidl
- Adding binary read/write as options for parquet (#11160) @hyperbolic2346
- Support `nth_element` for window functions (#11158) @mythrocks
- Implement `lists::distinct` and `cudf::detail::stable_distinct` (#11149) @ttnghia
- Implement Groupby pct_change (#11144) @skirui-source
- Add JNI for set operations (#11143) @ttnghia
- Remove deprecated PER_THREAD_DEFAULT_STREAM (#11134) @jbrennan333
- Added a Java method to check the existence of a list of keys in a map (#11128) @razajafri
- Feature/python benchmarking (#11125) @vyasr
- Support `nan_equality` in `cudf::distinct` (#11118) @ttnghia
- Added JNI for getMapValueForKeys (#11104) @razajafri
- Refactor `semi_anti_join` (#11100) @ttnghia
- Replace remaining instances of rmm::cuda_stream_default with cudf::default_stream_value (#11082) @jbrennan333
- Adds the Logical Stack algorithm (#11078) @elstehle
- Add doxygen-check pre-commit hook (#11076) @karthikeyann
- Use new nvCOMP API to optimize the decompression temp memory size (#11064) @vuule
- Add Doxygen CI check (#11057) @karthikeyann
- Support `duplicate_keep_option` in `cudf::distinct` (#11052) @ttnghia
- Support set operations (#11043) @ttnghia
- Support for ZLIB compression in ORC writer (#11036) @vuule
- Adding feature swaplevels (#11027) @VamsiTallam95
- Use nvCOMP for ZLIB decompression in ORC reader (#11024) @vuule
- Function for bfill, ffill #9591 (#11022) @Sreekiran096
- Generate group offsets from element labels (#11017) @ttnghia
- Feature axes (#10979) @VamsiTallam95
- Generate group labels from offsets (#10945) @ttnghia
- Add missing cuIO benchmark coverage for duration types (#10933) @vuule
- Dask-cuDF cumulative groupby ops (#10889) @brandon-b-miller
- Reindex Improvements (#10815) @brandon-b-miller
- Implement value_counts for DataFrame (#10813) @martinfalisse

## 🛠️ Improvements

- Pin `numpy` to `&lt;1.23` (#11824) @galipremsagar
- Make Index Join Tests on Default Precisions Deterministic (#11451) @isVoid
- Pin `dask` &amp; `distributed` for release (#11433) @galipremsagar
- Use documented header template for `doxygen` (#11430) @galipremsagar
- Relax arrow version in dev env (#11418) @galipremsagar
- Added Java bindings for Parquet options for binary read (#11410) @razajafri
- Allow CuPy 11 (#11393) @jakirkham
- Improve multibyte_split performance (#11347) @cwharris
- Switch death test to use explicit trap. (#11326) @vyasr
- Add --output-on-failure to ctest args. (#11321) @vyasr
- Consolidate remaining DataFrame/Series APIs (#11315) @vyasr
- Add JNI support for the join_strings API (#11309) @revans2
- Add cupy version to setup.py install_requires (#11306) @vyasr
- removing some unused code (#11305) @hyperbolic2346
- Add test of wildcard selection (#11300) @vyasr
- Update parquet reader to take stream parameter (#11294) @PointKernel
- Spark list hashing (#11292) @bdice
- Remove legacy join APIs (#11274) @vyasr
- Fix `cudf` recipes syntax (#11273) @ajschmidt8
- Fix `cudf` recipe (#11267) @ajschmidt8
- Cleanup config files (#11266) @vyasr
- Run mypy on all packages (#11265) @vyasr
- Update to isort 5.10.1. (#11262) @vyasr
- Consolidate flake8 and pydocstyle configuration (#11260) @vyasr
- Remove redundant black config specifications. (#11258) @vyasr
- Ensure DeprecationWarnings are not introduced via pre-commit (#11255) @wence-
- Optimization to gpu::PreprocessColumnData in parquet reader. (#11252) @nvdbaranec
- Move rolling impl details to detail/ directory. (#11250) @mythrocks
- Remove `lists::drop_list_duplicates` (#11236) @ttnghia
- Use `cudf::lists::distinct` in Python binding (#11234) @ttnghia
- Use `cudf::lists::distinct` in Java binding (#11233) @ttnghia
- Use `cudf::distinct` in Java binding (#11232) @ttnghia
- Pin `dask-cuda` in dev environment (#11229) @galipremsagar
- Remove cruft in map_lookup (#11221) @mythrocks
- Deprecate `skiprows` &amp; `num_rows` in parquet reader (#11218) @galipremsagar
- Remove Frame._index (#11210) @vyasr
- Improve performance for `cudf::contains` when searching for a scalar (#11202) @ttnghia
- Document why Development component is needing for CMake. (#11200) @vyasr
- cleanup unused code in rolling_test.hpp (#11195) @karthikeyann
- Standardize join internals around DataFrame (#11184) @vyasr
- Move character case table declarations from src to detail (#11183) @davidwendt
- Remove usage of Frame in StringMethods (#11181) @vyasr
- Expose get_json_object_options to Python (#11180) @SrikarVanavasam
- Fix decimal128 stats in parquet writer (#11179) @etseidl
- Modify CheckPageRows in parquet_test to use datasources (#11177) @etseidl
- Pin max version of `cuda-python` to `11.7.0` (#11174) @Ethyling
- Refactor and optimize Frame.where (#11168) @vyasr
- Add npos const static member to cudf::string_view (#11166) @davidwendt
- Move _drop_rows_by_label from Frame to IndexedFrame (#11157) @vyasr
- Clean up _copy_type_metadata (#11156) @vyasr
- Add `nvcc` conda package in dev environment (#11154) @galipremsagar
- Struct binary comparison op functionality for spark rapids (#11153) @rwlee
- Refactor inline conditionals. (#11151) @bdice
- Refactor Spark hashing tests (#11145) @bdice
- Add new `_from_data_like_self` factory (#11140) @vyasr
- Update get_cucollections to use rapids-cmake (#11139) @vyasr
- Remove unnecessary extra function for libcudacxx detection (#11138) @vyasr
- Allow initial value for cudf::reduce and cudf::segmented_reduce. (#11137) @SrikarVanavasam
- Remove Index.replace API (#11131) @vyasr
- Move char-type table function declarations from src to detail (#11127) @davidwendt
- Clean up repo root (#11124) @bdice
- Improve print formatting of strings containing newline characters. (#11108) @nvdbaranec
- Fix cudf::string_view::find() to return pos for empty string argument (#11107) @davidwendt
- Forward-merge branch-22.06 to branch-22.08 (#11086) @bdice
- Take iterators by value in clamp.cu. (#11084) @bdice
- Performance improvements for row to column conversions (#11075) @hyperbolic2346
- Remove deprecated Index methods from Frame (#11073) @vyasr
- Use per-page max compressed size estimate for compression (#11066) @devavret
- column to row refactor for performance (#11063) @hyperbolic2346
- Include `skbuild` directory into `build.sh` `clean` operation (#11060) @galipremsagar
- Unpin `dask` &amp; `distributed` for development (#11058) @galipremsagar
- Add support for `Series.between` (#11051) @galipremsagar
- Fix groupby include (#11046) @bwyogatama
- Regex cleanup internal reclass and reclass_device classes (#11045) @davidwendt
- Remove public API of cudf.merge_sorted. (#11032) @bdice
- Drop python `3.7` in code-base (#11029) @galipremsagar
- Addition &amp; integration of the integer power operator (#11025) @AtlantaPepsi
- Refactor `lists::contains` (#11019) @ttnghia
- Change build.sh to find C++ library by default and avoid shadowing CMAKE_ARGS (#11013) @vyasr
- Clean up parquet unit test (#11005) @PointKernel
- Add missing #pragma once to header files (#11004) @karthikeyann
- Cleanup `iterator.cuh` and add fixed point support for `scalar_optional_accessor` (#10999) @ttnghia
- Refactor `cudf::contains` (#10997) @ttnghia
- Remove Arrow CUDA IPC code (#10995) @shwina
- Change file extension for groupby benchmark (#10985) @ttnghia
- Sort recipe include checks. (#10984) @bdice
- Update cuCollections for thrust upgrade (#10983) @PointKernel
- Expose row-group size options in cudf ParquetWriter (#10980) @rjzamora
- Cleanup cudf::strings::detail::regex_parser class source (#10975) @davidwendt
- Handle missing fields as nulls in get_json_object() (#10970) @SrikarVanavasam
- Fix license families to match all-caps expected by conda-verify. (#10931) @bdice
- Include &lt;optional&gt; for GCC 11 compatibility. (#10927) @bdice
- Enable builds with scikit-build (#10919) @vyasr
- Improve `distinct` by using `cuco::static_map::retrieve_all` (#10916) @PointKernel
- update cudfjni to 22.08.0-SNAPSHOT (#10910) @pxLi
- Improve the capture of fatal cuda error (#10884) @sperlingxx
- Cleanup regex compiler operators and operands source (#10879) @davidwendt
- Buffer: make `.ptr` read-only (#10872) @madsbk
- Configurable NaN handling in device_row_comparators (#10870) @rwlee
- Register `cudf.core.groupby.Grouper` objects to dask `grouper_dispatch` (#10838) @brandon-b-miller
- Upgrade to `arrow-8` (#10816) @galipremsagar
- Remove _getattr_ method in RangeIndex class (#10538) @skirui-source
- Adding bins to value counts (#8247) @marlenezw
v22.08.00: tag_name: v22.08.00
body: ## 🚨 Breaking Changes

- Remove legacy join APIs (#11274) @vyasr
- Remove `lists::drop_list_duplicates` (#11236) @ttnghia
- Remove Index.replace API (#11131) @vyasr
- Remove deprecated Index methods from Frame (#11073) @vyasr
- Remove public API of cudf.merge_sorted. (#11032) @bdice
- Drop python `3.7` in code-base (#11029) @galipremsagar
- Return empty dataframe when reading a Parquet file using empty `columns` option (#11018) @vuule
- Remove Arrow CUDA IPC code (#10995) @shwina
- Buffer: make `.ptr` read-only (#10872) @madsbk

## 🐛 Bug Fixes

- Fix `distributed` error related to `loop_in_thread` (#11428) @galipremsagar
- Relax arrow pinning to just 8.x and remove cuda build dependency from cudf recipe (#11412) @kkraus14
- Revert &quot;Allow CuPy 11&quot; (#11409) @jakirkham
- Fix `moto` timeouts (#11369) @galipremsagar
- Set `+/-infinity` as the `identity` values for floating-point numbers in device operators `min` and `max` (#11357) @ttnghia
- Fix memory_usage() for `ListSeries` (#11355) @thomcom
- Fix constructing Column from column_view with expired mask (#11354) @shwina
- Handle parquet corner case:  Columns with more rows than are in the row group. (#11353) @nvdbaranec
- Fix `DatetimeIndex` &amp; `TimedeltaIndex` constructors (#11342) @galipremsagar
- Fix unsigned-compare compile warning in IntPow binops (#11339) @davidwendt
- Fix performance issue and add a new code path to `cudf::detail::contains` (#11330) @ttnghia
- Pin `pytorch` to temporarily unblock from `libcupti` errors (#11289) @galipremsagar
- Workaround for nvcomp zstd overwriting blocks for orc due to underestimate of sizes (#11288) @jbrennan333
- Fix inconsistency when hashing two tables in `cudf::detail::contains` (#11284) @ttnghia
- Fix issue related to numpy array and `category` dtype (#11282) @galipremsagar
- Add NotImplementedError when on is specified in DataFrame.join. (#11275) @vyasr
- Fix invalid allocate_like() and empty_like() tests. (#11268) @nvdbaranec
- Returns DataFrame When Concating Along Axis 1 (#11263) @isVoid
- Fix compile error due to missing header (#11257) @ttnghia
- Fix a memory aliasing/crash issue in scatter for lists. (#11254) @nvdbaranec
- Fix `tests/rolling/empty_input_test` (#11238) @ttnghia
- Fix const qualifier when using `host_span&lt;bitmask_type const*&gt;` (#11220) @ttnghia
- Avoid using `nvcompBatchedDeflateDecompressGetTempSizeEx` in cuIO (#11213) @vuule
- Generate benchmark data with correct run length regardless of cardinality (#11205) @vuule
- Fix cumulative count index behavior (#11188) @brandon-b-miller
- Fix assertion in dask_cudf test_struct_explode (#11170) @rjzamora
- Provides a method for the user to remove the hook and re-register the hook in a custom shutdown hook manager (#11161) @res-life
- Fix compatibility issues with pandas 1.4.3 (#11152) @vyasr
- Ensure cuco export set is installed in cmake build (#11147) @jlowe
- Avoid redundant deepcopy in `cudf.from_pandas` (#11142) @galipremsagar
- Fix compile error due to missing header (#11126) @ttnghia
- Fix `__cuda_array_interface__` failures (#11113) @galipremsagar
- Support octal and hex within regex character class pattern (#11112) @davidwendt
- Fix split_re matching logic for word boundaries (#11106) @davidwendt
- Handle multiple files metadata in `read_parquet` (#11105) @galipremsagar
- Fix index alignment for Series objects with repeated index (#11103) @shwina
- FindcuFile now searches in the current CUDA Toolkit location (#11101) @robertmaynard
- Fix regex word boundary logic to include underline (#11099) @davidwendt
- Exclude CudaFatalTest when selecting all Java tests (#11083) @jlowe
- Fix duplicate `cudatoolkit` pinning issue (#11070) @galipremsagar
- Maintain the input index in the result of a groupby-transform (#11068) @shwina
- Fix bug with row count comparison for expect_columns_equivalent(). (#11059) @nvdbaranec
- Fix BPE uninitialized size value for null and empty input strings (#11054) @davidwendt
- Include missing header for usage of `get_current_device_resource()` (#11047) @AtlantaPepsi
- Fix warn_unused_result error in parquet test (#11026) @karthikeyann
- Return empty dataframe when reading a Parquet file using empty `columns` option (#11018) @vuule
- Fix small error in page row count limiting (#10991) @etseidl
- Fix a row index entry error in ORC writer issue (#10989) @vuule
- Fix grouped covariance to require both values to be convertible to double. (#10891) @bdice

## 📖 Documentation

- Fix issues with day &amp; night modes in python docs (#11400) @galipremsagar
- Update missing data handling APIs in docs (#11345) @galipremsagar
- Add lists filtering APIs to doxygen group. (#11336) @bdice
- Remove unused import in README sample (#11318) @vyasr
- Note null behavior in `where` docs (#11276) @brandon-b-miller
- Update docstring for spans in `get_row_data_range` (#11271) @vyasr
- Update nvCOMP integration table (#11231) @vuule
- Add dev docs for documentation writing (#11217) @vyasr
- Documentation fix for concatenate (#11187) @dagardner-nv
- Fix unresolved links in markdown (#11173) @karthikeyann
- Fix cudf version in README.md install commands (#11164) @jvanstraten
- Switch `language` from `None` to `&quot;en&quot;` in docs build (#11133) @galipremsagar
- Remove docs mentioning scalar_view since no such class exists. (#11132) @bdice
- Add docstring entry for `DataFrame.value_counts` (#11039) @galipremsagar
- Add docs to rolling var, std, count. (#11035) @bdice
- Fix docs for Numba UDFs. (#11020) @bdice
- Replace column comparison utilities functions with macros (#11007) @karthikeyann
- Fix Doxygen warnings in multiple headers files (#11003) @karthikeyann
- Fix doxygen warnings in utilities/ headers (#10974) @karthikeyann
- Fix Doxygen warnings in table header files (#10964) @karthikeyann
- Fix Doxygen warnings in column header files (#10963) @karthikeyann
- Fix Doxygen warnings in strings / header files (#10937) @karthikeyann
- Generate Doxygen Tag File for Libcudf (#10932) @isVoid
- Fix doxygen warnings in structs, lists headers (#10923) @karthikeyann
- Fix doxygen warnings in fixed_point.hpp (#10922) @karthikeyann
- Fix doxygen warnings in ast/, rolling, tdigest/, wrappers/, dictionary/ headers (#10921) @karthikeyann
- fix doxygen warnings in cudf/io/types.hpp, other header files (#10913) @karthikeyann
- fix doxygen warnings in cudf/io/ avro, csv, json, orc, parquet header files (#10912) @karthikeyann
- Fix doxygen warnings in cudf/*.hpp (#10896) @karthikeyann
- Add missing documentation in aggregation.hpp (#10887) @karthikeyann
- Revise PR template. (#10774) @bdice

## 🚀 New Features

- Change cmake to allow controlling Arrow version via cmake variable (#11429) @kkraus14
- Adding support for list&lt;int8&gt; columns to be written as byte arrays in parquet (#11328) @hyperbolic2346
- Adding byte array view structure (#11322) @hyperbolic2346
- Adding byte_array statistics (#11303) @hyperbolic2346
- Add column indexes to Parquet writer (#11302) @etseidl
- Provide an Option for Default Integer and Floating Bitwidth (#11272) @isVoid
- FST benchmark (#11243) @karthikeyann
- Adds the Finite-State Transducer algorithm (#11242) @elstehle
- Refactor `collect_set` to use `cudf::distinct` and `cudf::lists::distinct` (#11228) @ttnghia
- Treat zstd as stable in nvcomp releases 2.3.2 and later (#11226) @jbrennan333
- Add 24 bit dictionary support to Parquet writer (#11216) @devavret
- Enable positive group indices for extractAllRecord on JNI (#11215) @anthony-chang
- JNI bindings for NTH_ELEMENT window aggregation (#11201) @mythrocks
- Add JNI bindings for extractAllRecord (#11196) @anthony-chang
- Add `cudf.options` (#11193) @isVoid
- Add thrift support for parquet column and offset indexes (#11178) @etseidl
- Adding binary read/write as options for parquet (#11160) @hyperbolic2346
- Support `nth_element` for window functions (#11158) @mythrocks
- Implement `lists::distinct` and `cudf::detail::stable_distinct` (#11149) @ttnghia
- Implement Groupby pct_change (#11144) @skirui-source
- Add JNI for set operations (#11143) @ttnghia
- Remove deprecated PER_THREAD_DEFAULT_STREAM (#11134) @jbrennan333
- Added a Java method to check the existence of a list of keys in a map (#11128) @razajafri
- Feature/python benchmarking (#11125) @vyasr
- Support `nan_equality` in `cudf::distinct` (#11118) @ttnghia
- Added JNI for getMapValueForKeys (#11104) @razajafri
- Refactor `semi_anti_join` (#11100) @ttnghia
- Replace remaining instances of rmm::cuda_stream_default with cudf::default_stream_value (#11082) @jbrennan333
- Adds the Logical Stack algorithm (#11078) @elstehle
- Add doxygen-check pre-commit hook (#11076) @karthikeyann
- Use new nvCOMP API to optimize the decompression temp memory size (#11064) @vuule
- Add Doxygen CI check (#11057) @karthikeyann
- Support `duplicate_keep_option` in `cudf::distinct` (#11052) @ttnghia
- Support set operations (#11043) @ttnghia
- Support for ZLIB compression in ORC writer (#11036) @vuule
- Adding feature swaplevels (#11027) @VamsiTallam95
- Use nvCOMP for ZLIB decompression in ORC reader (#11024) @vuule
- Function for bfill, ffill #9591 (#11022) @Sreekiran096
- Generate group offsets from element labels (#11017) @ttnghia
- Feature axes (#10979) @VamsiTallam95
- Generate group labels from offsets (#10945) @ttnghia
- Add missing cuIO benchmark coverage for duration types (#10933) @vuule
- Dask-cuDF cumulative groupby ops (#10889) @brandon-b-miller
- Reindex Improvements (#10815) @brandon-b-miller
- Implement value_counts for DataFrame (#10813) @martinfalisse

## 🛠️ Improvements

- Pin `dask` &amp; `distributed` for release (#11433) @galipremsagar
- Use documented header template for `doxygen` (#11430) @galipremsagar
- Relax arrow version in dev env (#11418) @galipremsagar
- Allow CuPy 11 (#11393) @jakirkham
- Improve multibyte_split performance (#11347) @cwharris
- Switch death test to use explicit trap. (#11326) @vyasr
- Add --output-on-failure to ctest args. (#11321) @vyasr
- Consolidate remaining DataFrame/Series APIs (#11315) @vyasr
- Add JNI support for the join_strings API (#11309) @revans2
- Add cupy version to setup.py install_requires (#11306) @vyasr
- removing some unused code (#11305) @hyperbolic2346
- Add test of wildcard selection (#11300) @vyasr
- Update parquet reader to take stream parameter (#11294) @PointKernel
- Spark list hashing (#11292) @bdice
- Remove legacy join APIs (#11274) @vyasr
- Fix `cudf` recipes syntax (#11273) @ajschmidt8
- Fix `cudf` recipe (#11267) @ajschmidt8
- Cleanup config files (#11266) @vyasr
- Run mypy on all packages (#11265) @vyasr
- Update to isort 5.10.1. (#11262) @vyasr
- Consolidate flake8 and pydocstyle configuration (#11260) @vyasr
- Remove redundant black config specifications. (#11258) @vyasr
- Ensure DeprecationWarnings are not introduced via pre-commit (#11255) @wence-
- Optimization to gpu::PreprocessColumnData in parquet reader. (#11252) @nvdbaranec
- Move rolling impl details to detail/ directory. (#11250) @mythrocks
- Remove `lists::drop_list_duplicates` (#11236) @ttnghia
- Use `cudf::lists::distinct` in Python binding (#11234) @ttnghia
- Use `cudf::lists::distinct` in Java binding (#11233) @ttnghia
- Use `cudf::distinct` in Java binding (#11232) @ttnghia
- Pin `dask-cuda` in dev environment (#11229) @galipremsagar
- Remove cruft in map_lookup (#11221) @mythrocks
- Deprecate `skiprows` &amp; `num_rows` in parquet reader (#11218) @galipremsagar
- Remove Frame._index (#11210) @vyasr
- Improve performance for `cudf::contains` when searching for a scalar (#11202) @ttnghia
- Document why Development component is needing for CMake. (#11200) @vyasr
- cleanup unused code in rolling_test.hpp (#11195) @karthikeyann
- Standardize join internals around DataFrame (#11184) @vyasr
- Move character case table declarations from src to detail (#11183) @davidwendt
- Remove usage of Frame in StringMethods (#11181) @vyasr
- Expose get_json_object_options to Python (#11180) @SrikarVanavasam
- Fix decimal128 stats in parquet writer (#11179) @etseidl
- Modify CheckPageRows in parquet_test to use datasources (#11177) @etseidl
- Pin max version of `cuda-python` to `11.7.0` (#11174) @Ethyling
- Refactor and optimize Frame.where (#11168) @vyasr
- Add npos const static member to cudf::string_view (#11166) @davidwendt
- Move _drop_rows_by_label from Frame to IndexedFrame (#11157) @vyasr
- Clean up _copy_type_metadata (#11156) @vyasr
- Add `nvcc` conda package in dev environment (#11154) @galipremsagar
- Struct binary comparison op functionality for spark rapids (#11153) @rwlee
- Refactor inline conditionals. (#11151) @bdice
- Refactor Spark hashing tests (#11145) @bdice
- Add new `_from_data_like_self` factory (#11140) @vyasr
- Update get_cucollections to use rapids-cmake (#11139) @vyasr
- Remove unnecessary extra function for libcudacxx detection (#11138) @vyasr
- Allow initial value for cudf::reduce and cudf::segmented_reduce. (#11137) @SrikarVanavasam
- Remove Index.replace API (#11131) @vyasr
- Move char-type table function declarations from src to detail (#11127) @davidwendt
- Clean up repo root (#11124) @bdice
- Improve print formatting of strings containing newline characters. (#11108) @nvdbaranec
- Fix cudf::string_view::find() to return pos for empty string argument (#11107) @davidwendt
- Forward-merge branch-22.06 to branch-22.08 (#11086) @bdice
- Take iterators by value in clamp.cu. (#11084) @bdice
- Performance improvements for row to column conversions (#11075) @hyperbolic2346
- Remove deprecated Index methods from Frame (#11073) @vyasr
- Use per-page max compressed size estimate for compression (#11066) @devavret
- column to row refactor for performance (#11063) @hyperbolic2346
- Include `skbuild` directory into `build.sh` `clean` operation (#11060) @galipremsagar
- Unpin `dask` &amp; `distributed` for development (#11058) @galipremsagar
- Add support for `Series.between` (#11051) @galipremsagar
- Fix groupby include (#11046) @bwyogatama
- Regex cleanup internal reclass and reclass_device classes (#11045) @davidwendt
- Remove public API of cudf.merge_sorted. (#11032) @bdice
- Drop python `3.7` in code-base (#11029) @galipremsagar
- Addition &amp; integration of the integer power operator (#11025) @AtlantaPepsi
- Refactor `lists::contains` (#11019) @ttnghia
- Change build.sh to find C++ library by default and avoid shadowing CMAKE_ARGS (#11013) @vyasr
- Clean up parquet unit test (#11005) @PointKernel
- Add missing #pragma once to header files (#11004) @karthikeyann
- Cleanup `iterator.cuh` and add fixed point support for `scalar_optional_accessor` (#10999) @ttnghia
- Refactor `cudf::contains` (#10997) @ttnghia
- Remove Arrow CUDA IPC code (#10995) @shwina
- Change file extension for groupby benchmark (#10985) @ttnghia
- Sort recipe include checks. (#10984) @bdice
- Update cuCollections for thrust upgrade (#10983) @PointKernel
- Expose row-group size options in cudf ParquetWriter (#10980) @rjzamora
- Cleanup cudf::strings::detail::regex_parser class source (#10975) @davidwendt
- Handle missing fields as nulls in get_json_object() (#10970) @SrikarVanavasam
- Fix license families to match all-caps expected by conda-verify. (#10931) @bdice
- Include &lt;optional&gt; for GCC 11 compatibility. (#10927) @bdice
- Enable builds with scikit-build (#10919) @vyasr
- Improve `distinct` by using `cuco::static_map::retrieve_all` (#10916) @PointKernel
- update cudfjni to 22.08.0-SNAPSHOT (#10910) @pxLi
- Improve the capture of fatal cuda error (#10884) @sperlingxx
- Cleanup regex compiler operators and operands source (#10879) @davidwendt
- Buffer: make `.ptr` read-only (#10872) @madsbk
- Configurable NaN handling in device_row_comparators (#10870) @rwlee
- Register `cudf.core.groupby.Grouper` objects to dask `grouper_dispatch` (#10838) @brandon-b-miller
- Upgrade to `arrow-8` (#10816) @galipremsagar
- Remove _getattr_ method in RangeIndex class (#10538) @skirui-source
- Adding bins to value counts (#8247) @marlenezw
[NIGHTLY] v22.10.00: tag_name: v22.10.00a
body: ## 🔗 Links

- [Development Branch](https://github.com/rapidsai/cudf/tree/branch-22.10)
- [Compare with `main` branch](https://github.com/rapidsai/cudf/compare/main...branch-22.10)

## 🚨 Breaking Changes

- Disable Zstandard decompression on nvCOMP 2.4 and Pascal GPus (#11856) @vuule
- Disable nvCOMP DEFLATE integration (#11811) @vuule
- Fix return type of `Index.isna` &amp; `Index.notna` (#11769) @galipremsagar
- Remove `kwargs` in `read_csv` &amp; `to_csv` (#11762) @galipremsagar
- Fix `cudf::partition*` APIs that do not return offsets for empty output table (#11709) @ttnghia
- Fix regex negated classes to not automatically include new-lines (#11644) @davidwendt
- Update zfill to match Python output (#11634) @davidwendt
- Upgrade `pandas` to `1.5` (#11617) @galipremsagar
- Change default value of `ordered` to `False` in `CategoricalDtype` (#11604) @galipremsagar
- Move cudf::strings::findall_record to cudf::strings::findall (#11575) @davidwendt
- Adding optional parquet reader schema (#11524) @hyperbolic2346
- Deprecate `skiprows` and `num_rows` in `read_orc` (#11522) @galipremsagar
- Remove support for skip_rows / num_rows options in the parquet reader. (#11503) @nvdbaranec
- Drop support for `skiprows` and `num_rows` in `cudf.read_parquet` (#11480) @galipremsagar
- Disable Arrow S3 support by default. (#11470) @bdice
- Convert thrust::optional usages to std::optional (#11455) @robertmaynard
- Remove unused is_struct trait. (#11450) @bdice
- Refactor the `Buffer` class (#11447) @madsbk
- Return empty dataframe when reading an ORC file using empty `columns` option (#11446) @vuule
- Refactor pad_side and strip_type enums into side_type enum (#11438) @davidwendt
- Remove HASH_SERIAL_MURMUR3 / serial32BitMurmurHash3 (#11383) @bdice
- Use the new JSON parser when the experimental reader is selected (#11364) @vuule
- Remove deprecated Series.applymap. (#11031) @bdice
- Remove deprecated expand parameter from str.findall. (#11030) @bdice

## 🐛 Bug Fixes

- Force using old fmt in nvbench. (#12064) @vyasr
- Update cuda-python dependency to 11.7.1 (#11994) @shwina
- Fixes bug in temporary decompression space estimation before calling nvcomp (#11879) @abellina
- Handle `ptx` file paths during `strings_udf` import (#11862) @galipremsagar
- Disable Zstandard decompression on nvCOMP 2.4 and Pascal GPus (#11856) @vuule
- Reset `strings_udf` CEC and solve several related issues (#11846) @brandon-b-miller
- Fix  bug in new shuffle-based groupby implementation (#11836) @rjzamora
- Fix `is_valid` checks in `Scalar._binaryop` (#11818) @wence-
- Fix operator `NotImplemented` issue with `numpy` (#11816) @galipremsagar
- Disable nvCOMP DEFLATE integration (#11811) @vuule
- Build `strings_udf` package with other python packages in nightlies (#11808) @brandon-b-miller
- Revert problematic shuffle=explicit-comms changes (#11803) @rjzamora
- Fix regex out-of-bounds write in strided rows logic (#11797) @davidwendt
- Build `cudf` locally before building `strings_udf` conda packages in CI (#11785) @brandon-b-miller
- Fix an issue in cudf::row_bit_count involving structs and lists at multiple levels. (#11779) @nvdbaranec
- Fix return type of `Index.isna` &amp; `Index.notna` (#11769) @galipremsagar
- Fix issue with set-item incase of `list` and `struct` types (#11760) @galipremsagar
- Ensure all libcudf APIs run on cudf&#39;s default stream (#11759) @vyasr
- Resolve dask_cudf failures caused by upstream groupby changes (#11755) @rjzamora
- Fix ORC string sum statistics (#11740) @vuule
- Add `strings_udf` package for python 3.9 (#11730) @brandon-b-miller
- Ensure that all tests launch kernels on cudf&#39;s default stream (#11726) @vyasr
- Don&#39;t assume stream is a compile-time constant expression (#11725) @vyasr
- Fix get_thrust.cmake format at patch command (#11715) @davidwendt
- Fix `cudf::partition*` APIs that do not return offsets for empty output table (#11709) @ttnghia
- Fix cudf::lists::sort_lists for NaN and Infinity values (#11703) @davidwendt
- Modify ORC reader timestamp parsing to match the apache reader behavior (#11699) @vuule
- Fix `DataFrame.from_arrow` to preserve type metadata (#11698) @galipremsagar
- Fix compile error due to missing header (#11697) @ttnghia
- Default to Snappy compression in `to_orc` when using cuDF or Dask (#11690) @vuule
- Fix an issue related to `Multindex` when `group_keys=True` (#11689) @galipremsagar
- Transfer correct dtype to exploded column (#11687) @wence-
- Ignore protobuf generated files in `mypy` checks (#11685) @galipremsagar
- Maintain the index name after `.loc` (#11677) @shwina
- Fix issue with extracting nested column data &amp; dtype preservation (#11671) @galipremsagar
- Ensure that all cudf tests and benchmarks are conda env aware (#11666) @robertmaynard
- Update to Thrust 1.17.2 to fix cub ODR issues (#11665) @robertmaynard
- Fix multi-file remote datasource bug (#11655) @rjzamora
- Fix invalid regex quantifier check to not include alternation (#11654) @davidwendt
- Fix bug in `device_write()`: it uses an incorrect size (#11651) @madsbk
- fixes overflows in benchmarks (#11649) @elstehle
- Fix regex negated classes to not automatically include new-lines (#11644) @davidwendt
- Fix compile error in benchmark nested_json.cpp (#11637) @davidwendt
- Update zfill to match Python output (#11634) @davidwendt
- Removed converted type for INT32 and INT64 since they do not convert (#11627) @hyperbolic2346
- Fix host scalars construction of nested types (#11612) @galipremsagar
- Fix compile warning in nested_json_gpu.cu (#11607) @davidwendt
- Change default value of `ordered` to `False` in `CategoricalDtype` (#11604) @galipremsagar
- Preserve order if necessary when deduping categoricals internally (#11597) @brandon-b-miller
- Add is_timestamp test for leap second (60) (#11594) @davidwendt
- Fix an issue with `to_arrow` when column name type is not a string (#11590) @galipremsagar
- Fix exception in segmented-reduce benchmark (#11588) @davidwendt
- Fix encode/decode of negative timestamps in ORC reader/writer (#11586) @vuule
- Correct distribution data type in `quantiles` benchmark (#11584) @vuule
- Fix multibyte_split benchmark for host buffers (#11583) @upsj
- xfail custreamz display test for now (#11567) @shwina
- Fix JNI for TableWithMeta to use schema_info instead of column_names (#11566) @jlowe
- Reduce code duplication for `dask` &amp; `distributed` nightly/stable installs (#11565) @galipremsagar
- Fix groupby failures in dask_cudf CI (#11561) @rjzamora
- Fix for pivot: error when &#39;values&#39; is a multicharacter string (#11538) @shaswat-indian
- find_package(cudf) + arrow9 usable with cudf build directory (#11535) @robertmaynard
- Fixing crash when writing binary nested data in parquet (#11526) @hyperbolic2346
- Fix for: error when assigning a value to an empty series (#11523) @shaswat-indian
- Fix invalid results from conditional-left-anti-join in debug build (#11517) @davidwendt
- Fix cmake error after upgrading to Arrow 9 (#11513) @ttnghia
- Fix reverse binary operators acting on a host value and cudf.Scalar (#11512) @bdice
- Update parquet fuzz tests to drop support for `skiprows` &amp; `num_rows` (#11505) @galipremsagar
- Use rapids-cmake 22.10 best practice for RAPIDS.cmake location (#11493) @robertmaynard
- Handle some zero-sized corner cases in dlpack interop (#11449) @wence-
- Return empty dataframe when reading an ORC file using empty `columns` option (#11446) @vuule
- libcudf c++ example updated to CPM version 0.35.3 (#11417) @robertmaynard
- Fix regex quantifier check to include capture groups (#11373) @davidwendt
- Fix read_text when byte_range is aligned with field (#11371) @upsj
- Fix to_timestamps truncated subsecond calculation (#11367) @davidwendt
- column: calculate null_count before release()ing the cudf::column (#11365) @wence-

## 📖 Documentation

- Update `guide-to-udfs` notebook (#11861) @brandon-b-miller
- Update docstring for cudf.read_text (#11799) @GregoryKimball
- Add doc section for `list` &amp; `struct` handling (#11770) @galipremsagar
- Document that minimum required CMake version is now 3.23.1 (#11751) @robertmaynard
- Update libcudf documentation build command in DOCUMENTATION.md (#11735) @davidwendt
- Add docs for use of string data to `DataFrame.apply` and `Series.apply` and update guide to UDFs notebook (#11733) @brandon-b-miller
- Enable more Pydocstyle rules (#11582) @bdice
- Remove unused cpp/img folder (#11554) @davidwendt
- Publish C++ developer docs (#11475) @vyasr
- Fix a misalignment in `cudf.get_dummies` docstring (#11443) @galipremsagar
- Update contributing doc to include links to the developer guides (#11390) @davidwendt
- Fix table_view_base doxygen format (#11340) @davidwendt
- Create main developer guide for Python (#11235) @vyasr
- Add developer documentation for benchmarking (#11122) @vyasr
- cuDF error handling document (#7917) @isVoid

## 🚀 New Features

- Add hasNull statistic reading ability to ORC (#11747) @devavret
- Add `istitle` to string UDFs (#11738) @brandon-b-miller
- JSON Column creation in GPU (#11714) @karthikeyann
- Adds option to take explicit nested schema for nested JSON reader (#11682) @elstehle
- Add BGZIP `data_chunk_reader` (#11652) @upsj
- Support DECIMAL order-by for RANGE window functions (#11645) @mythrocks
- changing version of cmake to 3.23.3 (#11619) @hyperbolic2346
- Generate unique keys table in java JNI `contiguousSplitGroups` (#11614) @res-life
- Generic type casting to support the new nested JSON reader (#11613) @elstehle
- JSON tree traversal (#11610) @karthikeyann
- Add casting operators to masked UDFs (#11578) @brandon-b-miller
- Adds type inference and type conversion for leaf-columns to the nested JSON parser (#11574) @elstehle
- Add strings &#39;like&#39; function (#11558) @davidwendt
- Handle hyphen as literal for regex cclass when incomplete range (#11557) @davidwendt
- Enable ZSTD compression in ORC and Parquet writers (#11551) @vuule
- Adds support for json lines format to the nested JSON reader (#11534) @elstehle
- Adding optional parquet reader schema (#11524) @hyperbolic2346
- Adds GPU implementation of JSON-token-stream to JSON-tree (#11518) @karthikeyann
- Add `gdb` pretty-printers for simple types (#11499) @upsj
- Add `create_random_column` function to the data generator (#11490) @vuule
- Add fluent API builder to `data_profile` (#11479) @vuule
- Adds Nested Json benchmark (#11466) @karthikeyann
- Convert thrust::optional usages to std::optional (#11455) @robertmaynard
- Python API for the future experimental JSON reader (#11426) @vuule
- Return schema info from JSON reader (#11419) @vuule
- Add regex ASCII flag support for matching builtin character classes (#11404) @davidwendt
- Truncate parquet column indexes (#11403) @etseidl
- Adds the end-to-end JSON parser implementation (#11388) @elstehle
- Use the new JSON parser when the experimental reader is selected (#11364) @vuule
- Add placeholder for the experimental JSON reader (#11334) @vuule
- Add read-only functions on string dtypes to `DataFrame.apply` and `Series.apply` (#11319) @brandon-b-miller
- Added &#39;crosstab&#39; and &#39;pivot_table&#39; features (#11314) @shaswat-indian
- Quickly error out when trying to build with unsupported nvcc versions (#11297) @robertmaynard
- Adds JSON tokenizer (#11264) @elstehle
- List lexicographic comparator (#11129) @devavret
- Add generic type inference for cuIO (#11121) @PointKernel
- Fully support nested types in `cudf::contains` (#10656) @ttnghia
- Support nested types in `lists::contains` (#10548) @ttnghia

## 🛠️ Improvements

- Pin `dask` and `distributed` for release (#11822) @galipremsagar
- Add examples for Nested JSON reader (#11814) @GregoryKimball
- Support shuffle-based groupby aggregations in dask_cudf (#11800) @rjzamora
- Update strings udf version updater script (#11772) @galipremsagar
- Remove `kwargs` in `read_csv` &amp; `to_csv` (#11762) @galipremsagar
- Pass `dtype` param to avoid `pd.Series` warnings (#11761) @galipremsagar
- Enable `schema_element` &amp; `keep_quotes` support in json reader (#11746) @galipremsagar
- Add ability to construct `ListColumn` when size is `None` (#11745) @galipremsagar
- Reduces memory requirements in JSON parser and adds bytes/s and peak memory usage to benchmarks (#11732) @elstehle
- Add missing copyright headers. (#11712) @bdice
- Fix copyright check issues in pre-commit (#11711) @bdice
- Include decimal in supported types for range window order-by columns (#11710) @mythrocks
- Disable very large column gtest for contiguous-split (#11706) @davidwendt
- Drop split_out=None test from groupby.agg (#11704) @wence-
- Use CubinLinker for CUDA Minor Version Compatibility (#11701) @gmarkall
- Add regex capture-group parameter to auto convert to non-capture groups (#11695) @davidwendt
- Add a `__dataframe__` method to the protocol dataframe object (#11692) @rgommers
- Special-case multibyte_split for single-byte delimiter (#11681) @upsj
- Remove isort exclusions (#11680) @bdice
- Refactor CSV reader benchmarks with nvbench (#11678) @PointKernel
- Check conda recipe headers with pre-commit (#11669) @bdice
- Remove redundant style check for clang-format. (#11668) @bdice
- Add support for `group_keys` in `groupby` (#11659) @galipremsagar
- Fix pandoc pinning. (#11658) @bdice
- Revert removal of skip_rows / num_rows options from the Parquet reader. (#11657) @nvdbaranec
- Update git metadata (#11647) @bdice
- Call set_null_count on a returning column if null-count is known (#11646) @davidwendt
- Fix some libcudf detail calls not passing the stream variable (#11642) @davidwendt
- Update to mypy 0.971 (#11640) @wence-
- Refactor strings strip functor to details header (#11635) @davidwendt
- Fix incorrect `nullCount` in `get_json_object` (#11633) @trxcllnt
- Simplify `hostdevice_vector` (#11631) @upsj
- Refactor parquet writer benchmarks with nvbench (#11623) @PointKernel
- Rework contains_scalar to check nulls at runtime (#11622) @davidwendt
- Fix incorrect memory resource used in rolling temp columns (#11618) @mythrocks
- Upgrade `pandas` to `1.5` (#11617) @galipremsagar
- Move type-dispatcher calls from traits.hpp to traits.cpp (#11616) @davidwendt
- Refactor parquet reader benchmarks with nvbench (#11611) @PointKernel
- Forward-merge branch-22.08 to branch-22.10 (#11608) @bdice
- Use stream in Java API. (#11601) @bdice
- Refactors of public/detail APIs, CUDF_FUNC_RANGE, stream handling. (#11600) @bdice
- Improve ORC writer benchmark with nvbench (#11598) @PointKernel
- Tune multibyte_split kernel (#11587) @upsj
- Move split_utils.cuh to strings/detail (#11585) @davidwendt
- Fix warnings due to compiler regression with `if constexpr` (#11581) @ttnghia
- Add full 24-bit dictionary support to Parquet writer (#11580) @etseidl
- Expose &quot;explicit-comms&quot; option in shuffle-based dask_cudf functions (#11576) @rjzamora
- Move cudf::strings::findall_record to cudf::strings::findall (#11575) @davidwendt
- Refactor dask_cudf groupby to use apply_concat_apply (#11571) @rjzamora
- Add ability to write `list(struct)` columns as `map` type in orc writer (#11568) @galipremsagar
- Add byte_range to multibyte_split benchmark + NVBench refactor (#11562) @upsj
- JNI support for writing binary columns in parquet (#11556) @revans2
- Support additional dictionary bit widths in Parquet writer (#11547) @etseidl
- Refactor string/numeric conversion utilities (#11545) @davidwendt
- Removing unnecessary asserts in parquet tests (#11544) @hyperbolic2346
- Clean up ORC reader benchmarks with NVBench (#11543) @PointKernel
- Reuse MurmurHash3_32 in Parquet page data. (#11528) @bdice
- Add hexadecimal value separators (#11527) @bdice
- Deprecate `skiprows` and `num_rows` in `read_orc` (#11522) @galipremsagar
- Struct support for `NULL_EQUALS` binary operation (#11520) @rwlee
- Bump hadoop-common from 3.2.3 to 3.2.4 in /java (#11516) @dependabot[bot]
- Fix Feather test warning. (#11511) @bdice
- copy_range ballot_syncs to have no execution dependency (#11508) @robertmaynard
- Upgrade to `arrow-9.x` (#11507) @galipremsagar
- Remove support for skip_rows / num_rows options in the parquet reader. (#11503) @nvdbaranec
- Single-pass `multibyte_split` (#11500) @upsj
- Sanitize percentile_approx() output for empty input (#11498) @SrikarVanavasam
- Unpin `dask` and `distributed` for development (#11492) @galipremsagar
- Move SparkMurmurHash3_32 functor. (#11489) @bdice
- Refactor group_nunique.cu to use nullate::DYNAMIC for reduce-by-key functor (#11482) @davidwendt
- Drop support for `skiprows` and `num_rows` in `cudf.read_parquet` (#11480) @galipremsagar
- Add reduction `distinct_count` benchmark (#11473) @ttnghia
- Add groupby `nunique` aggregation benchmark (#11472) @ttnghia
- Disable Arrow S3 support by default. (#11470) @bdice
- Add groupby `max` aggregation benchmark (#11464) @ttnghia
- Extract Dremel encoding code from Parquet (#11461) @vyasr
- Add missing Thrust #includes. (#11457) @bdice
- Make CMake hooks verbose (#11456) @vyasr
- Control Parquet page size through Python API (#11454) @etseidl
- Add control of Parquet column index creation to python (#11453) @etseidl
- Remove unused is_struct trait. (#11450) @bdice
- Refactor the `Buffer` class (#11447) @madsbk
- Refactor pad_side and strip_type enums into side_type enum (#11438) @davidwendt
- Update to Thrust 1.17.0 (#11437) @bdice
- Add in JNI for parsing JSON data and getting the metadata back too. (#11431) @revans2
- Convert byte_array_view to use std::byte (#11424) @hyperbolic2346
- Deprecate unflatten_nested_columns (#11421) @SrikarVanavasam
- Remove HASH_SERIAL_MURMUR3 / serial32BitMurmurHash3 (#11383) @bdice
- Add Spark list hashing Java tests (#11379) @bdice
- Move cmake to the build section. (#11376) @vyasr
- Remove use of CUDA driver API calls from libcudf (#11370) @shwina
- Add column constructor from device_uvector&amp;&amp; (#11356) @SrikarVanavasam
- Remove unused custreamz thirdparty directory (#11343) @vyasr
- Update jni version to 22.10.0-SNAPSHOT (#11338) @pxLi
- Enable using upstream jitify2 (#11287) @shwina
- Cache cudf.Scalar (#11246) @shwina
- Remove deprecated Series.applymap. (#11031) @bdice
- Remove deprecated expand parameter from str.findall. (#11030) @bdice
v22.06.01: tag_name: v22.06.01
body: v22.06.01
v22.06.00: tag_name: v22.06.00
body: ## 🚨 Breaking Changes

- Enable Zstandard decompression only when all nvcomp integrations are enabled (#10944) @vuule
- Rename `sliced_child` to `get_sliced_child`. (#10885) @bdice
- Add parameters to control page size in Parquet writer (#10882) @etseidl
- Make cudf::test::expect_columns_equal() to fail when comparing unsanitary lists. (#10880) @nvdbaranec
- Cleanup regex compiler fixed quantifiers source (#10843) @davidwendt
- Refactor `cudf::contains`, renaming and switching parameters role (#10802) @ttnghia
- Generic serialization of all column types (#10784) @wence-
- Return per-file metadata from readers (#10782) @vuule
- HostColumnVectoreCore#isNull should return true for out-of-range rows (#10779) @gerashegalov
- Update `groupby::hash` to use new row operators for keys (#10770) @PointKernel
- update mangle_dupe_cols behavior in csv reader to match pandas 1.4.0 behavior (#10749) @karthikeyann
- Rename CUDA_TRY macro to CUDF_CUDA_TRY, rename CHECK_CUDA macro to CUDF_CHECK_CUDA. (#10589) @bdice
- Upgrade `cudf` to support `pandas` 1.4.x versions (#10584) @galipremsagar
- Move binop methods from Frame to IndexedFrame and standardize the docstring (#10576) @vyasr
- Add default= kwarg to .list.get() accessor method (#10547) @shwina
- Remove deprecated `decimal_cols_as_float` in the ORC reader (#10515) @vuule
- Support nvComp 2.3 if local, otherwise use nvcomp 2.2 (#10513) @robertmaynard
- Fix findall_record to return empty list for no matches (#10491) @davidwendt
- Namespace/Docstring Fixes for Reduction (#10471) @isVoid
- Additional refactoring of hash functions (#10462) @bdice
- Fix default value of str.split expand parameter. (#10457) @bdice
- Remove deprecated code. (#10450) @vyasr

## 🐛 Bug Fixes

- Fix single column `MultiIndex` issue in `sort_index` (#10957) @galipremsagar
- Make SerializedTableHeader(numRows) public (#10949) @gerashegalov
- Fix `gcc_linux` version pinning in dev environment (#10943) @galipremsagar
- Fix an issue with reading raw string in `cudf.read_json` (#10924) @galipremsagar
- Make cudf::test::expect_columns_equal() to fail when comparing unsanitary lists. (#10880) @nvdbaranec
- Fix segmented_reduce on empty column with non-empty offsets (#10876) @davidwendt
- Fix dask-cudf groupby handling when grouping by all columns (#10866) @charlesbluca
- Fix a bug in `distinct`: using nested nulls logic (#10848) @PointKernel
- Fix constness / references in weak ordering operator() signatures. (#10846) @bdice
- Suppress sizeof-array-div warnings in thrust found by gcc-11 (#10840) @robertmaynard
- Add handling for string by-columns in dask-cudf groupby (#10830) @charlesbluca
- Fix compile warning in search.cu (#10827) @davidwendt
- Fix element access const correctness in `hostdevice_vector` (#10804) @vuule
- Update `cuco` git tag (#10788) @PointKernel
- HostColumnVectoreCore#isNull should return true for out-of-range rows (#10779) @gerashegalov
- Fixing deprecation warnings in test_orc.py (#10772) @hyperbolic2346
- Enable writing to `s3` storage in chunked parquet writer (#10769) @galipremsagar
- Fix construction of nested structs with EMPTY child (#10761) @shwina
- Fix replace error when regex has only zero match quantifiers (#10760) @davidwendt
- Fix an issue with one_level_list schemas in parquet reader. (#10750) @nvdbaranec
- update mangle_dupe_cols behavior in csv reader to match pandas 1.4.0 behavior (#10749) @karthikeyann
- Fix `cupy` function in notebook (#10737) @ajschmidt8
- Fix `fillna` to retain `columns` when it is `MultiIndex` (#10729) @galipremsagar
- Fix scatter for all-empty-string column case (#10724) @davidwendt
- Retain series name in `Series.apply` (#10716) @brandon-b-miller
- Correct build dir `cudf-config` dependency issues for static builds (#10704) @robertmaynard
- Fix list of testing requirements in setup.py. (#10678) @bdice
- Fix rounding to zero error in stod on very small float numbers (#10672) @davidwendt
- cuco isn&#39;t a cudf dependency when we are built shared (#10662) @robertmaynard
- Fix to_timestamps to support Z for %z format specifier (#10617) @davidwendt
- Verify compression type in Parquet reader (#10610) @vuule
- Fix struct row comparator&#39;s exception on empty structs (#10604) @sperlingxx
- Fix strings strip() to accept only str Scalar for to_strip parameter (#10597) @davidwendt
- Fix has_atomic_support check in can_use_hash_groupby() (#10588) @jbrennan333
- Revert Thrust 1.16 to Thrust 1.15 (#10586) @bdice
- Fix missing RMM_STATIC_CUDART define when compiling JNI with static CUDA runtime (#10585) @jlowe
- pin more cmake versions (#10570) @robertmaynard
- Re-enable Build Metrics Report (#10562) @davidwendt
- Remove statically linked CUDA runtime check in Java build (#10532) @jlowe
- Fix temp data cleanup in `test_text.py` (#10524) @brandon-b-miller
- Update pre-commit to run black 22.3.0 (#10523) @vyasr
- Remove deprecated `decimal_cols_as_float` in the ORC reader (#10515) @vuule
- Fix findall_record to return empty list for no matches (#10491) @davidwendt
- Allow users to specify data types for a subset of columns in `read_csv` (#10484) @vuule
- Fix default value of str.split expand parameter. (#10457) @bdice
- Improve coverage of dask-cudf&#39;s groupby aggregation, add tests for `dropna` support (#10449) @charlesbluca
- Allow string aggs for `dask_cudf.CudfDataFrameGroupBy.aggregate` (#10222) @charlesbluca
- In-place updates with loc or iloc don&#39;t work correctly when the LHS has more than one column (#9918) @skirui-source

## 📖 Documentation

- Clarify append deprecation notice. (#10930) @bdice
- Use full name of GPUDirect Storage SDK in docs (#10904) @vuule
- Update Dask + Pandas to Dask + cuDF path (#10897) @miguelusque
- Add missing documentation in cudf/types.hpp (#10895) @karthikeyann
- Add strong index iterator docs. (#10888) @bdice
- spell check fixes (#10865) @karthikeyann
- Add missing documentation in scalar/ headers (#10861) @karthikeyann
- Remove typo in ngram documentation (#10859) @miguelusque
- fix doxygen warnings (#10842) @karthikeyann
- Add a library_design.md file documenting the core Python data structures and their relationship (#10817) @vyasr
- Add NumPy to intersphinx references. (#10809) @bdice
- Add a section to the docs that compares cuDF with Pandas (#10796) @shwina
- Mention 2 cpp-reviewer requirement in pull request template (#10768) @davidwendt
- Enable pydocstyle for all packages. (#10759) @bdice
- Enable pydocstyle rules involving quotes (#10748) @vyasr
- Revise 10 minutes notebook. (#10738) @bdice
- Reorganize cuDF Python docs (#10691) @shwina
- Fix sphinx/jupyter heading issue in UDF notebook (#10690) @brandon-b-miller
- Migrated user guide notebooks to MyST-NB and added sphinx extension (#10685) @mmccarty
- add data generation to benchmark documentation (#10677) @karthikeyann
- Fix some docs build warnings (#10674) @galipremsagar
- Update UDF notebook in User Guide. (#10668) @bdice
- Improve User Guide docs (#10663) @bdice
- Fix some docstrings formatting (#10660) @galipremsagar
- Remove implementation details from `apply` docstrings (#10651) @brandon-b-miller
- Revise CONTRIBUTING.md (#10644) @bdice
- Add missing APIs to documentation. (#10643) @bdice
- Use cudf.read_json as documented API name. (#10640) @bdice
- Fix docstring section headings. (#10639) @bdice
- Document cudf.read_text and cudf.read_avro. (#10638) @bdice
- Fix type-o in docstring for json_reader_options (#10627) @dagardner-nv
- Update guide to UDFs with notes about `Series.applymap` deprecation and related changes (#10607) @brandon-b-miller
- Fix doxygen Modules page for cudf::lists::sequences (#10561) @davidwendt
- Add Replace Backreferences section to Regex Features page (#10560) @davidwendt
- Introduce deprecation policy to developer guide. (#10252) @vyasr

## 🚀 New Features

- Enable Zstandard decompression only when all nvcomp integrations are enabled (#10944) @vuule
- Handle nested types in cudf::concatenate_rows() (#10890) @nvdbaranec
- Strong index types for equality comparator (#10883) @ttnghia
- Add parameters to control page size in Parquet writer (#10882) @etseidl
- Support for Zstandard decompression in ORC reader (#10873) @vuule
- Use pre-built nvcomp 2.3 binaries by default (#10851) @robertmaynard
- Support for Zstandard decompression in Parquet reader (#10847) @vuule
- Add JNI support for apply_boolean_mask (#10812) @res-life
- Segmented Min/Max for Fixed Point Types (#10794) @isVoid
- Return per-file metadata from readers (#10782) @vuule
- Segmented `apply_boolean_mask` for `LIST` columns (#10773) @mythrocks
- Update `groupby::hash` to use new row operators for keys (#10770) @PointKernel
- Support purging non-empty null elements from LIST/STRING columns (#10701) @mythrocks
- Add `detail::hash_join` (#10695) @PointKernel
- Persist string statistics data across multiple calls to orc chunked write (#10694) @hyperbolic2346
- Add `.list.astype()` to cast list leaves to specified dtype (#10693) @shwina
- JNI: Add generateListOffsets API (#10683) @sperlingxx
- Support `args` in groupby apply (#10682) @brandon-b-miller
- Enable segmented_gather in Java package (#10669) @sperlingxx
- Add row hasher with nested column support (#10641) @devavret
- Add support for numeric_only in DataFrame._reduce (#10629) @martinfalisse
- First step toward statistics in ORC files with chunked writes (#10567) @hyperbolic2346
- Add support for struct columns to the random table generator (#10566) @vuule
- Enable passing a sequence for the `index` argument to `.list.get()` (#10564) @shwina
- Add python bindings for cudf::list::index_of (#10549) @ChrisJar
- Add default= kwarg to .list.get() accessor method (#10547) @shwina
- Add `cudf.DataFrame.applymap` (#10542) @brandon-b-miller
- Support nvComp 2.3 if local, otherwise use nvcomp 2.2 (#10513) @robertmaynard
- Add column field ID control in parquet writer (#10504) @PointKernel
- Deprecate `Series.applymap` (#10497) @brandon-b-miller
- Add option to drop cache in cuIO benchmarks (#10488) @vuule
- move benchmark input generation in device in reduction nvbench (#10486) @karthikeyann
- Support Segmented Min/Max Reduction on String Type (#10447) @isVoid
- List element Equality comparator (#10289) @devavret
- Implement all methods of groupby rank aggregation in libcudf, python (#9569) @karthikeyann
- Implement DataFrame.eval using libcudf ASTs (#8022) @vyasr

## 🛠️ Improvements

- Use `conda` compilers in env file (#10915) @galipremsagar
- Remove C style artifacts in cuIO (#10886) @vuule
- Rename `sliced_child` to `get_sliced_child`. (#10885) @bdice
- Replace defaulted stream value for libcudf APIs that use NVCOMP (#10877) @jbrennan333
- Add more unit tests for `cudf::distinct` for nested types with sliced input (#10860) @ttnghia
- Changing `list_view.cuh` to `list_view.hpp` (#10854) @ttnghia
- More error checking in `from_dlpack` (#10850) @wence-
- Cleanup regex compiler fixed quantifiers source (#10843) @davidwendt
- Adds the JNI call for Cuda.deviceSynchronize (#10839) @abellina
- Add missing cuda-python dependency to cudf (#10833) @bdice
- Change std::string parameters in cudf::strings APIs to std::string_view (#10832) @davidwendt
- Split up search.cu to improve compile time (#10831) @davidwendt
- Add tests for null scalar binaryops (#10828) @brandon-b-miller
- Cleanup regex compile optimize functions (#10825) @davidwendt
- Use `ThreadedMotoServer` instead of `subprocess` in spinning up `s3` server (#10822) @galipremsagar
- Import `NA` from `missing` rather than using `cudf.NA` everywhere (#10821) @brandon-b-miller
- Refactor regex builtin character-class identifiers (#10814) @davidwendt
- Change pattern parameter for regex APIs from std::string to std::string_view (#10810) @davidwendt
- Make the JNI API to get list offsets as a view public. (#10807) @revans2
- Add cudf JNI docker build github action (#10806) @pxLi
- Removed `mr` parameter from inplace bitmask operations (#10805) @AtlantaPepsi
- Refactor `cudf::contains`, renaming and switching parameters role (#10802) @ttnghia
- Handle closed property in IntervalDtype.from_pandas (#10798) @wence-
- Return weak orderings from `device_row_comparator`. (#10793) @rwlee
- Rework `Scalar` imports (#10791) @brandon-b-miller
- Enable ccache for cudfjni build in Docker (#10790) @gerashegalov
- Generic serialization of all column types (#10784) @wence-
- simplifying skiprows test in test_orc.py (#10783) @hyperbolic2346
- Use column_views instead of column_device_views in binary operations. (#10780) @bdice
- Add struct utility functions. (#10776) @bdice
- Add multiple rows to subword tokenizer benchmark (#10767) @davidwendt
- Refactor host decompression in ORC reader (#10764) @vuule
- Flush output streams before creating a process to drop caches (#10762) @vuule
- Refactor binaryop/compiled/util.cpp (#10756) @bdice
- Use warp per string for long strings in cudf::strings::contains() (#10739) @davidwendt
- Use generator expressions in any/all functions. (#10736) @bdice
- Use canonical &quot;magic methods&quot; (replace `x.__repr__()` with `repr(x)`). (#10735) @bdice
- Improve use of isinstance. (#10734) @bdice
- Rename tests from multiIndex to multiindex. (#10732) @bdice
- Two-table comparators with strong index types (#10730) @bdice
- Replace std::make_pair with std::pair (C++17 CTAD) (#10727) @karthikeyann
- Use structured bindings instead of std::tie (#10726) @karthikeyann
- Missing `f` prefix on f-strings fix (#10721) @code-review-doctor
- Add `max_file_size` parameter to chunked parquet dataset writer (#10718) @galipremsagar
- Deprecate `merge_sorted`, change dask cudf usage to internal method (#10713) @isVoid
- Prepare dask_cudf test_parquet.py for upcoming API changes (#10709) @rjzamora
- Remove or simplify various utility functions (#10705) @vyasr
- Allow building arrow with parquet and not python (#10702) @revans2
- Partial cuIO GPU decompression refactor (#10699) @vuule
- Cython API refactor: `merge.pyx` (#10698) @isVoid
- Fix random string data length to become variable (#10697) @galipremsagar
- Add bindings for index_of with column search key (#10696) @ChrisJar
- Deprecate index merging (#10689) @vyasr
- Remove cudf::strings::string namespace (#10684) @davidwendt
- Standardize imports. (#10680) @bdice
- Standardize usage of collections.abc. (#10679) @bdice
- Cython API Refactor: `transpose.pyx`, `sort.pyx` (#10675) @isVoid
- Add device_memory_resource parameter to create_string_vector_from_column (#10673) @davidwendt
- Split up mixed-join kernels source files (#10671) @davidwendt
- Use `std::filesystem` for temporary directory location and deletion (#10664) @vuule
- cleanup benchmark includes (#10661) @karthikeyann
- Use upstream clang-format pre-commit hook. (#10659) @bdice
- Clean up C++ includes to use &lt;&gt; instead of &quot;&quot;. (#10658) @bdice
- Handle RuntimeError thrown by CUDA Python in `validate_setup` (#10653) @shwina
- Rework JNI CMake to leverage rapids_find_package (#10649) @jlowe
- Use conda to build python packages during GPU tests (#10648) @Ethyling
- Deprecate various functions that don&#39;t need to be defined for Index. (#10647) @vyasr
- Update pinning to allow newer CMake versions. (#10646) @vyasr
- Bump hadoop-common from 3.1.4 to 3.2.3 in /java (#10645) @dependabot[bot]
- Remove `concurrent_unordered_multimap`. (#10642) @bdice
- Improve parquet dictionary encoding (#10635) @PointKernel
- Improve cudf::cuda_error (#10630) @sperlingxx
- Add support for null and non-numeric types in Series.diff and DataFrame.diff (#10625) @Matt711
- Branch 22.06 merge 22.04 (#10624) @vyasr
- Unpin `dask` &amp; `distributed` for development (#10623) @galipremsagar
- Slightly improve accuracy of stod in to_floats (#10622) @davidwendt
- Allow libcudfjni to be built as a static library (#10619) @jlowe
- Change stack-based regex state data to use global memory (#10600) @davidwendt
- Resolve Forward merging of `branch-22.04` into `branch-22.06` (#10598) @galipremsagar
- KvikIO as an alternative GDS backend (#10593) @madsbk
- Rename CUDA_TRY macro to CUDF_CUDA_TRY, rename CHECK_CUDA macro to CUDF_CHECK_CUDA. (#10589) @bdice
- Upgrade `cudf` to support `pandas` 1.4.x versions (#10584) @galipremsagar
- Refactor binary ops for timedelta and datetime columns (#10581) @vyasr
- Refactor cudf::strings::count_re API to use count_matches utility (#10580) @davidwendt
- Update `Programming Language :: Python` Versions to 3.8 &amp; 3.9 (#10579) @madsbk
- Automate Java cudf jar build with statically linked dependencies (#10578) @gerashegalov
- Add patch for thrust-cub 1.16 to fix sort compile times (#10577) @davidwendt
- Move binop methods from Frame to IndexedFrame and standardize the docstring (#10576) @vyasr
- Cleanup libcudf strings regex classes (#10573) @davidwendt
- Simplify preprocessing of arguments for DataFrame binops (#10563) @vyasr
- Reduce kernel calls to build strings findall results (#10559) @davidwendt
- Forward-merge branch-22.04 to branch-22.06 (#10557) @bdice
- Update strings contains benchmark to measure varying match rates (#10555) @davidwendt
- JNI: throw CUDA errors more specifically (#10551) @sperlingxx
- Enable building static libs (#10545) @trxcllnt
- Remove pip requirements files. (#10543) @bdice
- Remove Click pinnings that are unnecessary after upgrading black. (#10541) @vyasr
- Refactor `memory_usage` to improve performance (#10537) @galipremsagar
- Adjust the valid range of group index for replace_with_backrefs (#10530) @sperlingxx
- add accidentally removed comment. (#10526) @vyasr
- Update conda environment. (#10525) @vyasr
- Remove ColumnBase.__getitem__ (#10516) @vyasr
- Optimize `left_semi_join` by materializing the gather mask (#10511) @cheinger
- Define proper binary operation APIs for columns (#10509) @vyasr
- Upgrade `arrow-cpp` &amp; `pyarrow` to `7.0.0` (#10503) @galipremsagar
- Update to Thrust 1.16 (#10489) @bdice
- Namespace/Docstring Fixes for Reduction (#10471) @isVoid
- Update cudfjni 22.06.0-SNAPSHOT (#10467) @pxLi
- Use Lists of Columns for Various Files (#10463) @isVoid
- Additional refactoring of hash functions (#10462) @bdice
- Fix Series.str.findall behavior for expand=False. (#10459) @bdice
- Remove deprecated code. (#10450) @vyasr
- Update cmake-format version. (#10440) @vyasr
- Consolidate C++ `conda` recipes and add `libcudf-tests` package (#10326) @ajschmidt8
- Use conda compilers (#10275) @Ethyling
- Add row bitmask as a `detail::hash_join` member (#10248) @PointKernel
v22.04.00: tag_name: v22.04.00
body: ## 🚨 Breaking Changes

- Drop unsupported method argument from nunique and distinct_count. (#10411) @bdice
- Refactor stream compaction APIs (#10370) @PointKernel
- Add scan_aggregation and reduce_aggregation derived types. (#10357) @nvdbaranec
- Avoid `decimal` type narrowing for decimal binops (#10299) @galipremsagar
- Rewrites `sample` API (#10262) @isVoid
- Remove probe-time null equality parameters in `cudf::hash_join` (#10260) @PointKernel
- Enable proper `Index` round-tripping in `orc` reader and writer (#10170) @galipremsagar
- Add JNI for `strings::split_re` and `strings::split_record_re` (#10139) @ttnghia
- Change cudf::strings::find_multiple to return a lists column (#10134) @davidwendt
- Remove the option to completely disable decimal128 columns in the ORC reader (#10127) @vuule
- Remove deprecated code (#10124) @vyasr
- Update gpu_utils.py to reflect current CUDA support. (#10113) @bdice
- Optimize compaction operations (#10030) @PointKernel
- Remove deprecated method Series.set_index. (#9945) @bdice
- Add cudf::strings::findall_record API (#9911) @davidwendt
- Upgrade `arrow` &amp; `pyarrow` to `6.0.1` (#9686) @galipremsagar

## 🐛 Bug Fixes

- Fix an issue with tdigest merge aggregations. (#10506) @nvdbaranec
- Batch of fixes for index overflows in grid stride loops. (#10448) @nvdbaranec
- Update dask_cudf imports to be compatible with latest dask (#10442) @rlratzel
- Fix for integer overflow in contiguous-split (#10437) @jbrennan333
- Fix has_null predicate for drop_list_duplicates on nested structs (#10436) @sperlingxx
- Fix empty reduce with List output and non-List input (#10435) @sperlingxx
- Fix `list` and `struct` meta generation issue in `dask-cudf` (#10434) @galipremsagar
- Fix error in `cudf.to_numeric` when a `bool` input is passed (#10431) @galipremsagar
- Support cupy array in `quantile` input (#10429) @galipremsagar
- Fix benchmarks to work with new aggregation types (#10428) @davidwendt
- Fix cudf::shift to handle offset greater than column size (#10414) @davidwendt
- Fix lifespan of the temporary directory that holds cuFile configuration file (#10403) @vuule
- Fix error thrown in compiled-binaryop benchmark (#10398) @davidwendt
- Limiting async allocator using alignment of 512 (#10395) @rongou
- Include &lt;optional&gt; in multibyte split. (#10385) @bdice
- Fix issue with column and scalar re-assignment (#10377) @galipremsagar
- Fix floating point data generation in benchmarks (#10372) @vuule
- Avoid overflow in fused_concatenate_kernel output_index (#10344) @abellina
- Remove is_relationally_comparable for table device views (#10342) @davidwendt
- Fix debug compile error in device_span to column_view conversion (#10331) @davidwendt
- Add Pascal support to JCUDF transcode (row_conversion) (#10329) @mythrocks
- Fix `std::bad_alloc` exception due to JIT reserving a huge buffer (#10317) @ttnghia
- Fixes up the overflowed fixed-point round on nullable column (#10316) @sperlingxx
- Fix DataFrame slicing issues for empty cases (#10310) @brandon-b-miller
- Fix documentation issues (#10307) @ajschmidt8
- Allow Java bindings to use default decimal precisions when writing columns (#10276) @sperlingxx
- Fix incorrect slicing of GDS read/write calls (#10274) @vuule
- Fix out-of-memory error in compiled-binaryop benchmark (#10269) @davidwendt
- Add tests of reflected ufuncs and fix behavior of logical reflected ufuncs (#10261) @vyasr
- Remove probe-time null equality parameters in `cudf::hash_join` (#10260) @PointKernel
- Fix out-of-memory error in UrlDecode benchmark (#10258) @davidwendt
- Fix groupby reductions that perform operations on source type instead of target type (#10250) @ttnghia
- Fix small leak in explode (#10245) @revans2
- Yet another small JNI memory leak (#10238) @revans2
- Fix regex octal parsing to limit to 3 characters (#10233) @davidwendt
- Fix string to decimal128 conversion handling large exponents (#10231) @davidwendt
- Fix JNI leak on copy to device (#10229) @revans2
- Fix the data generator element size for decimal types (#10225) @vuule
- Fix `decimal` metadata in parquet writer (#10224) @galipremsagar
- Fix strings handling of hex in regex pattern (#10220) @davidwendt
- Fix docs builds (#10216) @ajschmidt8
- Fix a leftover _has_nulls change from Nullate (#10211) @devavret
- Fix bitmask of the output for JNI of `lists::drop_list_duplicates` (#10210) @ttnghia
- Fix compile error in `binaryop/compiled/util.cpp` (#10209) @ttnghia
- Skip ORC and Parquet readers&#39; benchmark cases that are not currently supported (#10194) @vuule
- Fix JNI leak of a cudf::column_view native class. (#10171) @revans2
- Enable proper `Index` round-tripping in `orc` reader and writer (#10170) @galipremsagar
- Convert Column Name to String Before Using Struct Column Factory (#10156) @isVoid
- Preserve the correct `ListDtype` while creating an identical empty column (#10151) @galipremsagar
- benchmark fixture - static object pointer fix (#10145) @karthikeyann
- Fix UDF Caching (#10133) @brandon-b-miller
- Raise duplicate column error in `DataFrame.rename` (#10120) @galipremsagar
- Fix flaky memory usage test by guaranteeing array size. (#10114) @vyasr
- Encode values from python callback for C++ (#10103) @jdye64
- Add check for regex instructions causing an infinite-loop (#10095) @davidwendt
- Remove metadata singleton from nvtext normalizer (#10090) @davidwendt
- Column equality testing fixes (#10011) @brandon-b-miller
- Pin libcudf runtime dependency for cudf / libcudf-kafka nightlies (#9847) @charlesbluca

## 📖 Documentation

- Fix documentation for DataFrame.corr and Series.corr. (#10493) @bdice
- Add `cut` to API docs (#10479) @shwina
- Remove documentation for methods removed in #10124. (#10366) @bdice
- Fix documentation issues (#10306) @ajschmidt8
- Fix `fixed_point` binary operation documentation (#10198) @codereport
- Remove cleaned up methods from docs (#10189) @galipremsagar
- Update developer guide to recommend no default stream parameter. (#10136) @bdice
- Update benchmarking guide to use NVBench. (#10093) @bdice

## 🚀 New Features

- Add StringIO support to read_text (#10465) @cwharris
- Add support for tdigest and merge_tdigest aggregations through cudf::reduce (#10433) @nvdbaranec
- JNI support for Collect Ops in Reduction (#10427) @sperlingxx
- Enable read_text with dask_cudf using byte_range (#10407) @ChrisJar
- Add `cudf::stable_sort_by_key` (#10387) @PointKernel
- Implement `maps_column_view` abstraction over `LIST&lt;STRUCT&lt;K,V&gt;&gt;` (#10380) @mythrocks
- Support Java bindings for Avro reader (#10373) @HaoYang670
- Refactor stream compaction APIs (#10370) @PointKernel
- Support collect aggregations in reduction (#10353) @sperlingxx
- Refactor array_ufunc for Index and unify across all classes (#10346) @vyasr
- Add JNI for extract_list_element with index column (#10341) @firestarman
- Support `min` and `max` operations for structs in rolling window (#10332) @ttnghia
- Add device create_sequence_table for benchmarks (#10300) @karthikeyann
- Enable numpy ufuncs for DataFrame (#10287) @vyasr
- move input generation for json benchmark to device (#10281) @karthikeyann
- move input generation for type dispatcher benchmark to device (#10280) @karthikeyann
- move input generation for copy benchmark to device (#10279) @karthikeyann
- generate url decode benchmark input in device (#10278) @karthikeyann
- device input generation in join bench (#10277) @karthikeyann
- Add nvtext::byte_pair_encoding API (#10270) @davidwendt
- Prevent internal usage of expensive APIs (#10263) @vyasr
- Column to JCUDF row for tables with strings (#10235) @hyperbolic2346
- Support `percent_rank()` aggregation (#10227) @mythrocks
- Refactor Series.__array_ufunc__ (#10217) @vyasr
- Reduce pytest runtime (#10203) @brandon-b-miller
- Add regex flags parameter to python cudf strings split (#10185) @davidwendt
- Support for `MOD`, `PMOD` and `PYMOD` for `decimal32/64/128` (#10179) @codereport
- Adding string row size iterator for row to column and column to row conversion (#10157) @hyperbolic2346
- Add file size counter to cuIO benchmarks (#10154) @vuule
- byte_range support for multibyte_split/read_text (#10150) @cwharris
- Add JNI for `strings::split_re` and `strings::split_record_re` (#10139) @ttnghia
- Add `maxSplit` parameter to Java binding for `strings:split` (#10137) @ttnghia
- Add libcudf strings split API that accepts regex pattern (#10128) @davidwendt
- generate benchmark input in device (#10109) @karthikeyann
- Avoid `nan_as_null` op if `nan_count` is 0 (#10082) @galipremsagar
- Add Dataframe and Index nunique (#10077) @martinfalisse
- Support nanosecond timestamps in parquet (#10063) @PointKernel
- Java bindings for mixed semi and anti joins (#10040) @jlowe
- Implement mixed equality/conditional semi/anti joins (#10037) @vyasr
- Optimize compaction operations (#10030) @PointKernel
- Support `args=` in `Series.apply` (#9982) @brandon-b-miller
- Add cudf::strings::findall_record API (#9911) @davidwendt
- Add covariance for sort groupby (python) (#9889) @mayankanand007
- Implement DataFrame diff() (#9817) @skirui-source
- Implement DataFrame pct_change (#9805) @skirui-source
- Support segmented reductions and null mask reductions (#9621) @isVoid
- Add &#39;spearman&#39; correlation method for `dataframe.corr` and `series.corr` (#7141) @dominicshanshan

## 🛠️ Improvements

- Add `scipy` skip for a test (#10502) @galipremsagar
- Temporarily disable new `ops-bot` functionality (#10496) @ajschmidt8
- Include &lt;cstddef&gt; to fix compilation of parquet reader on GCC 11. (#10483) @bdice
- Pin `dask` and `distributed` (#10481) @galipremsagar
- MD5 refactoring. (#10445) @bdice
- Remove or split up Frame methods that use the index (#10439) @vyasr
- Centralization of tdigest aggregation code. (#10422) @nvdbaranec
- Simplify column binary operations (#10421) @vyasr
- Add `.github/ops-bot.yaml` config file (#10420) @ajschmidt8
- Use list of columns for methods in `Groupby.pyx` (#10419) @isVoid
- Remove warnings in `test_timedelta.py` (#10418) @galipremsagar
- Fix some warnings in `test_parquet.py` (#10416) @galipremsagar
- JNI support for segmented reduce (#10413) @revans2
- Clean up null mask after purging null entries (#10412) @sperlingxx
- Drop unsupported method argument from nunique and distinct_count. (#10411) @bdice
- Use str instead of builtins.str. (#10410) @bdice
- Fix warnings in `test_rolling` (#10405) @bdice
- Enable `codecov` github-check in CI (#10404) @galipremsagar
- Fix warnings in test_cuda_apply, test_numerical, test_pickling, test_unaops. (#10402) @bdice
- Set column names in `_from_columns_like_self` factory (#10400) @isVoid
- Refactor `nvtx` annotations in `cudf` &amp; `dask-cudf` (#10396) @galipremsagar
- Consolidate .cov and .corr for sort groupby (#10386) @skirui-source
- Consolidate some Frame APIs (#10381) @vyasr
- Refactor hash functions and `hash_combine` (#10379) @bdice
- Add `nvtx` annotations for `Series` and `Index` (#10374) @galipremsagar
- Refactor `filling.repeat` API (#10371) @isVoid
- Move standalone UTF8 functions from string_view.hpp to utf8.hpp (#10369) @davidwendt
- Remove doc for deprecated function `one_hot_encoding` (#10367) @isVoid
- Refactor array function (#10364) @vyasr
- Fix warnings in test_csv.py. (#10362) @bdice
- Implement a mixin for binops (#10360) @vyasr
- Refactor cython interface: `copying.pyx` (#10359) @isVoid
- Implement a mixin for scans (#10358) @vyasr
- Add scan_aggregation and reduce_aggregation derived types. (#10357) @nvdbaranec
- Add cleanup of python artifacts (#10355) @galipremsagar
- Fix warnings in test_categorical.py. (#10354) @bdice
- Create a dispatcher for invoking regex kernel functions (#10349) @davidwendt
- Fix `codecov` in CI (#10347) @galipremsagar
- Enable caching for `memory_usage` calculation in `Column` (#10345) @galipremsagar
- C++17 cleanup: traits replace std::enable_if&lt;&gt;::type with std::enable_if_t (#10343) @karthikeyann
- JNI: Support appending DECIMAL128 into ColumnBuilder in terms of byte array (#10338) @sperlingxx
- multibyte_split test improvements (#10328) @vuule
- Fix warnings in test_binops.py. (#10327) @bdice
- Fix warnings from pandas in test_array_ufunc.py. (#10324) @bdice
- Update upload script (#10321) @ajschmidt8
- Move hash type declarations to hashing.hpp (#10320) @davidwendt
- C++17 cleanup: traits replace `::value` with `_v` (#10319) @karthikeyann
- Remove internal columns usage (#10315) @vyasr
- Remove extraneous `build.sh` parameter (#10313) @ajschmidt8
- Add const qualifier to MurmurHash3_32::hash_combine (#10311) @davidwendt
- Remove `TODO` in `libcudf_kafka` recipe (#10309) @ajschmidt8
- Add conversions between column_view and device_span&lt;T const&gt;. (#10302) @bdice
- Avoid `decimal` type narrowing for decimal binops (#10299) @galipremsagar
- Deprecate `DataFrame.iteritems` and introduce `.items` (#10298) @galipremsagar
- Explicitly request CMake use `gnu++17` over `c++17` (#10297) @robertmaynard
- Add copyright check as pre-commit hook. (#10290) @vyasr
- DataFrame `insert` and creation optimizations (#10285) @galipremsagar
- Improve hash join detail functions (#10273) @PointKernel
- Replace custom `cached_property` implementation with functools (#10272) @shwina
- Rewrites `sample` API (#10262) @isVoid
- Bump hadoop-common from 3.1.0 to 3.1.4 in /java (#10259) @dependabot[bot]
- Remove making redundant `copy` across code-base (#10257) @galipremsagar
- Add more `nvtx` annotations (#10256) @galipremsagar
- Add `copyright` check in `cudf` (#10253) @galipremsagar
- Remove redundant copies in `fillna` to improve performance (#10241) @galipremsagar
- Remove `std::numeric_limit` specializations for timestamp &amp; durations (#10239) @codereport
- Optimize `DataFrame` creation across code-base (#10236) @galipremsagar
- Change pytest distribution algorithm and increase parallelism in CI (#10232) @galipremsagar
- Add environment variables for I/O thread pool and slice sizes (#10218) @vuule
- Add regex flags to strings findall functions (#10208) @davidwendt
- Update dask-cudf parquet tests to reflect upstream bugfixes to `_metadata` (#10206) @charlesbluca
- Remove unnecessary nunique function in Series. (#10205) @martinfalisse
- Refactor DataFrame tests. (#10204) @bdice
- Rewrites `column.__setitem__`, Use `boolean_mask_scatter` (#10202) @isVoid
- Java utilities to aid in accelerating aggregations on 128-bit types (#10201) @jlowe
- Fix docstrings alignment in `Frame` methods (#10199) @galipremsagar
- Fix cuco pair issue in hash join (#10195) @PointKernel
- Replace `dask` groupby `.index` usages with `.by` (#10193) @galipremsagar
- Add regex flags to strings extract function (#10192) @davidwendt
- Forward-merge branch-22.02 to branch-22.04 (#10191) @bdice
- Add CMake `install` rule for tests (#10190) @ajschmidt8
- Unpin `dask` &amp; `distributed` (#10182) @galipremsagar
- Add comments to explain test validation (#10176) @galipremsagar
- Reduce warnings in pytest output (#10168) @bdice
- Some consolidation of indexed frame methods (#10167) @vyasr
- Refactor isin implementations (#10165) @vyasr
- Faster struct row comparator (#10164) @devavret
- Refactor groupby::get_groups. (#10161) @bdice
- Deprecate `decimal_cols_as_float` in ORC reader (C++ layer) (#10152) @vuule
- Replace `ccache` with `sccache` (#10146) @ajschmidt8
- Murmur3 hash kernel cleanup (#10143) @rwlee
- Deprecate `decimal_cols_as_float` in ORC reader (#10142) @galipremsagar
- Run pyupgrade 2.31.0. (#10141) @bdice
- Remove `drop_nan` from internal `IndexedFrame._drop_na_rows`. (#10140) @bdice
- Change cudf::strings::find_multiple to return a lists column (#10134) @davidwendt
- Update cmake-format script for branch 22.04. (#10132) @bdice
- Accept r-value references in convert_table_for_return(): (#10131) @mythrocks
- Remove the option to completely disable decimal128 columns in the ORC reader (#10127) @vuule
- Remove deprecated code (#10124) @vyasr
- Update gpu_utils.py to reflect current CUDA support. (#10113) @bdice
- Remove benchmarks suffix (#10112) @bdice
- Update cudf java binding version to 22.04.0-SNAPSHOT (#10084) @pxLi
- Remove unnecessary docker files. (#10069) @vyasr
- Limit benchmark iterations using environment variable (#10060) @karthikeyann
- Add timing chart for libcudf build metrics report page (#10038) @davidwendt
- JNI: Rewrite growBuffersAndRows to accelerate the HostColumnBuilder (#10025) @sperlingxx
- Reduce redundant code in CUDF JNI (#10019) @mythrocks
- Make snappy decompress check more efficient (#9995) @cheinger
- Remove deprecated method Series.set_index. (#9945) @bdice
- Implement a mixin for reductions (#9925) @vyasr
- JNI: Push back decimal utils from spark-rapids (#9907) @sperlingxx
- Add `assert_column_memory_*` (#9882) @isVoid
- Add CUDF_UNREACHABLE macro. (#9727) @bdice
- Upgrade `arrow` &amp; `pyarrow` to `6.0.1` (#9686) @galipremsagar
v22.02.00: tag_name: v22.02.00
body: ## 🚨 Breaking Changes

- ORC writer API changes for granular statistics (#10058) @mythrocks
- `decimal128` Support for `to/from_arrow` (#9986) @codereport
- Remove deprecated method `one_hot_encoding` (#9977) @isVoid
- Remove str.subword_tokenize (#9968) @VibhuJawa
- Remove deprecated `method` parameter from `merge` and `join`. (#9944) @bdice
- Remove deprecated method DataFrame.hash_columns. (#9943) @bdice
- Remove deprecated method Series.hash_encode. (#9942) @bdice
- Refactoring ceil/round/floor code for datetime64 types (#9926) @mayankanand007
- Introduce `nan_as_null` parameter for `cudf.Index` (#9893) @galipremsagar
- Add regex_flags parameter to strings replace_re functions (#9878) @davidwendt
- Break tie for `top` categorical columns in `Series.describe` (#9867) @isVoid
- Add partitioning support in parquet writer (#9810) @devavret
- Move `drop_duplicates`, `drop_na`, `_gather`, `take` to IndexFrame and create their `_base_index` counterparts (#9807) @isVoid
- Raise temporary error for `decimal128` types in parquet reader (#9804) @galipremsagar
- Change default `dtype` of all nulls column from `float` to `object` (#9803) @galipremsagar
- Remove unused masked udf cython/c++ code (#9792) @brandon-b-miller
- Pick smallest decimal type with required precision in ORC reader (#9775) @vuule
- Add decimal128 support to Parquet reader and writer (#9765) @vuule
- Refactor TableTest assertion methods to a separate utility class (#9762) @jlowe
- Use cuFile direct device reads/writes by default in cuIO (#9722) @vuule
- Match pandas scalar result types in reductions (#9717) @brandon-b-miller
- Add parameters to control row group size in Parquet writer (#9677) @vuule
- Refactor bit counting APIs, introduce valid/null count functions, and split host/device side code for segmented counts. (#9588) @bdice
- Add support for `decimal128` in cudf python (#9533) @galipremsagar
- Implement `lists::index_of()` to find positions in list rows (#9510) @mythrocks
- Rewriting row/column conversions for Spark &lt;-&gt; cudf data conversions (#8444) @hyperbolic2346

## 🐛 Bug Fixes

- Add check for negative stripe index in ORC reader (#10074) @vuule
- Update Java tests to expect DECIMAL128 from Arrow (#10073) @jlowe
- Avoid index materialization when `DataFrame` is created with un-named `Series` objects (#10071) @galipremsagar
- fix gcc 11 compilation errors (#10067) @rongou
- Fix `columns` ordering issue in parquet reader (#10066) @galipremsagar
- Fix dataframe setitem with `ndarray` types (#10056) @galipremsagar
- Remove implicit copy due to conversion from cudf::size_type and size_t (#10045) @robertmaynard
- Include &lt;optional&gt; in headers that use std::optional (#10044) @robertmaynard
- Fix repr and concat of `StructColumn` (#10042) @galipremsagar
- Include row group level stats when writing ORC files (#10041) @vuule
- build.sh respects the `--build_metrics` and `--incl_cache_stats` flags (#10035) @robertmaynard
- Fix memory leaks in JNI native code. (#10029) @mythrocks
- Update JNI to use new arena mr constructor (#10027) @rongou
- Fix null check when comparing structs in `arg_min` operation of reduction/groupby (#10026) @ttnghia
- Wrap CI script shell variables in quotes to fix local testing. (#10018) @bdice
- cudftestutil no longer propagates compiler flags to external users (#10017) @robertmaynard
- Remove `CUDA_DEVICE_CALLABLE` macro usage (#10015) @hyperbolic2346
- Add missing list filling header in meta.yaml (#10007) @devavret
- Fix `conda` recipes for `custreamz` &amp; `cudf_kafka` (#10003) @ajschmidt8
- Fix matching regex word-boundary (\b) in strings replace (#9997) @davidwendt
- Fix null check when comparing structs in `min` and `max` reduction/groupby operations (#9994) @ttnghia
- Fix octal pattern matching in regex string (#9993) @davidwendt
- `decimal128` Support for `to/from_arrow` (#9986) @codereport
- Fix groupby shift/diff/fill after selecting from a  `GroupBy` (#9984) @shwina
- Fix the overflow problem of decimal rescale (#9966) @sperlingxx
- Use default value for decimal precision in parquet writer when not specified (#9963) @devavret
- Fix cudf java build error. (#9958) @firestarman
- Use gpuci_mamba_retry to install local artifacts. (#9951) @bdice
- Fix regression HostColumnVectorCore requiring native libs (#9948) @jlowe
- Rename aggregate_metadata in writer to fix name collision (#9938) @devavret
- Fixed issue with percentile_approx where output tdigests could have uninitialized data at the end. (#9931) @nvdbaranec
- Resolve racecheck errors in ORC kernels (#9916) @vuule
- Fix the java build after parquet partitioning support (#9908) @revans2
- Fix compilation of benchmark for parquet writer. (#9905) @bdice
- Fix a memcheck error in ORC writer (#9896) @vuule
- Introduce `nan_as_null` parameter for `cudf.Index` (#9893) @galipremsagar
- Fix fallback to sort aggregation for grouping only hash aggregate (#9891) @abellina
- Add zlib to cudfjni link when using static libcudf library dependency (#9890) @jlowe
- TimedeltaIndex constructor raises an AttributeError. (#9884) @skirui-source
- Fix cudf.Scalar string datetime construction (#9875) @brandon-b-miller
- Load libcufile.so with RTLD_NODELETE flag (#9872) @vuule
- Break tie for `top` categorical columns in `Series.describe` (#9867) @isVoid
- Fix null handling for structs `min` and `arg_min` in groupby, groupby scan, reduction, and inclusive_scan (#9864) @ttnghia
- Add one-level list encoding support in parquet reader (#9848) @PointKernel
- Fix an out-of-bounds read in validity copying in contiguous_split. (#9842) @nvdbaranec
- Fix join of MultiIndex to Index with one column and overlapping name. (#9830) @vyasr
- Fix caching in `Series.applymap` (#9821) @brandon-b-miller
- Enforce boolean `ascending` for dask-cudf `sort_values` (#9814) @charlesbluca
- Fix ORC writer crash with empty input columns (#9808) @vuule
- Change default `dtype` of all nulls column from `float` to `object` (#9803) @galipremsagar
- Load native dependencies when Java ColumnView is loaded (#9800) @jlowe
- Fix dtype-argument bug in dask_cudf read_csv (#9796) @rjzamora
- Fix overflow for min calculation in strings::from_timestamps (#9793) @revans2
- Fix memory error due to lambda return type deduction limitation (#9778) @karthikeyann
- Revert regex $/EOL end-of-string new-line special case handling (#9774) @davidwendt
- Fix missing streams (#9767) @karthikeyann
- Fix make_empty_scalar_like on list_type (#9759) @sperlingxx
- Update cmake and conda to 22.02 (#9746) @devavret
- Fix out-of-bounds memory write in decimal128-to-string conversion (#9740) @davidwendt
- Match pandas scalar result types in reductions (#9717) @brandon-b-miller
- Fix regex non-multiline EOL/$ matching strings ending with a new-line (#9715) @davidwendt
- Fixed build by adding more checks for int8, int16 (#9707) @razajafri
- Fix `null` handling when `boolean` dtype is passed (#9691) @galipremsagar
- Fix stream usage in `segmented_gather()` (#9679) @mythrocks

## 📖 Documentation

- Update `decimal` dtypes related docs entries (#10072) @galipremsagar
- Fix regex doc describing hexadecimal escape characters (#10009) @davidwendt
- Fix cudf compilation instructions. (#9956) @esoha-nvidia
- Fix see also links for IO APIs (#9895) @galipremsagar
- Fix build instructions for libcudf doxygen (#9837) @davidwendt
- Fix some doxygen warnings and add missing documentation (#9770) @karthikeyann
- update cuda version in local build (#9736) @karthikeyann
- Fix doxygen for enum types in libcudf (#9724) @davidwendt
- Spell check fixes (#9682) @karthikeyann
- Fix links in C++ Developer Guide. (#9675) @bdice

## 🚀 New Features

- Remove libcudacxx patch needed for nvcc 11.4 (#10057) @robertmaynard
- Allow CuPy 10 (#10048) @jakirkham
- Add in support for NULL_LOGICAL_AND and NULL_LOGICAL_OR binops (#10016) @revans2
- Add `groupby.transform` (only support for aggregations) (#10005) @shwina
- Add partitioning support to Parquet chunked writer (#10000) @devavret
- Add jni for sequences (#9972) @wbo4958
- Java bindings for mixed left, inner, and full joins (#9941) @jlowe
- Java bindings for JSON reader support (#9940) @wbo4958
- Enable transpose for string columns in cudf python (#9937) @galipremsagar
- Support structs for `cudf::contains` with column/scalar input (#9929) @ttnghia
- Implement mixed equality/conditional joins (#9917) @vyasr
- Add cudf::strings::extract_all API (#9909) @davidwendt
- Implement JNI for `cudf::scatter` APIs (#9903) @ttnghia
- JNI: Function to copy and set validity from bool column. (#9901) @mythrocks
- Add dictionary support to cudf::copy_if_else (#9887) @davidwendt
- add run_benchmarks target for running benchmarks with json output (#9879) @karthikeyann
- Add regex_flags parameter to strings replace_re functions (#9878) @davidwendt
- Add_suffix and add_prefix for DataFrames and Series (#9846) @mayankanand007
- Add JNI for `cudf::drop_duplicates` (#9841) @ttnghia
- Implement per-list sequence (#9839) @ttnghia
- adding `series.transpose` (#9835) @mayankanand007
- Adding support for `Series.autocorr` (#9833) @mayankanand007
- Support round operation on datetime64 datatypes (#9820) @mayankanand007
- Add partitioning support in parquet writer (#9810) @devavret
- Raise temporary error for `decimal128` types in parquet reader (#9804) @galipremsagar
- Add decimal128 support to Parquet reader and writer (#9765) @vuule
- Optimize `groupby::scan` (#9754) @PointKernel
- Add sample JNI API (#9728) @res-life
- Support `min` and `max` in inclusive scan for structs (#9725) @ttnghia
- Add `first` and `last` method to `IndexedFrame` (#9710) @isVoid
- Support `min` and `max` reduction for structs (#9697) @ttnghia
- Add parameters to control row group size in Parquet writer (#9677) @vuule
- Run compute-sanitizer in nightly build (#9641) @karthikeyann
- Implement Series.datetime.floor (#9571) @skirui-source
- ceil/floor for `DatetimeIndex` (#9554) @mayankanand007
- Add support for `decimal128` in cudf python (#9533) @galipremsagar
- Implement `lists::index_of()` to find positions in list rows (#9510) @mythrocks
- custreamz oauth callback for kafka (librdkafka) (#9486) @jdye64
- Add Pearson correlation for sort groupby (python) (#9166) @skirui-source
- Interchange dataframe protocol (#9071) @iskode
- Rewriting row/column conversions for Spark &lt;-&gt; cudf data conversions (#8444) @hyperbolic2346

## 🛠️ Improvements

- Prepare upload scripts for Python 3.7 removal (#10092) @Ethyling
- Simplify custreamz and cudf_kafka recipes files (#10065) @Ethyling
- ORC writer API changes for granular statistics (#10058) @mythrocks
- Remove python constraints in cutreamz and cudf_kafka recipes (#10052) @Ethyling
- Unpin `dask` and `distributed` in CI (#10028) @galipremsagar
- Add `_from_column_like_self` factory (#10022) @isVoid
- Replace custom CUDA bindings previously provided by RMM with official CUDA Python bindings (#10008) @shwina
- Use `cuda::std::is_arithmetic` in `cudf::is_numeric` trait. (#9996) @bdice
- Clean up CUDA stream use in cuIO (#9991) @vuule
- Use addressed-ordered first fit for the pinned memory pool (#9989) @rongou
- Add strings tests to transpose_test.cpp (#9985) @davidwendt
- Use gpuci_mamba_retry on Java CI. (#9983) @bdice
- Remove deprecated method `one_hot_encoding` (#9977) @isVoid
- Minor cleanup of unused Python functions (#9974) @vyasr
- Use new efficient partitioned parquet writing in cuDF (#9971) @devavret
- Remove str.subword_tokenize (#9968) @VibhuJawa
- Forward-merge branch-21.12 to branch-22.02 (#9947) @bdice
- Remove deprecated `method` parameter from `merge` and `join`. (#9944) @bdice
- Remove deprecated method DataFrame.hash_columns. (#9943) @bdice
- Remove deprecated method Series.hash_encode. (#9942) @bdice
- use ninja in java ci build (#9933) @rongou
- Add build-time publish step to cpu build script (#9927) @davidwendt
- Refactoring ceil/round/floor code for datetime64 types (#9926) @mayankanand007
- Remove various unused functions (#9922) @vyasr
- Raise in `query` if dtype is not supported (#9921) @brandon-b-miller
- Add missing imports tests (#9920) @Ethyling
- Spark Decimal128 hashing (#9919) @rwlee
- Replace `thrust/std::get` with structured bindings (#9915) @codereport
- Upgrade thrust version to 1.15 (#9912) @robertmaynard
- Remove conda envs for CUDA 11.0 and 11.2. (#9910) @bdice
- Return count of set bits from inplace_bitmask_and. (#9904) @bdice
- Use dynamic nullate for join hasher and equality comparator (#9902) @davidwendt
- Update ucx-py version on release using rvc (#9897) @Ethyling
- Remove `IncludeCategories` from `.clang-format` (#9876) @codereport
- Support statically linking CUDA runtime for Java bindings (#9873) @jlowe
- Add `clang-tidy` to libcudf (#9860) @codereport
- Remove deprecated methods from Java Table class (#9853) @jlowe
- Add test for map column metadata handling in ORC writer (#9852) @vuule
- Use pandas `to_offset` to parse frequency string in `date_range` (#9843) @isVoid
- add templated benchmark with fixture (#9838) @karthikeyann
- Use list of column inputs for `apply_boolean_mask` (#9832) @isVoid
- Added a few more tests for Decimal to String cast (#9818) @razajafri
- Run doctests. (#9815) @bdice
- Avoid overflow for fixed_point round (#9809) @sperlingxx
- Move `drop_duplicates`, `drop_na`, `_gather`, `take` to IndexFrame and create their `_base_index` counterparts (#9807) @isVoid
- Use vector factories for host-device copies. (#9806) @bdice
- Refactor host device macros (#9797) @vyasr
- Remove unused masked udf cython/c++ code (#9792) @brandon-b-miller
- Allow custom sort functions for dask-cudf `sort_values` (#9789) @charlesbluca
- Improve build time of libcudf iterator tests (#9788) @davidwendt
- Copy Java native dependencies directly into classpath (#9787) @jlowe
- Add decimal types to cuIO benchmarks (#9776) @vuule
- Pick smallest decimal type with required precision in ORC reader (#9775) @vuule
- Avoid overflow for `fixed_point` `cudf::cast` and performance optimization (#9772) @codereport
- Use CTAD with Thrust function objects (#9768) @codereport
- Refactor TableTest assertion methods to a separate utility class (#9762) @jlowe
- Use Java classloader to find test resources (#9760) @jlowe
- Allow cast decimal128 to string and add tests (#9756) @razajafri
- Load balance optimization for contiguous_split (#9755) @nvdbaranec
- Consolidate and improve `reset_index` (#9750) @isVoid
- Update to UCX-Py 0.24 (#9748) @pentschev
- Skip cufile tests in JNI build script (#9744) @pxLi
- Enable string to decimal 128 cast (#9742) @razajafri
- Use stop instead of stop_. (#9735) @bdice
- Forward-merge branch-21.12 to branch-22.02 (#9730) @bdice
- Improve cmake format script (#9723) @vyasr
- Use cuFile direct device reads/writes by default in cuIO (#9722) @vuule
- Add directory-partitioned data support to cudf.read_parquet (#9720) @rjzamora
- Use stream allocator adaptor for hash join table (#9704) @PointKernel
- Update check for inf/nan strings in libcudf float conversion to ignore case (#9694) @davidwendt
- Update cudf JNI to 22.02.0-SNAPSHOT (#9681) @pxLi
- Replace cudf&#39;s concurrent_ordered_map with cuco::static_map in semi/anti joins (#9666) @vyasr
- Some improvements to `parse_decimal` function and bindings for `is_fixed_point` (#9658) @razajafri
- Add utility to format ninja-log build times (#9631) @davidwendt
- Allow runtime has_nulls parameter for row operators (#9623) @davidwendt
- Use fsspec.parquet for improved read_parquet performance from remote storage (#9589) @rjzamora
- Refactor bit counting APIs, introduce valid/null count functions, and split host/device side code for segmented counts. (#9588) @bdice
- Use List of Columns as Input for `drop_nulls`, `gather` and `drop_duplicates` (#9558) @isVoid
- Simplify merge internals and reduce overhead (#9516) @vyasr
- Add `struct` generation support in datagenerator &amp; fuzz tests (#9180) @galipremsagar
- Simplify write_csv by removing unnecessary writer/impl classes (#9089) @cwharris
v21.12.02: tag_name: v21.12.02
body: v21.12.02
v21.12.01: tag_name: v21.12.01
body: v21.12.01
v21.12.00: tag_name: v21.12.00
body: ## 🚨 Breaking Changes

- Update `bitmask_and` and `bitmask_or` to return a pair of resulting mask and count of unset bits (#9616) @PointKernel
- Remove sizeof and standardize on memory_usage (#9544) @vyasr
- Add support for single-line regex anchors ^/$ in contains_re (#9482) @davidwendt
- Refactor sorting APIs (#9464) @vyasr
- Update Java nvcomp JNI bindings to nvcomp 2.x API (#9384) @jbrennan333
- Support Python UDFs written in terms of rows (#9343) @brandon-b-miller
- JNI: Support nested types in ORC writer (#9334) @firestarman
- Optionally nullify out-of-bounds indices in segmented_gather(). (#9318) @mythrocks
- Refactor cuIO timestamp processing with `cuda::std::chrono` (#9278) @PointKernel
- Various internal MultiIndex improvements (#9243) @vyasr

## 🐛 Bug Fixes

- Fix read_parquet bug for bytes input (#9669) @rjzamora
- Use `_gather` internal for `sort_*` (#9668) @isVoid
- Fix behavior of equals for non-DataFrame Frames and add tests. (#9653) @vyasr
- Dont recompute output size if it is already available (#9649) @abellina
- Fix read_parquet bug for extended dtypes from remote storage (#9638) @rjzamora
- add const when getting data from a JNI data wrapper (#9637) @wjxiz1992
- Fix debrotli issue on CUDA 11.5 (#9632) @vuule
- Use std::size_t when computing join output size (#9626) @jlowe
- Fix `usecols` parameter handling in `dask_cudf.read_csv` (#9618) @galipremsagar
- Add support for string `&#39;nan&#39;, &#39;inf&#39; &amp; &#39;-inf&#39;` values while type-casting to `float` (#9613) @galipremsagar
- Avoid passing NativeFileDatasource to pyarrow in read_parquet (#9608) @rjzamora
- Fix test failure with cuda 11.5 in row_bit_count tests. (#9581) @nvdbaranec
- Correct _LIBCUDACXX_CUDACC_VER value computation (#9579) @robertmaynard
- Increase max RLE stream size estimate to avoid potential overflows (#9568) @vuule
- Fix edge case in tdigest scalar generation for groups containing all nulls. (#9551) @nvdbaranec
- Fix pytests failing in `cuda-11.5` environment (#9547) @galipremsagar
- compile libnvcomp with PTDS if requested (#9540) @jbrennan333
- Fix `segmented_gather()` for null LIST rows (#9537) @mythrocks
- Deprecate DataFrame.label_encoding, use private _label_encoding method internally. (#9535) @bdice
- Fix several test and benchmark issues related to bitmask allocations. (#9521) @nvdbaranec
- Fix for inserting duplicates in groupby result cache (#9508) @karthikeyann
- Fix mismatched types error in clip() when using non int64 numeric types (#9498) @davidwendt
- Match conda pinnings for style checks (revert part of #9412, #9433). (#9490) @bdice
- Make sure all dask-cudf supported aggs are handled in `_tree_node_agg` (#9487) @charlesbluca
- Resolve `hash_columns` `FutureWarning` in `dask_cudf` (#9481) @pentschev
- Add fixed point to AllTypes in libcudf unit tests (#9472) @karthikeyann
- Fix regex handling of embedded null characters (#9470) @davidwendt
- Fix memcheck error in copy-if-else (#9467) @davidwendt
- Fix bug in dask_cudf.read_parquet for index=False (#9453) @rjzamora
- Preserve the decimal scale when creating a default scalar (#9449) @revans2
- Push down parent nulls when flattening nested columns. (#9443) @mythrocks
- Fix memcheck error in gtest SegmentedGatherTest/GatherSliced (#9442) @davidwendt
- Revert &quot;Fix quantile division / partition handling for dask-cudf sort… (#9438) @charlesbluca
- Allow int-like objects for the `decimals` argument in `round` (#9428) @shwina
- Fix stream compaction&#39;s `drop_duplicates` API to use stable sort (#9417) @ttnghia
- Skip Comparing Uniform Window Results in Var/std Tests (#9416) @isVoid
- Fix `StructColumn.to_pandas` type handling issues (#9388) @galipremsagar
- Correct issues in the build dir cudf-config.cmake (#9386) @robertmaynard
- Fix Java table partition test to account for non-deterministic ordering (#9385) @jlowe
- Fix timestamp truncation/overflow bugs in orc/parquet (#9382) @PointKernel
- Fix the crash in stats code (#9368) @devavret
- Make Series.hash_encode results reproducible. (#9366) @bdice
- Fix libcudf compile warnings on debug 11.4 build (#9360) @davidwendt
- Fail gracefully when compiling python UDFs that attempt to access columns with unsupported dtypes (#9359) @brandon-b-miller
- Set pass_filenames: false in mypy pre-commit configuration. (#9349) @bdice
- Fix cudf_assert in cudf::io::orc::gpu::gpuDecodeOrcColumnData (#9348) @davidwendt
- Fix memcheck error in groupby-tdigest get_scalar_minmax (#9339) @davidwendt
- Optimizations for `cudf.concat` when `axis=1` (#9333) @galipremsagar
- Use f-string in join helper warning message. (#9325) @bdice
- Avoid casting to list or struct dtypes in dask_cudf.read_parquet (#9314) @rjzamora
- Fix null count in statistics for parquet (#9303) @devavret
- Potential overflow of `decimal32` when casting to `int64_t` (#9287) @codereport
- Fix quantile division / partition handling for dask-cudf sort on null dataframes (#9259) @charlesbluca
- Updating cudf version also updates rapids cmake branch (#9249) @robertmaynard
- Implement `one_hot_encoding` in libcudf and bind to python (#9229) @isVoid
- BUG FIX: CSV Writer ignores the header parameter when no metadata is provided (#8740) @skirui-source

## 📖 Documentation

- Update Documentation to use `TYPED_TEST_SUITE` (#9654) @codereport
- Add dedicated page for `StringHandling` in python docs (#9624) @galipremsagar
- Update docstring of `DataFrame.merge` (#9572) @galipremsagar
- Use raw strings to avoid SyntaxErrors in parsed docstrings. (#9526) @bdice
- Add example to docstrings in `rolling.apply` (#9522) @isVoid
- Update help message to escape quotes in ./build.sh --cmake-args. (#9494) @bdice
- Improve Python docstring formatting. (#9493) @bdice
- Update table of I/O supported types (#9476) @vuule
- Document invalid regex patterns as undefined behavior (#9473) @davidwendt
- Miscellaneous documentation fixes to `cudf` (#9471) @galipremsagar
- Fix many documentation errors in libcudf. (#9355) @karthikeyann
- Fixing SubwordTokenizer docs issue (#9354) @mayankanand007
- Improved deprecation warnings. (#9347) @bdice
- doc reorder mr, stream to stream, mr (#9308) @karthikeyann
- Deprecate method parameters to DataFrame.join, DataFrame.merge. (#9291) @bdice
- Added deprecation warning for `.label_encoding()` (#9289) @mayankanand007

## 🚀 New Features

- Enable Series.divide and DataFrame.divide (#9630) @vyasr
- Update `bitmask_and` and `bitmask_or` to return a pair of resulting mask and count of unset bits (#9616) @PointKernel
- Add handling of mixed numeric types in `to_dlpack` (#9585) @galipremsagar
- Support re.Pattern object for pat arg in str.replace (#9573) @davidwendt
- Add JNI for `lists::drop_list_duplicates` with keys-values input column (#9553) @ttnghia
- Support structs column in `min`, `max`, `argmin` and `argmax` groupby aggregate() and scan() (#9545) @ttnghia
- Move libcudacxx to use `rapids_cpm` and use newer versions (#9539) @robertmaynard
- Add scan min/max support for chrono types to libcudf reduction-scan (not groupby scan) (#9518) @davidwendt
- Support `args=` in `apply` (#9514) @brandon-b-miller
- Add groupby scan min/max support for strings values (#9502) @davidwendt
- Add list output option to character_ngrams() function (#9499) @davidwendt
- More granular column selection in ORC reader (#9496) @vuule
- add min_periods, ddof to groupby covariance, &amp; correlation aggregation (#9492) @karthikeyann
- Implement Series.datetime.floor (#9488) @skirui-source
- Enable linting of CMake files using pre-commit (#9484) @vyasr
- Add support for single-line regex anchors ^/$ in contains_re (#9482) @davidwendt
- Augment `order_by` to Accept a List of `null_precedence` (#9455) @isVoid
- Add format API for list column of strings (#9454) @davidwendt
- Enable Datetime/Timedelta dtypes in Masked UDFs (#9451) @brandon-b-miller
- Add cudf python groupby.diff (#9446) @karthikeyann
- Implement `lists::stable_sort_lists` for stable sorting of elements within each row of lists column (#9425) @ttnghia
- add ctest memcheck using cuda-sanitizer (#9414) @karthikeyann
- Support Unary Operations in Masked UDF (#9409) @isVoid
- Move Several Series Function to Frame (#9394) @isVoid
- MD5 Python hash API (#9390) @bdice
- Add cudf strings is_title API (#9380) @davidwendt
- Enable casting to int64, uint64, and double in AST code. (#9379) @vyasr
- Add support for writing ORC with map columns (#9369) @vuule
- extract_list_elements() with column_view indices (#9367) @mythrocks
- Reimplement `lists::drop_list_duplicates` for keys-values lists columns (#9345) @ttnghia
- Support Python UDFs written in terms of rows (#9343) @brandon-b-miller
- JNI: Support nested types in ORC writer (#9334) @firestarman
- Optionally nullify out-of-bounds indices in segmented_gather(). (#9318) @mythrocks
- Add shallow hash function and shallow equality comparison for column_view (#9312) @karthikeyann
- Add CudaMemoryBuffer for cudaMalloc memory using RMM cuda_memory_resource (#9311) @rongou
- Add parameters to control row index stride and stripe size in ORC writer (#9310) @vuule
- Add `na_position` param to dask-cudf `sort_values` (#9264) @charlesbluca
- Add `ascending` parameter for dask-cudf `sort_values` (#9250) @charlesbluca
- New array conversion methods (#9236) @vyasr
- Series `apply` method backed by masked UDFs (#9217) @brandon-b-miller
- Grouping by frequency and resampling (#9178) @shwina
- Pure-python masked UDFs (#9174) @brandon-b-miller
- Add Covariance, Pearson correlation for sort groupby (libcudf) (#9154) @karthikeyann
- Add `calendrical_month_sequence` in c++ and `date_range` in python (#8886) @shwina

## 🛠️ Improvements

- Followup to PR 9088 comments (#9659) @cwharris
- Update cuCollections to version that supports installed libcudacxx (#9633) @robertmaynard
- Add `11.5` dev.yml to `cudf` (#9617) @galipremsagar
- Add `xfail` for parquet reader `11.5` issue (#9612) @galipremsagar
- remove deprecated Rmm.initialize method (#9607) @rongou
- Use HostColumnVectorCore for child columns in JCudfSerialization.unpackHostColumnVectors (#9596) @sperlingxx
- Set RMM pool to a fixed size in JNI (#9583) @rongou
- Use nvCOMP for Snappy compression/decompression (#9582) @vuule
- Build CUDA version agnostic packages for dask-cudf (#9578) @Ethyling
- Fixed tests warning: &quot;TYPED_TEST_CASE is deprecated, please use TYPED_TEST_SUITE&quot; (#9574) @ttnghia
- Enable CMake format in CI and fix style (#9570) @vyasr
- Add NVTX Start/End Ranges to JNI (#9563) @abellina
- Add librdkafka and python-confluent-kafka to dev conda environments s… (#9562) @jdye64
- Add offsets_begin/end() to strings_column_view (#9559) @davidwendt
- remove alignment options for RMM jni (#9550) @rongou
- Add axis parameter passthrough to `DataFrame` and `Series` take for pandas API compatibility (#9549) @dantegd
- Remove sizeof and standardize on memory_usage (#9544) @vyasr
- Adds cudaProfilerStart/cudaProfilerStop in JNI api (#9543) @abellina
- Generalize comparison binary operations (#9542) @vyasr
- Expose APIs to wrap CUDA or RMM allocations with a Java device buffer instance (#9538) @jlowe
- Add scan sum support for duration types to libcudf (#9536) @davidwendt
- Force inlining to improve AST performance (#9530) @vyasr
- Generalize some more indexed frame methods (#9529) @vyasr
- Add Java bindings for rolling window stddev aggregation (#9527) @razajafri
- catch rmm::out_of_memory exceptions in jni (#9525) @rongou
- Add an overload of `make_empty_column` with `type_id` parameter (#9524) @ttnghia
- Accelerate conditional inner joins with larger right tables (#9523) @vyasr
- Initial pass of generalizing `decimal` support in `cudf` python layer (#9517) @galipremsagar
- Cleanup for flattening nested columns (#9509) @rwlee
- Enable running tests using RMM arena and async memory resources (#9506) @rongou
- Remove dependency on six. (#9495) @bdice
- Cleanup some libcudf strings gtests (#9489) @davidwendt
- Rename strings/array_tests.cu to strings/array_tests.cpp (#9480) @davidwendt
- Refactor sorting APIs (#9464) @vyasr
- Implement DataFrame.hash_values, deprecate DataFrame.hash_columns. (#9458) @bdice
- Deprecate Series.hash_encode. (#9457) @bdice
- Update `conda` recipes for Enhanced Compatibility effort (#9456) @ajschmidt8
- Small clean up to simplify column selection code in ORC reader (#9444) @vuule
- add missing stream to scalar.is_valid() wherever stream is available (#9436) @karthikeyann
- Adds Deprecation Warnings to `one_hot_encoding` and Implement `get_dummies` with Cython API (#9435) @isVoid
- Update pre-commit hook URLs. (#9433) @bdice
- Remove pyarrow import in `dask_cudf.io.parquet` (#9429) @charlesbluca
- Miscellaneous improvements for UDFs (#9422) @isVoid
- Use pre-commit for CI (#9412) @vyasr
- Update to UCX-Py 0.23 (#9407) @pentschev
- Expose OutOfBoundsPolicy in JNI for Table.gather (#9406) @abellina
- Improvements to tdigest aggregation code. (#9403) @nvdbaranec
- Add Java API to deserialize a table to host columns (#9402) @jlowe
- Frame copy to use __class__ instead of type() (#9397) @madsbk
- Change all DeprecationWarnings to FutureWarning. (#9392) @bdice
- Update Java nvcomp JNI bindings to nvcomp 2.x API (#9384) @jbrennan333
- Add IndexedFrame class and move SingleColumnFrame to a separate module (#9378) @vyasr
- Support Arrow NativeFile and PythonFile for remote ORC storage (#9377) @rjzamora
- Use Arrow PythonFile for remote CSV storage (#9376) @rjzamora
- Add multi-threaded writing to GDS writes (#9372) @devavret
- Miscellaneous column cleanup (#9370) @vyasr
- Use single kernel to extract all groups in cudf::strings::extract (#9358) @davidwendt
- Consolidate binary ops into `Frame` (#9357) @isVoid
- Move rank scan implementations from scan_inclusive.cu to rank_scan.cu (#9351) @davidwendt
- Remove usage of deprecated thrust::host_space_tag. (#9350) @bdice
- Use Default Memory Resource for Temporaries in `reduction.cpp` (#9344) @isVoid
- Fix Cython compilation warnings. (#9327) @bdice
- Fix some unused variable warnings in libcudf (#9326) @davidwendt
- Use optional-iterator for copy-if-else kernel (#9324) @davidwendt
- Remove Table class (#9315) @vyasr
- Unpin `dask` and `distributed` in CI (#9307) @galipremsagar
- Add optional-iterator support to indexalator (#9306) @davidwendt
- Consolidate more methods in Frame (#9305) @vyasr
- Add Arrow-NativeFile and PythonFile support to read_parquet and read_csv in cudf (#9304) @rjzamora
- Pin mypy in .pre-commit-config.yaml to match conda environment pinning. (#9300) @bdice
- Use gather.hpp when gather-map exists in device memory (#9299) @davidwendt
- Fix Automerger for `Branch-21.12` from `branch-21.10` (#9285) @galipremsagar
- Refactor cuIO timestamp processing with `cuda::std::chrono` (#9278) @PointKernel
- Change strings copy_if_else to use optional-iterator instead of pair-iterator (#9266) @davidwendt
- Update cudf java bindings to 21.12.0-SNAPSHOT (#9248) @pxLi
- Various internal MultiIndex improvements (#9243) @vyasr
- Add detail interface for `split` and `slice(table_view)`, refactors both function with `host_span` (#9226) @isVoid
- Refactor MD5 implementation. (#9212) @bdice
- Update groupby result_cache to allow sharing intermediate results based on column_view instead of requests. (#9195) @karthikeyann
- Use nvcomp&#39;s snappy decompressor in avro reader (#9181) @devavret
- Add `isocalendar` API support (#9169) @marlenezw
- Simplify read_json by removing unnecessary reader/impl classes (#9088) @cwharris
- Simplify read_csv by removing unnecessary reader/impl classes (#9041) @cwharris
- Refactor hash join with cuCollections multimap (#8934) @PointKernel
v21.10.01: tag_name: v21.10.01
body: v21.10.01
v21.10.00: tag_name: v21.10.00
body: ## 🚨 Breaking Changes

- Remove Cython APIs for table view generation (#9199) @vyasr
- Upgrade `pandas` version in `cudf` (#9147) @galipremsagar
- Make AST operators nullable (#9096) @vyasr
- Remove the option to pass data types as strings to `read_csv` and `read_json` (#9079) @vuule
- Update JNI java CSV APIs to not use deprecated API (#9066) @revans2
- Support additional format specifiers in from_timestamps (#9047) @davidwendt
- Expose expression base class publicly and simplify public AST API (#9045) @vyasr
- Add support for struct type in ORC writer (#9025) @vuule
- Remove aliases of various api.types APIs from utils.dtypes. (#9011) @vyasr
- Java bindings for conditional join output sizes (#9002) @jlowe
- Move compute_column API out of ast namespace (#8957) @vyasr
- `cudf.dtype` function (#8949) @shwina
- Refactor Frame reductions (#8944) @vyasr
- Add nested column selection to parquet reader (#8933) @devavret
- JNI Aggregation Type Changes (#8919) @revans2
- Add groupby_aggregation and groupby_scan_aggregation classes and force their usage. (#8906) @nvdbaranec
- Expand CSV and JSON reader APIs to accept `dtypes` as a vector or map of `data_type` objects (#8856) @vuule
- Change cudf docs theme to pydata theme (#8746) @galipremsagar
- Enable compiled binary ops in libcudf, python and java (#8741) @karthikeyann
- Make groupby transform-like op order match original data order (#8720) @isVoid

## 🐛 Bug Fixes

- `fixed_point` `cudf::groupby` for `mean` aggregation (#9296) @codereport
- Fix `interleave_columns` when the input string lists column having empty child column (#9292) @ttnghia
- Update nvcomp to include fixes for installation of headers (#9276) @devavret
- Fix Java column leak in testParquetWriteMap (#9271) @jlowe
- Fix call to thrust::reduce_by_key in argmin/argmax libcudf groupby (#9263) @davidwendt
- Fixing empty input to getMapValue crashing (#9262) @hyperbolic2346
- Fix duplicate names issue in `MultiIndex.deserialize ` (#9258) @galipremsagar
- `Dataframe.sort_index` optimizations (#9238) @galipremsagar
- Temporarily disabling problematic test in parquet writer (#9230) @devavret
- Explicitly disable groupby on unsupported key types. (#9227) @mythrocks
- Fix `gather` for sliced input structs column (#9218) @ttnghia
- Fix JNI code for left semi and anti joins (#9207) @jlowe
- Only install thrust when using a non &#39;system&#39; version (#9206) @robertmaynard
- Remove zlib from libcudf public CMake dependencies (#9204) @robertmaynard
- Fix out-of-bounds memory read in orc gpuEncodeOrcColumnData (#9196) @davidwendt
- Fix `gather()` for `STRUCT` inputs with no nulls in members. (#9194) @mythrocks
- get_cucollections properly uses rapids_cpm_find (#9189) @robertmaynard
- rapids-export correctly reference build code block and doc strings (#9186) @robertmaynard
- Fix logic while parsing the sum statistic for numerical orc columns (#9183) @ayushdg
- Add handling for nulls in `dask_cudf.sorting.quantile_divisions` (#9171) @charlesbluca
- Approximate overflow detection in ORC statistics (#9163) @vuule
- Use decimal precision metadata when reading from parquet files (#9162) @shwina
- Fix variable name in Java build script (#9161) @jlowe
- Import rapids-cmake modules using the correct cmake variable. (#9149) @robertmaynard
- Fix conditional joins with empty left table (#9146) @vyasr
- Fix joining on indexes with duplicate level names (#9137) @shwina
- Fixes missing child column name in dtype while reading ORC file. (#9134) @rgsl888prabhu
- Apply type metadata after column is slice-copied (#9131) @isVoid
- Fix a bug: inner_join_size return zero if build table is empty (#9128) @PointKernel
- Fix multi hive-partition parquet reading in dask-cudf (#9122) @rjzamora
- Support null literals in expressions (#9117) @vyasr
- Fix cudf::hash_join output size for struct joins (#9107) @jlowe
- Import fix (#9104) @shwina
- Fix cudf::strings::is_fixed_point checking of overflow for decimal32 (#9093) @davidwendt
- Fix branch_stack calculation in `row_bit_count()` (#9076) @mythrocks
- Fetch rapids-cmake to work around cuCollection cmake issue (#9075) @jlowe
- Fix compilation errors in groupby benchmarks. (#9072) @nvdbaranec
- Preserve float16 upscaling (#9069) @galipremsagar
- Fix memcheck read error in libcudf contiguous_split (#9067) @davidwendt
- Add support for reading ORC file with no row group index (#9060) @rgsl888prabhu
- Various multiindex related fixes (#9036) @shwina
- Avoid rebuilding cython in build.sh (#9034) @brandon-b-miller
- Add support for percentile dispatch in `dask_cudf` (#9031) @galipremsagar
- cudf resolve nvcc 11.0 compiler crashes during codegen (#9028) @robertmaynard
- Fetch correct grouping keys `agg` of dask groupby (#9022) @galipremsagar
- Allow `where()` to work with a Series and `other=cudf.NA` (#9019) @sarahyurick
- Use correct index when returning Series from `GroupBy.apply()` (#9016) @charlesbluca
- Fix `Dataframe` indexer setitem when array is passed (#9006) @galipremsagar
- Fix ORC reading of files with struct columns that have null values (#9005) @vuule
- Ensure JNI native libraries load when CompiledExpression loads (#8997) @jlowe
- Fix memory read error in get_dremel_data in page_enc.cu (#8995) @davidwendt
- Fix memory write error in get_list_child_to_list_row_mapping utility (#8994) @davidwendt
- Fix debug compile error for csv_test.cpp (#8981) @davidwendt
- Fix memory read/write error in concatenate_lists_ignore_null (#8978) @davidwendt
- Fix concatenation of `cudf.RangeIndex` (#8970) @galipremsagar
- Java conditional joins should not require matching column counts (#8955) @jlowe
- Fix concatenate empty structs (#8947) @sperlingxx
- Fix cuda-memcheck errors for some libcudf functions (#8941) @davidwendt
- Apply series name to result of `SeriesGroupby.apply()` (#8939) @charlesbluca
- `cdef packed_columns` as `cppclass` instead of `struct` (#8936) @charlesbluca
- Inserting a `cudf.NA` into a DataFrame (#8923) @sarahyurick
- Support casting with Pandas dtype aliases (#8920) @sarahyurick
- Allow `sort_values` to accept same `kind` values as Pandas (#8912) @sarahyurick
- Enable casting to pandas nullable dtypes (#8889) @brandon-b-miller
- Fix libcudf memory errors (#8884) @karthikeyann
- Throw KeyError when accessing field from struct with nonexistent key (#8880) @NV-jpt
- replace auto with auto&amp; ref for cast&lt;&amp;&gt; (#8866) @karthikeyann
- Add missing include&lt;optional&gt; in binops (#8864) @karthikeyann
- Fix `select_dtypes` to work when non-class dtypes present in dataframe (#8849) @sarahyurick
- Re-enable JSON tests (#8843) @vuule
- Support header with embedded delimiter in csv writer (#8798) @davidwendt

## 📖 Documentation

- Add IO docs page in `cudf` documentation (#9145) @galipremsagar
- use correct namespace in cuio code examples (#9037) @cwharris
- Restructuring `Contributing doc` (#9026) @iskode
- Update stable version in readme (#9008) @galipremsagar
- Add spans and more include guidelines to libcudf developer guide (#8931) @harrism
- Update Java build instructions to mention Arrow S3 and Docker (#8867) @jlowe
- List GDS-enabled formats in the docs (#8805) @vuule
- Change cudf docs theme to pydata theme (#8746) @galipremsagar

## 🚀 New Features

- Revert &quot;Add shallow hash function and shallow equality comparison for column_view (#9185)&quot; (#9283) @karthikeyann
- Align `DataFrame.apply` signature with pandas (#9275) @brandon-b-miller
- Add struct type support for `drop_list_duplicates` (#9202) @ttnghia
- support CUDA async memory resource in JNI (#9201) @rongou
- Add shallow hash function and shallow equality comparison for column_view (#9185) @karthikeyann
- Superimpose null masks for STRUCT columns. (#9144) @mythrocks
- Implemented bindings for `ceil` timestamp operation (#9141) @shaneding
- Adding MAP type support for ORC Reader (#9132) @rgsl888prabhu
- Implement `interleave_columns` for lists with arbitrary nested type (#9130) @ttnghia
- Add python bindings to fixed-size window and groupby `rolling.var`, `rolling.std` (#9097) @isVoid
- Make AST operators nullable (#9096) @vyasr
- Java bindings for approx_percentile (#9094) @andygrove
- Add `dseries.struct.explode` (#9086) @isVoid
- Add support for BaseIndexer in Rolling APIs (#9085) @galipremsagar
- Remove the option to pass data types as strings to `read_csv` and `read_json` (#9079) @vuule
- Add handling for nested dicts in dask-cudf groupby (#9054) @charlesbluca
- Added Series.dt.is_quarter_start and Series.dt.is_quarter_end (#9046) @TravisHester
- Support nested types for nth_element reduction (#9043) @sperlingxx
- Update sort groupby to use non-atomic operation (#9035) @karthikeyann
- Add support for struct type in ORC writer (#9025) @vuule
- Implement `interleave_columns` for structs columns (#9012) @ttnghia
- Add groupby first and last aggregations (#9004) @shwina
- Add `DecimalBaseColumn` and move `as_decimal_column` (#9001) @isVoid
- Python/Cython bindings for multibyte_split (#8998) @jdye64
- Support scalar `months` in `add_calendrical_months`, extends API to INT32 support (#8991) @isVoid
- Added Series.dt.is_month_end (#8989) @TravisHester
- Support for using tdigests to compute approximate percentiles. (#8983) @nvdbaranec
- Support &quot;unflatten&quot; of columns flattened via `flatten_nested_columns()`: (#8956) @mythrocks
- Implement timestamp ceil (#8942) @shaneding
- Add nested column selection to parquet reader (#8933) @devavret
- Expose conditional join size calculation (#8928) @vyasr
- Support Nulls in Timeseries Generator (#8925) @isVoid
- Avoid index equality check in `_CPackedColumns.from_py_table()` (#8917) @charlesbluca
- Add dot product binary op (#8909) @charlesbluca
- Expose `days_in_month` function in libcudf and add python bindings (#8892) @isVoid
- Series string repeat (#8882) @sarahyurick
- Python binding for quarters (#8862) @shaneding
- Expand CSV and JSON reader APIs to accept `dtypes` as a vector or map of `data_type` objects (#8856) @vuule
- Add Java bindings for AST transform (#8846) @jlowe
- Series datetime is_month_start (#8844) @sarahyurick
- Support bracket syntax for cudf::strings::replace_with_backrefs group index values (#8841) @davidwendt
- Support `VARIANCE` and `STD` aggregation in rolling op (#8809) @isVoid
- Add quarters to libcudf datetime (#8779) @shaneding
- Linear Interpolation of `nan`s via `cupy` (#8767) @brandon-b-miller
- Enable compiled binary ops in libcudf, python and java (#8741) @karthikeyann
- Make groupby transform-like op order match original data order (#8720) @isVoid
- multibyte_split (#8702) @cwharris
- Implement JNI for `strings:repeat_strings` that repeats each string separately by different numbers of times (#8572) @ttnghia

## 🛠️ Improvements

- Pin max `dask` and `distributed` versions to `2021.09.1` (#9286) @galipremsagar
- Optimized fsspec data transfer for remote file-systems (#9265) @rjzamora
- Skip dask-cudf tests on arm64 (#9252) @Ethyling
- Use nvcomp&#39;s snappy compressor in ORC writer (#9242) @devavret
- Only run imports tests on x86_64 (#9241) @Ethyling
- Remove unnecessary call to device_uvector::release() (#9237) @harrism
- Use nvcomp&#39;s snappy decompression in ORC reader (#9235) @devavret
- Add grouped_rolling test with STRUCT groupby keys. (#9228) @mythrocks
- Optimize `cudf.concat` for `axis=0` (#9222) @galipremsagar
- Fix some libcudf calls not passing the stream parameter (#9220) @davidwendt
- Add min and max bounds for random dataframe generator numeric types (#9211) @galipremsagar
- Improve performance of expression evaluation (#9210) @vyasr
- Misc optimizations in `cudf` (#9203) @galipremsagar
- Remove Cython APIs for table view generation (#9199) @vyasr
- Add JNI support for drop_list_duplicates (#9198) @revans2
- Update pandas versions in conda recipes and requirements.txt files (#9197) @galipremsagar
- Minor C++17 cleanup of `groupby.cu`: structured bindings, more concise lambda, etc (#9193) @codereport
- Explicit about bitwidth difference between cudf boolean and arrow boolean (#9192) @isVoid
- Remove _source_index from MultiIndex (#9191) @vyasr
- Fix typo in the name of `cudf-testing-targets.cmake` (#9190) @trxcllnt
- Add support for single-digits in cudf::to_timestamps (#9173) @davidwendt
- Fix cufilejni build include path (#9168) @pxLi
- `dask_cudf` dispatch registering cleanup (#9160) @galipremsagar
- Remove unneeded stream/mr from a cudf::make_strings_column (#9148) @davidwendt
- Upgrade `pandas` version in `cudf` (#9147) @galipremsagar
- make data chunk reader return unique_ptr (#9129) @cwharris
- Add backend for `percentile_lookup` dispatch (#9118) @galipremsagar
- Refactor implementation of column setitem (#9110) @vyasr
- Fix compile warnings found using nvcc 11.4 (#9101) @davidwendt
- Update to UCX-Py 0.22 (#9099) @pentschev
- Simplify read_avro by removing unnecessary writer/impl classes (#9090) @cwharris
- Allowing %f in format to return nanoseconds (#9081) @marlenezw
- Java bindings for cudf::hash_join (#9080) @jlowe
- Remove stale code in `ColumnBase._fill` (#9078) @isVoid
- Add support for `get_group` in GroupBy (#9070) @galipremsagar
- Remove remaining &quot;support&quot; methods from DataFrame (#9068) @vyasr
- Update JNI java CSV APIs to not use deprecated API (#9066) @revans2
- Added method to remove null_masks if the column has no nulls (#9061) @razajafri
- Consolidate Several Series and Dataframe Methods (#9059) @isVoid
- Remove usage of string based `set_dtypes` for `csv` &amp; `json` readers (#9049) @galipremsagar
- Remove some debug print statements from gtests (#9048) @davidwendt
- Support additional format specifiers in from_timestamps (#9047) @davidwendt
- Expose expression base class publicly and simplify public AST API (#9045) @vyasr
- move filepath and mmap logic out of json/csv up to functions.cpp (#9040) @cwharris
- Refactor Index hierarchy (#9039) @vyasr
- cudf now leverages rapids-cmake to reduce CMake boilerplate (#9030) @robertmaynard
- Add support for `STRUCT` input to `groupby` (#9024) @mythrocks
- Refactor Frame scans (#9021) @vyasr
- Remove duplicate `set_categories` code (#9018) @isVoid
- Map support for ParquetWriter (#9013) @razajafri
- Remove aliases of various api.types APIs from utils.dtypes. (#9011) @vyasr
- Java bindings for conditional join output sizes (#9002) @jlowe
- Remove _copy_construct factory (#8999) @vyasr
- ENH Allow arbitrary CMake config options in build.sh (#8996) @dillon-cullinan
- A small optimization for JNI copy column view to column vector (#8985) @revans2
- Fix nvcc warnings in ORC writer (#8975) @devavret
- Support nested structs in rank and dense rank (#8962) @rwlee
- Move compute_column API out of ast namespace (#8957) @vyasr
- Series datetime is_year_end and is_year_start (#8954) @marlenezw
- Make Java AstNode public (#8953) @jlowe
- Replace allocate with device_uvector for subword_tokenize internal tables (#8952) @davidwendt
- `cudf.dtype` function (#8949) @shwina
- Refactor Frame reductions (#8944) @vyasr
- Add deprecation warning for `Series.set_mask` API (#8943) @galipremsagar
- Move AST evaluator into a separate header (#8930) @vyasr
- JNI Aggregation Type Changes (#8919) @revans2
- Move template parameter to function parameter in cudf::detail::left_semi_anti_join (#8914) @davidwendt
- Upgrade `arrow` &amp; `pyarrow` to `5.0.0` (#8908) @galipremsagar
- Add groupby_aggregation and groupby_scan_aggregation classes and force their usage. (#8906) @nvdbaranec
- Move `structs_column_tests.cu` to `.cpp`. (#8902) @mythrocks
- Add stream and memory-resource parameters to struct-scalar copy ctor (#8901) @davidwendt
- Combine linearizer and ast_plan (#8900) @vyasr
- Add Java bindings for conditional join gather maps (#8888) @jlowe
- Remove max version pin for `dask` &amp; `distributed` on development branch (#8881) @galipremsagar
- fix cufilejni build w/ c++17 (#8877) @pxLi
- Add struct accessor to dask-cudf (#8874) @NV-jpt
- Migrate dask-cudf CudfEngine to leverage ArrowDatasetEngine (#8871) @rjzamora
- Add JNI for extract_quarter, add_calendrical_months, and is_leap_year (#8863) @revans2
- Change cudf::scalar copy and move constructors to protected (#8857) @davidwendt
- Replace `is_same&lt;&gt;::value` with `is_same_v&lt;&gt;` (#8852) @codereport
- Add min `pytorch` version to `importorskip` in pytest (#8851) @galipremsagar
- Java bindings for regex replace (#8847) @jlowe
- Remove make strings children with null mask (#8830) @davidwendt
- Refactor conditional joins (#8815) @vyasr
- Small cleanup (unused headers / commented code removals) (#8799) @codereport
- ENH Replace gpuci_conda_retry with gpuci_mamba_retry (#8770) @dillon-cullinan
- Update cudf java bindings to 21.10.0-SNAPSHOT (#8765) @pxLi
- Refactor and improve join benchmarks with nvbench (#8734) @PointKernel
- Refactor Python factories and remove usage of Table for libcudf output handling (#8687) @vyasr
- Optimize URL Decoding (#8622) @gaohao95
- Parquet writer dictionary encoding refactor (#8476) @devavret
- Use nvcomp&#39;s snappy decompression in parquet reader (#8252) @devavret
- Use nvcomp&#39;s snappy compressor in parquet writer (#8229) @devavret
v21.08.03: tag_name: v21.08.03
body: v21.08.03
v21.08.02: tag_name: v21.08.02
body: v21.08.02
v21.08.01: tag_name: v21.08.01
body: v21.08.01
v21.08.00: tag_name: v21.08.00
body: ## 🚨 Breaking Changes

- Fix a crash in pack() when being handed tables with no columns. (#8697) @nvdbaranec
- Remove unused cudf::strings::create_offsets (#8663) @davidwendt
- Add delimiter parameter to cudf::strings::capitalize() (#8620) @davidwendt
- Change default datetime index resolution to ns to match pandas (#8611) @vyasr
- Add sequence_type parameter to cudf::strings::title function (#8602) @davidwendt
- Add `strings::repeat_strings` API that can repeat each string a different number of times (#8561) @ttnghia
- String-to-boolean conversion is different from Pandas (#8549) @skirui-source
- Add accurate hash join size functions (#8453) @PointKernel
- Expose a Decimal32Dtype in cuDF Python (#8438) @skirui-source
- Update dask make_meta changes to be compatible with dask upstream (#8426) @galipremsagar
- Adapt `cudf::scalar` classes to changes in `rmm::device_scalar` (#8411) @harrism
- Remove special Index class from the general index class hierarchy (#8309) @vyasr
- Add first-class dtype utilities (#8308) @vyasr
- ORC - Support reading multiple orc files/buffers in a single operation (#8142) @jdye64
- Upgrade arrow to 4.0.1 (#7495) @galipremsagar

## 🐛 Bug Fixes

- Fix `contains` check in string column (#8834) @galipremsagar
- Remove unused variable from `row_bit_count_test`. (#8829) @mythrocks
- Fixes issue with null struct columns in ORC reader (#8819) @rgsl888prabhu
- Set CMake vars for python/parquet support in libarrow builds (#8808) @vyasr
- Handle empty child columns in row_bit_count() (#8791) @mythrocks
- Revert &quot;Remove cudf unneeded build time requirement of the cuda driver&quot; (#8784) @robertmaynard
- Fix isort error in utils.pyx (#8771) @charlesbluca
- Handle sliced struct/list columns properly in concatenate() bounds checking. (#8760) @nvdbaranec
- Fix issues with `_CPackedColumns.serialize()` handling of host and device data (#8759) @charlesbluca
- Fix issues with `MultiIndex` in `dropna`, `stack` &amp; `reset_index` (#8753) @galipremsagar
- Write pandas extension types to parquet file metadata (#8749) @devavret
- Fix `where` to handle `DataFrame` &amp; `Series` input combination (#8747) @galipremsagar
- Fix `replace` to handle null values correctly (#8744) @galipremsagar
- Handle sliced structs properly in pack/contiguous_split. (#8739) @nvdbaranec
- Fix issue in slice() where columns with a positive offset were computing null counts incorrectly. (#8738) @nvdbaranec
- Fix `cudf.Series` constructor to handle list of sequences (#8735) @galipremsagar
- Fix min/max sorted groupby aggregation on string column with nulls (argmin, argmax sentinel value missing on nulls) (#8731) @karthikeyann
- Fix orc reader assert on create data_type in debug (#8706) @davidwendt
- Fix min/max inclusive cudf::scan for strings column (#8705) @davidwendt
- JNI: Fix driver version assertion logic in testGetCudaRuntimeInfo (#8701) @sperlingxx
- Adding fix for skip_rows and crash in orc reader (#8700) @rgsl888prabhu
- Bug fix: `replace_nulls_policy` functor not returning correct indices for gathermap (#8699) @isVoid
- Fix a crash in pack() when being handed tables with no columns. (#8697) @nvdbaranec
- Add post-processing steps to `dask_cudf.groupby.CudfSeriesGroupby.aggregate` (#8694) @charlesbluca
- JNI build no longer looks for Arrow in conda environment (#8686) @jlowe
- Handle arbitrarily different data in null list column rows when checking for equivalency. (#8666) @nvdbaranec
- Add ConfigureNVBench to avoid concurrent main() entry points (#8662) @PointKernel
- Pin `*arrow` to use `*cuda` in `run` (#8651) @jakirkham
- Add proper support for tolerances in testing methods. (#8649) @vyasr
- Support multi-char case conversion in capitalize function (#8647) @davidwendt
- Fix repeated mangled names in read_csv with duplicate column names (#8645) @karthikeyann
- Temporarily disable libcudf example build tests (#8642) @isVoid
- Use conda-sourced cudf artifacts for libcudf example in CI (#8638) @isVoid
- Ensure dev environment uses Arrow GPU packages (#8637) @charlesbluca
- Fix bug that columns only initialized once when specified `columns` and `index` in dataframe ctor (#8628) @isVoid
- Propagate **kwargs through to as_*_column methods (#8618) @shwina
- Fix orc_reader_benchmark.cpp compile error (#8609) @davidwendt
- Fix missed renumbering of Aggregation values (#8600) @revans2
- Update cmake to 3.20.5 in the Java Docker image (#8593) @NvTimLiu
- Fix bug in replace_with_backrefs when group has greedy quantifier (#8575) @davidwendt
- Apply metadata to keys before returning in `Frame._encode` (#8560) @charlesbluca
- Fix for strings containing special JSON characters in get_json_object(). (#8556) @nvdbaranec
- Fix debug compile error in gather_struct_tests.cpp (#8554) @davidwendt
- String-to-boolean conversion is different from Pandas (#8549) @skirui-source
- Fix `__repr__` output with `display.max_rows` is `None` (#8547) @galipremsagar
- Fix size passed to column constructors in _with_type_metadata (#8539) @shwina
- Properly retrieve last column when `-1` is specified for column index (#8529) @isVoid
- Fix importing `apply` from `dask` (#8517) @galipremsagar
- Fix offset of the string dictionary length stream (#8515) @vuule
- Fix double counting of selected columns in CSV reader (#8508) @ochan1
- Incorrect map size in scatter_to_gather corrupts struct columns (#8507) @gerashegalov
- replace_nulls properly propagates memory resource to gather calls (#8500) @robertmaynard
- Disallow groupby aggs for `StructColumns` (#8499) @charlesbluca
- Fixes out-of-bounds access for small files in unzip (#8498) @elstehle
- Adding support for writing empty dataframe (#8490) @shaneding
- Fix exclusive scan when including nulls and improve testing (#8478) @harrism
- Add workaround for crash in libcudf debug build using output_indexalator in thrust::lower_bound (#8432) @davidwendt
- Install only the same Thrust files that Thrust itself installs (#8420) @robertmaynard
- Add nightly version for ucx-py in ci script (#8419) @galipremsagar
- Fix null_equality config of rolling_collect_set (#8415) @sperlingxx
- CollectSetAggregation: implement RollingAggregation interface (#8406) @sperlingxx
- Handle pre-sliced nested columns in contiguous_split. (#8391) @nvdbaranec
- Fix bitmask_tests.cpp host accessing device memory (#8370) @davidwendt
- Fix concurrent_unordered_map to prevent accessing padding bits in pair_type (#8348) @davidwendt
- BUG FIX: Raise appropriate strings error when concatenating strings column (#8290) @skirui-source
- Make gpuCI and pre-commit style configurations consistent (#8215) @charlesbluca
- Add collect list to dask-cudf groupby aggregations (#8045) @charlesbluca

## 📖 Documentation

- Update Python UDFs notebook (#8810) @brandon-b-miller
- Fix dask.dataframe API docs  links after reorg (#8772) @jsignell
- Fix instructions for running cuDF/dask-cuDF tests in CONTRIBUTING.md (#8724) @shwina
- Translate Markdown documentation to rST and remove recommonmark (#8698) @vyasr
- Fixed spelling mistakes in libcudf documentation (#8664) @karthikeyann
- Custom Sphinx Extension: `PandasCompat` (#8643) @isVoid
- Fix README.md (#8535) @ajschmidt8
- Change namespace contains_nulls to struct (#8523) @davidwendt
- Add info about NVTX ranges to dev guide (#8461) @jrhemstad
- Fixed documentation bug in groupby agg method (#8325) @ahmet-uyar

## 🚀 New Features

- Fix concatenating structs (#8811) @shaneding
- Implement JNI for groupby aggregations `M2` and `MERGE_M2` (#8763) @ttnghia
- Bump `isort` to `5.6.4` and remove `isort` overrides made for 5.0.7 (#8755) @charlesbluca
- Implement `__setitem__` for `StructColumn` (#8737) @shaneding
- Add `is_leap_year` to `DateTimeProperties` and `DatetimeIndex` (#8736) @isVoid
- Add `struct.explode()` method (#8729) @shwina
- Add `DataFrame.to_struct()` method to convert a DataFrame to a struct Series (#8728) @shwina
- Add support for list type in ORC writer (#8723) @vuule
- Fix slicing from struct columns and accessing struct columns (#8719) @shaneding
- Add `datetime::is_leap_year` (#8711) @isVoid
- Accessing struct columns from `dask_cudf` (#8675) @shaneding
- Added pct_change to Series (#8650) @TravisHester
- Add strings support to cudf::shift function (#8648) @davidwendt
- Support Scatter `struct_scalar` (#8630) @isVoid
- Struct scalar from host dictionary (#8629) @shaneding
- Add dayofyear and day_of_year to Series, DatetimeColumn, and DatetimeIndex (#8626) @beckernick
- JNI support for capitalize (#8624) @firestarman
- Add delimiter parameter to cudf::strings::capitalize() (#8620) @davidwendt
- Add NVBench in CMake (#8619) @PointKernel
- Change default datetime index resolution to ns to match pandas (#8611) @vyasr
- ListColumn `__setitem__` (#8606) @brandon-b-miller
- Implement groupby aggregations `M2` and `MERGE_M2` (#8605) @ttnghia
- Add sequence_type parameter to cudf::strings::title function (#8602) @davidwendt
- Adding support for list and struct type in ORC Reader (#8599) @rgsl888prabhu
- Benchmark for `strings::repeat_strings` APIs (#8589) @ttnghia
- Nested scalar support for copy if else (#8588) @gerashegalov
- User specified decimal columns to float64 (#8587) @jdye64
- Add `get_element` for struct column (#8578) @isVoid
- Python changes for adding `__getitem__` for `struct` (#8577) @shaneding
- Add `strings::repeat_strings` API that can repeat each string a different number of times (#8561) @ttnghia
- Refactor `tests/iterator_utilities.hpp` functions (#8540) @ttnghia
- Support MERGE_LISTS and MERGE_SETS in Java package (#8516) @sperlingxx
- Decimal support csv reader (#8511) @elstehle
- Add column type tests (#8505) @isVoid
- Warn when downscaling decimal columns (#8492) @ChrisJar
- Add JNI for `strings::repeat_strings` (#8491) @ttnghia
- Add `Index.get_loc` for Numerical, String Index support (#8489) @isVoid
- Expose half_up rounding in cuDF (#8477) @shwina
- Java APIs to fetch CUDA runtime info (#8465) @sperlingxx
- Add `str.edit_distance_matrix` (#8463) @isVoid
- Support constructing `cudf.Scalar` objects from host side lists (#8459) @brandon-b-miller
- Add accurate hash join size functions (#8453) @PointKernel
- Add cudf::strings::integer_to_hex convert API (#8450) @davidwendt
- Create objects from iterables that contain cudf.NA (#8442) @brandon-b-miller
- JNI bindings for sort_lists (#8439) @sperlingxx
- Expose a Decimal32Dtype in cuDF Python (#8438) @skirui-source
- Replace `all_null()` and `all_valid()` by `iterator_all_nulls()` and `iterator_no_null()` in tests (#8437) @ttnghia
- Implement groupby `MERGE_LISTS` and `MERGE_SETS` aggregates (#8436) @ttnghia
- Add public libcudf match_dictionaries API (#8429) @davidwendt
- Add move constructors for `string_scalar` and `struct_scalar` (#8428) @ttnghia
- Implement `strings::repeat_strings` (#8423) @ttnghia
- STRUCT column support for cudf::merge. (#8422) @nvdbaranec
- Implement reverse in libcudf (#8410) @shaneding
- Support multiple input files/buffers for read_json (#8403) @jdye64
- Improve test coverage for struct search (#8396) @ttnghia
- Add `groupby.fillna` (#8362) @isVoid
- Enable AST-based joining (#8214) @vyasr
- Generalized null support in user defined functions (#8213) @brandon-b-miller
- Add compiled binary operation (#8192) @karthikeyann
- Implement `.describe() ` for `DataFrameGroupBy` (#8179) @skirui-source
- ORC - Support reading multiple orc files/buffers in a single operation (#8142) @jdye64
- Add Python bindings for `lists::concatenate_list_elements` and expose them as `.list.concat()` (#8006) @shwina
- Use Arrow URI FileSystem backed instance to retrieve remote files (#7709) @jdye64
- Example to build custom application and link to libcudf (#7671) @isVoid
- Upgrade arrow to 4.0.1 (#7495) @galipremsagar

## 🛠️ Improvements

- Provide a better error message when `CUDA::cuda_driver` not found (#8794) @robertmaynard
- Remove anonymous namespace from null_mask.cuh (#8786) @nvdbaranec
- Allow cudf to be built without libcuda.so existing (#8751) @robertmaynard
- Pin `mimesis` to `&lt;4.1` (#8745) @galipremsagar
- Update `conda` environment name for CI (#8692) @ajschmidt8
- Remove flatbuffers dependency (#8671) @Ethyling
- Add options to build Arrow with Python and Parquet support (#8670) @trxcllnt
- Remove unused cudf::strings::create_offsets (#8663) @davidwendt
- Update GDS lib version to 1.0.0 (#8654) @pxLi
- Support for groupby/scan rank and dense_rank aggregations (#8652) @rwlee
- Fix usage of deprecated arrow ipc API (#8632) @revans2
- Use absolute imports in `cudf` (#8631) @galipremsagar
- ENH Add Java CI build script (#8627) @dillon-cullinan
- Add DeprecationWarning to `ser.str.subword_tokenize` (#8603) @VibhuJawa
- Rewrite binary operations for improved performance and additional type support (#8598) @vyasr
- Fix `mypy` errors surfacing because of `numpy-1.21.0` (#8595) @galipremsagar
- Remove unneeded includes from cudf::string_view headers (#8594) @davidwendt
- Use cmake 3.20.1 as it is now required by rmm (#8586) @robertmaynard
- Remove device debug symbols from cmake CUDF_CUDA_FLAGS (#8584) @davidwendt
- Dask-CuDF: use default Dask Dataframe optimizer (#8581) @madsbk
- Remove checking if an unsigned value is less than zero (#8579) @robertmaynard
- Remove strings_count parameter from cudf::strings::detail::create_chars_child_column (#8576) @davidwendt
- Make `cudf.api.types` imports consistent (#8571) @galipremsagar
- Modernize libcudf basic example CMakeFile; updates CI build tests (#8568) @isVoid
- Rename concatenate_tests.cu to .cpp (#8555) @davidwendt
- enable window lead/lag test on struct (#8548) @wbo4958
- Add Java methods to split and write column views (#8546) @razajafri
- Small cleanup (#8534) @codereport
- Unpin `dask` version in CI (#8533) @galipremsagar
- Added optional flag for building Arrow with S3 filesystem support (#8531) @jdye64
- Minor clean up of various internal column and frame utilities (#8528) @vyasr
- Rename some copying_test source files .cu to .cpp (#8527) @davidwendt
- Correct the last warnings and issues when using newer cuda versions (#8525) @robertmaynard
- Correct unused parameter warnings in transform and unary ops (#8521) @robertmaynard
- Correct unused parameter warnings in string algorithms (#8509) @robertmaynard
- Add in JNI APIs for scan, replace_nulls, group_by.scan, and group_by.replace_nulls (#8503) @revans2
- Fix `21.08` forward-merge conflicts (#8502) @ajschmidt8
- Fix Cython formatting command in Contributing.md. (#8496) @marlenezw
- Bug/correct unused parameters in reshape and text (#8495) @robertmaynard
- Correct unused parameter warnings in partitioning and stream compact (#8494) @robertmaynard
- Correct unused parameter warnings in labelling and list algorithms (#8493) @robertmaynard
- Refactor index construction (#8485) @vyasr
- Correct unused parameter warnings in replace algorithms (#8483) @robertmaynard
- Correct unused parameter warnings in reduction algorithms (#8481) @robertmaynard
- Correct unused parameter warnings in io algorithms (#8480) @robertmaynard
- Correct unused parameter warnings in interop algorithms (#8479) @robertmaynard
- Correct unused parameter warnings in filling algorithms (#8468) @robertmaynard
- Correct unused parameter warnings in groupby (#8467) @robertmaynard
- use libcu++ time_point as timestamp (#8466) @karthikeyann
- Modify reprog_device::extract to return groups in a single pass (#8460) @davidwendt
- Update minimum Dask requirement to 2021.6.0 (#8458) @pentschev
- Fix failures when performing binary operations on DataFrames with empty columns (#8452) @ChrisJar
- Fix conflicts in `8447` (#8448) @ajschmidt8
- Add serialization methods for `List` and `StructDtype` (#8441) @charlesbluca
- Replace make_empty_strings_column with make_empty_column (#8435) @davidwendt
- JNI bindings for get_element (#8433) @revans2
- Update dask make_meta changes to be compatible with dask upstream (#8426) @galipremsagar
- Unpin dask version on CI (#8425) @galipremsagar
- Add benchmark for strings/fixed_point convert APIs (#8417) @davidwendt
- Adapt `cudf::scalar` classes to changes in `rmm::device_scalar` (#8411) @harrism
- Add benchmark for strings/integers convert APIs (#8402) @davidwendt
- Enable multi-file partitioning in dask_cudf.read_parquet (#8393) @rjzamora
- Correct unused parameter warnings in rolling algorithms (#8390) @robertmaynard
- Correct unused parameters in column round and search (#8389) @robertmaynard
- Add functionality to apply `Dtype` metadata to `ColumnBase` (#8373) @charlesbluca
- Refactor setting stack size in regex code (#8358) @davidwendt
- Update Java bindings to 21.08-SNAPSHOT (#8344) @pxLi
- Replace remaining uses of device_vector (#8343) @harrism
- Statically link libnvcomp into libcudfjni (#8334) @jlowe
- Resolve auto merge conflicts for Branch 21.08 from branch 21.06 (#8329) @galipremsagar
- Minor code refactor for sorted_order (#8326) @wbo4958
- Remove special Index class from the general index class hierarchy (#8309) @vyasr
- Add first-class dtype utilities (#8308) @vyasr
- Add option to link Java bindings with Arrow dynamically (#8307) @jlowe
- Refactor ColumnMethods and its subclasses to remove `column` argument and require `parent` argument (#8306) @shwina
- Refactor `scatter` for list columns (#8255) @isVoid
- Expose pack/unpack API to Python (#8153) @charlesbluca
- Adding cudf.cut method (#8002) @marlenezw
- Optimize string gather performance for large strings (#7980) @gaohao95
- Add peak memory usage tracking to cuIO benchmarks (#7770) @devavret
- Updating Clang Version to 11.0.0 (#6695) @codereport
v21.06.01: tag_name: v21.06.01
v21.06.00: tag_name: v21.06.00
body: ## 🚨 Breaking Changes

- Add support for `make_meta_obj` dispatch in `dask-cudf` (#8342) @galipremsagar
- Add separator-on-null parameter to strings concatenate APIs (#8282) @davidwendt
- Introduce a common parent class for NumericalColumn and DecimalColumn (#8278) @vyasr
- Update ORC statistics API to use C++17 standard library (#8241) @vuule
- Preserve column hierarchy when getting NULL row from `LIST` column (#8206) @isVoid
- `Groupby.shift` c++ API refactor and python binding (#8131) @isVoid

## 🐛 Bug Fixes

- Fix struct flattening to add a validity column only when the input column has null element (#8374) @ttnghia
- Compilation fix: Remove redefinition for `std::is_same_v()` (#8369) @mythrocks
- Add backward compatibility for `dask-cudf` to work with other versions of `dask` (#8368) @galipremsagar
- Handle empty results with nested types in copy_if_else (#8359) @nvdbaranec
- Handle nested column types properly for empty parquet files. (#8350) @nvdbaranec
- Raise error when unsupported arguments are passed to `dask_cudf.DataFrame.sort_values` (#8349) @galipremsagar
- Raise `NotImplementedError` for axis=1 in `rank` (#8347) @galipremsagar
- Add support for `make_meta_obj` dispatch in `dask-cudf` (#8342) @galipremsagar
- Update Java string concatenate test for single column (#8330) @tgravescs
- Use empty_like in scatter (#8314) @revans2
- Fix concatenate_lists_ignore_null on rows of all_nulls (#8312) @sperlingxx
- Add separator-on-null parameter to strings concatenate APIs (#8282) @davidwendt
- COLLECT_LIST support returning empty output columns. (#8279) @mythrocks
- Update io util to convert path like object to string (#8275) @ayushdg
- Fix result column types for empty inputs to rolling window (#8274) @mythrocks
- Actually test equality in assert_groupby_results_equal (#8272) @shwina
- CMake always explicitly specify a source files extension (#8270) @robertmaynard
- Fix struct binary search and struct flattening (#8268) @ttnghia
- Revert &quot;patch thrust to fix intmax num elements limitation in scan_by_key&quot; (#8263) @cwharris
- upgrade dlpack to 0.5 (#8262) @cwharris
- Fixes CSV-reader type inference for thousands separator and decimal point (#8261) @elstehle
- Fix incorrect assertion in Java concat (#8258) @sperlingxx
- Copy nested types upon construction (#8244) @isVoid
- Preserve column hierarchy when getting NULL row from `LIST` column (#8206) @isVoid
- Clip decimal binary op precision at max precision (#8194) @ChrisJar

## 📖 Documentation

- Add docstring for `dask_cudf.read_csv` (#8355) @galipremsagar
- Fix cudf release version in readme (#8331) @galipremsagar
- Fix structs column description in dev docs (#8318) @isVoid
- Update readme with correct CUDA versions (#8315) @raydouglass
- Add description of the cuIO GDS integration (#8293) @vuule
- Remove unused parameter from copy_partition kernel documentation (#8283) @robertmaynard

## 🚀 New Features

- Add support merging b/w categorical data (#8332) @galipremsagar
- Java: Support struct scalar (#8327) @sperlingxx
- added _is_homogeneous property (#8299) @shaneding
- Added decimal writing for CSV writer (#8296) @kaatish
- Java: Support creating a scalar from utf8 string (#8294) @firestarman
- Add Java API for Concatenate strings with separator (#8289) @tgravescs
- `strings::join_list_elements` options for empty list inputs (#8285) @ttnghia
- Return python lists for __getitem__ calls to list type series (#8265) @brandon-b-miller
- add unit tests for lead/lag on list for row window (#8259) @wbo4958
- Create a String column from UTF8 String byte arrays (#8257) @firestarman
- Support scattering `list_scalar` (#8256) @isVoid
- Implement `lists::concatenate_list_elements` (#8231) @ttnghia
- Support for struct scalars. (#8220) @nvdbaranec
- Add support for decimal types in ORC writer (#8198) @vuule
- Support create lists column from a `list_scalar` (#8185) @isVoid
- `Groupby.shift` c++ API refactor and python binding (#8131) @isVoid
- Add `groupby::replace_nulls(replace_policy)` api (#7118) @isVoid

## 🛠️ Improvements

- Support Dask + Distributed 2021.05.1 (#8392) @jakirkham
- Add aliases for string methods (#8353) @shwina
- Update environment variable used to determine `cuda_version` (#8321) @ajschmidt8
- JNI: Refactor the code of making column from scalar (#8310) @firestarman
- Update `CHANGELOG.md` links for calver (#8303) @ajschmidt8
- Merge `branch-0.19` into `branch-21.06` (#8302) @ajschmidt8
- use address and length for GDS reads/writes (#8301) @rongou
- Update cudfjni version to 21.06.0 (#8292) @pxLi
- Update docs build script (#8284) @ajschmidt8
- Make device_buffer streams explicit and enforce move construction (#8280) @harrism
- Introduce a common parent class for NumericalColumn and DecimalColumn (#8278) @vyasr
- Do not add nulls to the hash table when null_equality::NOT_EQUAL is passed to left_semi_join and left_anti_join (#8277) @nvdbaranec
- Enable implicit casting when concatenating mixed types (#8276) @ChrisJar
- Fix CMake FindPackage rmm, pin dev envs&#39; dlpack to v0.3 (#8271) @trxcllnt
- Update cudfjni version to 21.06 (#8267) @pxLi
- support RMM aligned resource adapter in JNI (#8266) @rongou
- Pass compiler environment variables to conda python build (#8260) @Ethyling
- Remove abc inheritance from Serializable (#8254) @vyasr
- Move more methods into SingleColumnFrame (#8253) @vyasr
- Update ORC statistics API to use C++17 standard library (#8241) @vuule
- Correct unused parameter warnings in dictonary algorithms (#8239) @robertmaynard
- Correct unused parameters in the copying algorithms (#8232) @robertmaynard
- IO statistics cleanup (#8191) @kaatish
- Refactor of rolling_window implementation. (#8158) @nvdbaranec
- Add a flag for allowing single quotes in JSON strings. (#8144) @nvdbaranec
- Column refactoring 2 (#8130) @vyasr
- support space in workspace (#7956) @jolorunyomi
- Support collect_set on rolling window (#7881) @sperlingxx
v0.19.2: tag_name: v0.19.2
body: ## 🚨 Breaking Changes

- Allow hash_partition to take a seed value (#7771) @magnatelee
- Allow merging index column with data column using keyword &quot;on&quot; (#7736) @skirui-source
- Change JNI API to avoid loading native dependencies when creating sort order classes. (#7729) @revans2
- Replace device_vector with device_uvector in null_mask (#7715) @harrism
- Don&#39;t identify decimals as strings. (#7710) @vyasr
- Fix Java Parquet write after writer API changes (#7655) @revans2
- Convert cudf::concatenate APIs to use spans and device_uvector (#7621) @harrism
- Update missing docstring examples in python public APIs (#7546) @galipremsagar
- Remove unneeded step parameter from strings::detail::copy_slice (#7525) @davidwendt
- Rename ARROW_STATIC_LIB because it conflicts with one in FindArrow.cmake (#7518) @trxcllnt
- Match Pandas logic for comparing two objects with nulls (#7490) @brandon-b-miller
- Add struct support to parquet writer (#7461) @devavret
- Join APIs that return gathermaps (#7454) @shwina
- `fixed_point` + `cudf::binary_operation` API Changes (#7435) @codereport
- Fix BUG: Exception when PYTHONOPTIMIZE=2 (#7434) @skirui-source
- Change nvtext::load_vocabulary_file to return a unique ptr (#7424) @davidwendt
- Refactor strings column factories (#7397) @harrism
- Use CMAKE_CUDA_ARCHITECTURES (#7391) @robertmaynard
- Upgrade pandas to 1.2 (#7375) @galipremsagar
- Rename `logical_cast` to `bit_cast` and allow additional conversions (#7373) @ttnghia
- Rework libcudf CMakeLists.txt to export targets for CPM (#7107) @trxcllnt

## 🐛 Bug Fixes

- unsnap: busy wait a number of cycles (#8073) @vuule
- Fix returned column type when extracting from an empty list column (#8031) @jlowe
- Don&#39;t reindex an new value on setitem if the original dataframe was empty (#8026) @vyasr
- Fix a `NameError` in meta dispatch API (#7996) @galipremsagar
- Reindex in `DataFrame.__setitem__` (#7957) @galipremsagar
- jitify direct-to-cubin compilation and caching. (#7919) @cwharris
- Use dynamic cudart for nvcomp in java build (#7896) @abellina
- fix &quot;incompatible redefinition&quot; warnings (#7894) @cwharris
- cudf consistently specifies the cuda runtime (#7887) @robertmaynard
- disable verbose output for jitify_preprocess (#7886) @cwharris
- CMake jit_preprocess_files function only runs when needed (#7872) @robertmaynard
- Push DeviceScalar construction into cython for list.contains (#7864) @brandon-b-miller
- cudf now sets an install rpath of $ORIGIN (#7863) @robertmaynard
- Don&#39;t install Thrust examples, tests, docs, and python files (#7811) @robertmaynard
- Sort by index in groupby tests more consistently (#7802) @shwina
- Revert &quot;Update conda recipes pinning of repo dependencies (#7743)&quot; (#7793) @raydouglass
- Add decimal column handling in copy_type_metadata (#7788) @shwina
- Add column names validation in parquet writer (#7786) @galipremsagar
- Fix Java explode outer unit tests (#7782) @jlowe
- Fix compiler warning about non-POD types passed through ellipsis (#7781) @jrhemstad
- User resource fix for replace_nulls (#7769) @magnatelee
- Fix type dispatch for columnar replace_nulls (#7768) @jlowe
- Add `ignore_order` parameter to dask-cudf concat dispatch (#7765) @galipremsagar
- Fix slicing and arrow representations of decimal columns (#7755) @vyasr
- Fixing issue with explode_outer position not nulling position entries of null rows (#7754) @hyperbolic2346
- Implement scatter for struct columns (#7752) @ttnghia
- Fix data corruption in string columns (#7746) @galipremsagar
- Fix string length in stripe dictionary building (#7744) @kaatish
- Update conda recipes pinning of repo dependencies (#7743) @mike-wendt
- Enable dask dispatch to cuDF&#39;s `is_categorical_dtype` for cuDF objects (#7740) @brandon-b-miller
- Fix dictionary size computation in ORC writer (#7737) @vuule
- Fix `cudf::cast` overflow for `decimal64` to `int32_t` or smaller in certain cases (#7733) @codereport
- Change JNI API to avoid loading native dependencies when creating sort order classes. (#7729) @revans2
- Disable column_view data accessors for unsupported types (#7725) @jrhemstad
- Materialize `RangeIndex` when `index=True` in parquet writer (#7711) @galipremsagar
- Don&#39;t identify decimals as strings. (#7710) @vyasr
- Fix return type of `DataFrame.argsort` (#7706) @galipremsagar
- Fix/correct cudf installed package requirements (#7688) @robertmaynard
- Fix SparkMurmurHash3_32 hash inconsistencies with Apache Spark (#7672) @jlowe
- Fix ORC reader issue with reading empty string columns (#7656) @rgsl888prabhu
- Fix Java Parquet write after writer API changes (#7655) @revans2
- Fixing empty null lists throwing explode_outer for a loop. (#7649) @hyperbolic2346
- Fix internal compiler error during JNI Docker build (#7645) @jlowe
- Fix Debug build break with device_uvectors in grouped_rolling.cu (#7633) @mythrocks
- Parquet reader:  Fix issue when using skip_rows on non-nested columns containing nulls (#7627) @nvdbaranec
- Fix ORC reader for empty DataFrame/Table (#7624) @rgsl888prabhu
- Fix specifying GPU architecture in JNI build (#7612) @jlowe
- Fix ORC writer OOM issue (#7605) @vuule
- Fix 0.18 --&gt; 0.19 automerge (#7589) @kkraus14
- Fix ORC issue with incorrect timestamp nanosecond values (#7581) @vuule
- Fix missing Dask imports (#7580) @kkraus14
- CMAKE_CUDA_ARCHITECTURES doesn&#39;t change when build-system invokes cmake (#7579) @robertmaynard
- Another fix for offsets_end() iterator in lists_column_view (#7575) @ttnghia
- Fix ORC writer output corruption with string columns (#7565) @vuule
- Fix cudf::lists::sort_lists failing for sliced column (#7564) @ttnghia
- FIX Fix Anaconda upload args (#7558) @dillon-cullinan
- Fix index mismatch issue in equality related APIs (#7555) @galipremsagar
- FIX Revert gpuci_conda_retry on conda file output locations (#7552) @dillon-cullinan
- Fix offset_end iterator for lists_column_view, which was not correctl… (#7551) @ttnghia
- Fix no such file dlpack.h error when build libcudf (#7549) @chenrui17
- Update missing docstring examples in python public APIs (#7546) @galipremsagar
- Decimal32 Build Fix (#7544) @razajafri
- FIX Retry conda output location (#7540) @dillon-cullinan
- fix missing renames of dask git branches from master to main (#7535) @kkraus14
- Remove detail from device_span (#7533) @rwlee
- Change dask and distributed branch to main (#7532) @dantegd
- Update JNI build to use CUDF_USE_ARROW_STATIC (#7526) @jlowe
- Make sure rmm::rmm CMake target is visibile to cudf users (#7524) @robertmaynard
- Fix contiguous_split not properly handling output partitions &gt; 2 GB. (#7515) @nvdbaranec
- Change jit launch to safe_launch (#7510) @devavret
- Fix comparison between Datetime/Timedelta columns and NULL scalars (#7504) @brandon-b-miller
- Fix off-by-one error in char-parallel string scalar replace (#7502) @jlowe
- Fix JNI deprecation of all, put it on the wrong version before (#7501) @revans2
- Fix Series/Dataframe Mixed Arithmetic (#7491) @brandon-b-miller
- Fix JNI build after removal of libcudf sub-libraries (#7486) @jlowe
- Correctly compile benchmarks (#7485) @robertmaynard
- Fix bool column corruption with ORC Reader (#7483) @rgsl888prabhu
- Fix `__repr__` for categorical dtype (#7476) @galipremsagar
- Java cleaner synchronization (#7474) @abellina
- Fix java float/double parsing tests (#7473) @revans2
- Pass stream and user resource to make_default_constructed_scalar (#7469) @magnatelee
- Improve stability of dask_cudf.DataFrame.var and dask_cudf.DataFrame.std (#7453) @rjzamora
- Missing `device_storage_dispatch` change affecting `cudf::gather` (#7449) @codereport
- fix cuFile JNI compile errors (#7445) @rongou
- Support `Series.__setitem__` with key to a new row (#7443) @isVoid
- Fix BUG: Exception when PYTHONOPTIMIZE=2 (#7434) @skirui-source
- Make inclusive scan safe for cases with leading nulls (#7432) @magnatelee
- Fix typo in list_device_view::pair_rep_end() (#7423) @mythrocks
- Fix string to double conversion and row equivalent comparison (#7410) @ttnghia
- Fix thrust failure when transfering data from device_vector to host_vector with vectors of size 1 (#7382) @ttnghia
- Fix std::exeception catch-by-reference gcc9 compile error (#7380) @davidwendt
- Fix skiprows issue with ORC Reader (#7359) @rgsl888prabhu
- fix Arrow CMake file (#7358) @rongou
- Fix lists::contains() for NaN and Decimals (#7349) @mythrocks
- Handle cupy array in `Dataframe.__setitem__` (#7340) @galipremsagar
- Fix invalid-device-fn error in cudf::strings::replace_re with multiple regex&#39;s (#7336) @davidwendt
- FIX Add codecov upload block to gpu script (#6860) @dillon-cullinan

## 📖 Documentation

- Fix join API doxygen (#7890) @shwina
- Add Resources to README. (#7697) @bdice
- Add `isin` examples in Docstring (#7479) @galipremsagar
- Resolving unlinked type shorthands in cudf doc (#7416) @isVoid
- Fix typo in regex.md doc page (#7363) @davidwendt
- Fix incorrect strings_column_view::chars_size documentation (#7360) @jlowe

## 🚀 New Features

- Enable basic reductions for decimal columns (#7776) @ChrisJar
- Enable join on decimal columns (#7764) @ChrisJar
- Allow merging index column with data column using keyword &quot;on&quot; (#7736) @skirui-source
- Implement DecimalColumn + Scalar and add cudf.Scalars of Decimal64Dtype (#7732) @brandon-b-miller
- Add support for `unique` groupby aggregation (#7726) @shwina
- Expose libcudf&#39;s label_bins function to cudf (#7724) @vyasr
- Adding support for equi-join on struct (#7720) @hyperbolic2346
- Add decimal column comparison operations (#7716) @isVoid
- Implement scan operations for decimal columns (#7707) @ChrisJar
- Enable typecasting between decimal and int (#7691) @ChrisJar
- Enable decimal support in parquet writer (#7673) @devavret
- Adds `list.unique` API (#7664) @isVoid
- Fix NaN handling in drop_list_duplicates (#7662) @ttnghia
- Add `lists.sort_values` API (#7657) @isVoid
- Add is_integer API that can check for the validity of a string-to-integer conversion (#7642) @ttnghia
- Adds `explode` API (#7607) @isVoid
- Adds `list.take`, python binding for `cudf::lists::segmented_gather` (#7591) @isVoid
- Implement cudf::label_bins() (#7554) @vyasr
- Add Python bindings for `lists::contains` (#7547) @skirui-source
- cudf::row_bit_count() support. (#7534) @nvdbaranec
- Implement drop_list_duplicates (#7528) @ttnghia
- Add Python bindings for `lists::extract_lists_element` (#7505) @skirui-source
- Add explode_outer and explode_outer_position (#7499) @hyperbolic2346
- Match Pandas logic for comparing two objects with nulls (#7490) @brandon-b-miller
- Add struct support to parquet writer (#7461) @devavret
- Enable type conversion from float to decimal type (#7450) @ChrisJar
- Add cython for converting strings/fixed-point functions (#7429) @davidwendt
- Add struct column support to cudf::sort and cudf::sorted_order (#7422) @karthikeyann
- Implement groupby collect_set (#7420) @ttnghia
- Merge branch-0.18 into branch-0.19 (#7411) @raydouglass
- Refactor strings column factories (#7397) @harrism
- Add groupby scan operations (sort groupby) (#7387) @karthikeyann
- Add cudf::explode_position (#7376) @hyperbolic2346
- Add string conversion to/from decimal values libcudf APIs (#7364) @davidwendt
- Add  groupby SUM_OF_SQUARES support (#7362) @karthikeyann
- Add `Series.drop` api (#7304) @isVoid
- get_json_object() implementation (#7286) @nvdbaranec
- Python API for `LIstMethods.len()` (#7283) @isVoid
- Support null_policy::EXCLUDE for COLLECT rolling aggregation (#7264) @mythrocks
- Add support for special tokens in nvtext::subword_tokenizer (#7254) @davidwendt
- Fix inplace update of data and add Series.update (#7201) @galipremsagar
- Implement `cudf::group_by` (hash) for `decimal32` and `decimal64` (#7190) @codereport
- Adding support to specify &quot;level&quot; parameter  for `Dataframe.rename` (#7135) @skirui-source

## 🛠️ Improvements

- fix GDS include path for version 0.95 (#7877) @rongou
- Update `dask` + `distributed` to `2021.4.0` (#7858) @jakirkham
- Add ability to extract include dirs from `CUDF_HOME` (#7848) @galipremsagar
- Add USE_GDS as an option in build script (#7833) @pxLi
- add an allocate method with stream in java DeviceMemoryBuffer (#7826) @rongou
- Constrain dask and distributed versions to 2021.3.1 (#7825) @shwina
- Revert dask versioning of concat dispatch (#7823) @galipremsagar
- add copy methods in Java memory buffer (#7791) @rongou
- Update README and CONTRIBUTING for 0.19 (#7778) @robertmaynard
- Allow hash_partition to take a seed value (#7771) @magnatelee
- Turn on NVTX by default in java build (#7761) @tgravescs
- Add Java bindings to join gather map APIs (#7751) @jlowe
- Add replacements column support for Java replaceNulls (#7750) @jlowe
- Add Java bindings for row_bit_count (#7749) @jlowe
- Remove unused JVM array creation (#7748) @jlowe
- Added JNI support for new is_integer (#7739) @revans2
- Create and promote library aliases in libcudf installations (#7734) @trxcllnt
- Support groupby operations for decimal dtypes (#7731) @vyasr
- Memory map the input file only when GDS compatiblity mode is not used (#7717) @vuule
- Replace device_vector with device_uvector in null_mask (#7715) @harrism
- Struct hashing support for SerialMurmur3 and SparkMurmur3 (#7714) @jlowe
- Add gbenchmark for nvtext replace-tokens function (#7708) @davidwendt
- Use stream in groupby calls (#7705) @karthikeyann
- Update codeowners file (#7701) @ajschmidt8
- Cleanup groupby to use host_span, device_span, device_uvector (#7698) @karthikeyann
- Add gbenchmark for nvtext ngrams functions (#7693) @davidwendt
- Misc Python/Cython optimizations (#7686) @shwina
- Add gbenchmark for nvtext tokenize functions (#7684) @davidwendt
- Add column_device_view to orc writer (#7676) @kaatish
- cudf_kafka now uses cuDF CMake export targets (CPM) (#7674) @robertmaynard
- Add gbenchmark for nvtext normalize functions (#7668) @davidwendt
- Resolve unnecessary import of thrust/optional.hpp in types.hpp (#7667) @vyasr
- Feature/optimize accessor copy (#7660) @vyasr
- Fix `find_package(cudf)` (#7658) @trxcllnt
- Work-around for gcc7 compile error on Centos7 (#7652) @davidwendt
- Add in JNI support for count_elements (#7651) @revans2
- Fix issues with building cudf in a non-conda environment (#7647) @galipremsagar
- Refactor ConfigureCUDA to not conditionally insert compiler flags (#7643) @robertmaynard
- Add gbenchmark for converting strings to/from timestamps (#7641) @davidwendt
- Handle constructing a `cudf.Scalar` from a `cudf.Scalar` (#7639) @shwina
- Add in JNI support for table partition (#7637) @revans2
- Add explicit fixed_point merge test (#7635) @codereport
- Add JNI support for IDENTITY hash partitioning (#7626) @revans2
- Java support on explode_outer (#7625) @sperlingxx
- Java support of casting string from/to decimal (#7623) @sperlingxx
- Convert cudf::concatenate APIs to use spans and device_uvector (#7621) @harrism
- Add gbenchmark for cudf::strings::translate function (#7617) @davidwendt
- Use file(COPY ) over file(INSTALL ) so cmake output is reduced (#7616) @robertmaynard
- Use rmm::device_uvector in place of rmm::device_vector for ORC reader/writer and cudf::io::column_buffer (#7614) @vuule
- Refactor Java host-side buffer concatenation to expose separate steps (#7610) @jlowe
- Add gbenchmarks for string substrings functions (#7603) @davidwendt
- Refactor string conversion check (#7599) @ttnghia
- JNI: Pass names of children struct columns to native Arrow IPC writer (#7598) @firestarman
- Revert &quot;ENH Fix stale GHA and prevent duplicates &quot; (#7595) @mike-wendt
- ENH Fix stale GHA and prevent duplicates (#7594) @mike-wendt
- Fix auto-detecting GPU architectures (#7593) @trxcllnt
- Reduce cudf library size (#7583) @robertmaynard
- Optimize cudf::make_strings_column for long strings (#7576) @davidwendt
- Always build and export the cudf::cudftestutil target (#7574) @trxcllnt
- Eliminate literal parameters to uvector::set_element_async and device_scalar::set_value (#7563) @harrism
- Add gbenchmark for strings::concatenate (#7560) @davidwendt
- Update Changelog Link (#7550) @ajschmidt8
- Add gbenchmarks for strings replace regex functions (#7541) @davidwendt
- Add `__repr__` for Column and ColumnAccessor (#7531) @shwina
- Support Decimal DIV changes in cudf (#7527) @razajafri
- Remove unneeded step parameter from strings::detail::copy_slice (#7525) @davidwendt
- Use device_uvector, device_span in sort groupby (#7523) @karthikeyann
- Add gbenchmarks for strings extract function (#7522) @davidwendt
- Rename ARROW_STATIC_LIB because it conflicts with one in FindArrow.cmake (#7518) @trxcllnt
- Reduce compile time/size for scan.cu (#7516) @davidwendt
- Change device_vector to device_uvector in nvtext source files (#7512) @davidwendt
- Removed unneeded includes from traits.hpp (#7509) @davidwendt
- FIX Remove random build directory generation for ccache (#7508) @dillon-cullinan
- xfail failing pytest in pandas 1.2.3 (#7507) @galipremsagar
- JNI bit cast (#7493) @revans2
- Combine rolling window function tests (#7480) @mythrocks
- Prepare Changelog for Automation (#7477) @ajschmidt8
- Java support for explode position (#7471) @sperlingxx
- Update 0.18 changelog entry (#7463) @ajschmidt8
- JNI: Support skipping nulls for collect aggregation (#7457) @firestarman
- Join APIs that return gathermaps (#7454) @shwina
- Remove dependence on managed memory for multimap test (#7451) @jrhemstad
- Use cuFile for Parquet IO when available (#7444) @vuule
- Statistics cleanup (#7439) @kaatish
- Add gbenchmarks for strings filter functions (#7438) @davidwendt
- `fixed_point` + `cudf::binary_operation` API Changes (#7435) @codereport
- Improve string gather performance (#7433) @jlowe
- Don&#39;t use user resource for a temporary allocation in sort_by_key (#7431) @magnatelee
- Detail APIs for datetime functions (#7430) @magnatelee
- Replace thrust::max_element with thrust::reduce in strings findall_re (#7428) @davidwendt
- Add gbenchmark for strings split/split_record functions (#7427) @davidwendt
- Update JNI build to use CMAKE_CUDA_ARCHITECTURES (#7425) @jlowe
- Change nvtext::load_vocabulary_file to return a unique ptr (#7424) @davidwendt
- Simplify type dispatch with `device_storage_dispatch` (#7419) @codereport
- Java support for casting of nested child columns (#7417) @razajafri
- Improve scalar string replace performance for long strings (#7415) @jlowe
- Remove unneeded temporary device vector for strings scatter specialization (#7409) @davidwendt
- bitmask_or implementation with bitmask refactor (#7406) @rwlee
- Add other cudf::strings::replace functions to current strings replace gbenchmark (#7403) @davidwendt
- Clean up included headers in `device_operators.cuh` (#7401) @codereport
- Move nullable index iterator to indexalator factory (#7399) @davidwendt
- ENH Pass ccache variables to conda recipe &amp; use Ninja in CI (#7398) @Ethyling
- upgrade maven-antrun-plugin to support maven parallel builds (#7393) @rongou
- Add gbenchmark for strings find/contains functions (#7392) @davidwendt
- Use CMAKE_CUDA_ARCHITECTURES (#7391) @robertmaynard
- Refactor libcudf strings::replace to use make_strings_children utility (#7384) @davidwendt
- Added in JNI support for out of core sort algorithm (#7381) @revans2
- Upgrade pandas to 1.2 (#7375) @galipremsagar
- Rename `logical_cast` to `bit_cast` and allow additional conversions (#7373) @ttnghia
- jitify 2 support (#7372) @cwharris
- compile_udf: Cache PTX for similar functions (#7371) @gmarkall
- Add string scalar replace benchmark (#7369) @jlowe
- Add gbenchmark for strings contains_re/count_re functions (#7366) @davidwendt
- Update orc reader and writer fuzz tests (#7357) @galipremsagar
- Improve url_decode performance for long strings (#7353) @jlowe
- `cudf::ast` Small Refactorings (#7352) @codereport
- Remove std::cout and print in the scatter test function EmptyListsOfNullableStrings. (#7342) @ttnghia
- Use `cudf::detail::make_counting_transform_iterator` (#7338) @codereport
- Change block size parameter from a global to a template param. (#7333) @nvdbaranec
- Partial clean up of ORC writer (#7324) @vuule
- Add gbenchmark for cudf::strings::to_lower (#7316) @davidwendt
- Update Java bindings version to 0.19-SNAPSHOT (#7307) @pxLi
- Move `cudf::test::make_counting_transform_iterator` to `cudf/detail/iterator.cuh` (#7306) @codereport
- Use string literals in `fixed_point` `release_assert`s (#7303) @codereport
- Fix merge conflicts for #7295 (#7297) @ajschmidt8
- Add UTF-8 chars to create_random_column&lt;string_view&gt; benchmark utility (#7292) @davidwendt
- Abstracting block reduce and block scan from cuIO kernels with `cub` apis (#7278) @rgsl888prabhu
- Build.sh use cmake --build to drive build system invocation (#7270) @robertmaynard
- Refactor dictionary support for reductions any/all (#7242) @davidwendt
- Replace stream.value() with stream for stream_view args (#7236) @karthikeyann
- Interval index and interval_range (#7182) @marlenezw
- avro reader integration tests (#7156) @cwharris
- Rework libcudf CMakeLists.txt to export targets for CPM (#7107) @trxcllnt
- Adding Interval Dtype (#6984) @marlenezw
- Cleaning up `for` loops with `make_(counting_)transform_iterator` (#6546) @codereport
v0.19.1: tag_name: v0.19.1
body: ## 🚨 Breaking Changes

- Allow hash_partition to take a seed value (#7771) @magnatelee
- Allow merging index column with data column using keyword &quot;on&quot; (#7736) @skirui-source
- Change JNI API to avoid loading native dependencies when creating sort order classes. (#7729) @revans2
- Replace device_vector with device_uvector in null_mask (#7715) @harrism
- Don&#39;t identify decimals as strings. (#7710) @vyasr
- Fix Java Parquet write after writer API changes (#7655) @revans2
- Convert cudf::concatenate APIs to use spans and device_uvector (#7621) @harrism
- Update missing docstring examples in python public APIs (#7546) @galipremsagar
- Remove unneeded step parameter from strings::detail::copy_slice (#7525) @davidwendt
- Rename ARROW_STATIC_LIB because it conflicts with one in FindArrow.cmake (#7518) @trxcllnt
- Match Pandas logic for comparing two objects with nulls (#7490) @brandon-b-miller
- Add struct support to parquet writer (#7461) @devavret
- Join APIs that return gathermaps (#7454) @shwina
- `fixed_point` + `cudf::binary_operation` API Changes (#7435) @codereport
- Fix BUG: Exception when PYTHONOPTIMIZE=2 (#7434) @skirui-source
- Change nvtext::load_vocabulary_file to return a unique ptr (#7424) @davidwendt
- Refactor strings column factories (#7397) @harrism
- Use CMAKE_CUDA_ARCHITECTURES (#7391) @robertmaynard
- Upgrade pandas to 1.2 (#7375) @galipremsagar
- Rename `logical_cast` to `bit_cast` and allow additional conversions (#7373) @ttnghia
- Rework libcudf CMakeLists.txt to export targets for CPM (#7107) @trxcllnt

## 🐛 Bug Fixes

- Fix returned column type when extracting from an empty list column (#8031) @jlowe
- Don&#39;t reindex an new value on setitem if the original dataframe was empty (#8026) @vyasr
- Fix a `NameError` in meta dispatch API (#7996) @galipremsagar
- Reindex in `DataFrame.__setitem__` (#7957) @galipremsagar
- jitify direct-to-cubin compilation and caching. (#7919) @cwharris
- Use dynamic cudart for nvcomp in java build (#7896) @abellina
- fix &quot;incompatible redefinition&quot; warnings (#7894) @cwharris
- cudf consistently specifies the cuda runtime (#7887) @robertmaynard
- disable verbose output for jitify_preprocess (#7886) @cwharris
- CMake jit_preprocess_files function only runs when needed (#7872) @robertmaynard
- Push DeviceScalar construction into cython for list.contains (#7864) @brandon-b-miller
- cudf now sets an install rpath of $ORIGIN (#7863) @robertmaynard
- Don&#39;t install Thrust examples, tests, docs, and python files (#7811) @robertmaynard
- Sort by index in groupby tests more consistently (#7802) @shwina
- Revert &quot;Update conda recipes pinning of repo dependencies (#7743)&quot; (#7793) @raydouglass
- Add decimal column handling in copy_type_metadata (#7788) @shwina
- Add column names validation in parquet writer (#7786) @galipremsagar
- Fix Java explode outer unit tests (#7782) @jlowe
- Fix compiler warning about non-POD types passed through ellipsis (#7781) @jrhemstad
- User resource fix for replace_nulls (#7769) @magnatelee
- Fix type dispatch for columnar replace_nulls (#7768) @jlowe
- Add `ignore_order` parameter to dask-cudf concat dispatch (#7765) @galipremsagar
- Fix slicing and arrow representations of decimal columns (#7755) @vyasr
- Fixing issue with explode_outer position not nulling position entries of null rows (#7754) @hyperbolic2346
- Implement scatter for struct columns (#7752) @ttnghia
- Fix data corruption in string columns (#7746) @galipremsagar
- Fix string length in stripe dictionary building (#7744) @kaatish
- Update conda recipes pinning of repo dependencies (#7743) @mike-wendt
- Enable dask dispatch to cuDF&#39;s `is_categorical_dtype` for cuDF objects (#7740) @brandon-b-miller
- Fix dictionary size computation in ORC writer (#7737) @vuule
- Fix `cudf::cast` overflow for `decimal64` to `int32_t` or smaller in certain cases (#7733) @codereport
- Change JNI API to avoid loading native dependencies when creating sort order classes. (#7729) @revans2
- Disable column_view data accessors for unsupported types (#7725) @jrhemstad
- Materialize `RangeIndex` when `index=True` in parquet writer (#7711) @galipremsagar
- Don&#39;t identify decimals as strings. (#7710) @vyasr
- Fix return type of `DataFrame.argsort` (#7706) @galipremsagar
- Fix/correct cudf installed package requirements (#7688) @robertmaynard
- Fix SparkMurmurHash3_32 hash inconsistencies with Apache Spark (#7672) @jlowe
- Fix ORC reader issue with reading empty string columns (#7656) @rgsl888prabhu
- Fix Java Parquet write after writer API changes (#7655) @revans2
- Fixing empty null lists throwing explode_outer for a loop. (#7649) @hyperbolic2346
- Fix internal compiler error during JNI Docker build (#7645) @jlowe
- Fix Debug build break with device_uvectors in grouped_rolling.cu (#7633) @mythrocks
- Parquet reader:  Fix issue when using skip_rows on non-nested columns containing nulls (#7627) @nvdbaranec
- Fix ORC reader for empty DataFrame/Table (#7624) @rgsl888prabhu
- Fix specifying GPU architecture in JNI build (#7612) @jlowe
- Fix ORC writer OOM issue (#7605) @vuule
- Fix 0.18 --&gt; 0.19 automerge (#7589) @kkraus14
- Fix ORC issue with incorrect timestamp nanosecond values (#7581) @vuule
- Fix missing Dask imports (#7580) @kkraus14
- CMAKE_CUDA_ARCHITECTURES doesn&#39;t change when build-system invokes cmake (#7579) @robertmaynard
- Another fix for offsets_end() iterator in lists_column_view (#7575) @ttnghia
- Fix ORC writer output corruption with string columns (#7565) @vuule
- Fix cudf::lists::sort_lists failing for sliced column (#7564) @ttnghia
- FIX Fix Anaconda upload args (#7558) @dillon-cullinan
- Fix index mismatch issue in equality related APIs (#7555) @galipremsagar
- FIX Revert gpuci_conda_retry on conda file output locations (#7552) @dillon-cullinan
- Fix offset_end iterator for lists_column_view, which was not correctl… (#7551) @ttnghia
- Fix no such file dlpack.h error when build libcudf (#7549) @chenrui17
- Update missing docstring examples in python public APIs (#7546) @galipremsagar
- Decimal32 Build Fix (#7544) @razajafri
- FIX Retry conda output location (#7540) @dillon-cullinan
- fix missing renames of dask git branches from master to main (#7535) @kkraus14
- Remove detail from device_span (#7533) @rwlee
- Change dask and distributed branch to main (#7532) @dantegd
- Update JNI build to use CUDF_USE_ARROW_STATIC (#7526) @jlowe
- Make sure rmm::rmm CMake target is visibile to cudf users (#7524) @robertmaynard
- Fix contiguous_split not properly handling output partitions &gt; 2 GB. (#7515) @nvdbaranec
- Change jit launch to safe_launch (#7510) @devavret
- Fix comparison between Datetime/Timedelta columns and NULL scalars (#7504) @brandon-b-miller
- Fix off-by-one error in char-parallel string scalar replace (#7502) @jlowe
- Fix JNI deprecation of all, put it on the wrong version before (#7501) @revans2
- Fix Series/Dataframe Mixed Arithmetic (#7491) @brandon-b-miller
- Fix JNI build after removal of libcudf sub-libraries (#7486) @jlowe
- Correctly compile benchmarks (#7485) @robertmaynard
- Fix bool column corruption with ORC Reader (#7483) @rgsl888prabhu
- Fix `__repr__` for categorical dtype (#7476) @galipremsagar
- Java cleaner synchronization (#7474) @abellina
- Fix java float/double parsing tests (#7473) @revans2
- Pass stream and user resource to make_default_constructed_scalar (#7469) @magnatelee
- Improve stability of dask_cudf.DataFrame.var and dask_cudf.DataFrame.std (#7453) @rjzamora
- Missing `device_storage_dispatch` change affecting `cudf::gather` (#7449) @codereport
- fix cuFile JNI compile errors (#7445) @rongou
- Support `Series.__setitem__` with key to a new row (#7443) @isVoid
- Fix BUG: Exception when PYTHONOPTIMIZE=2 (#7434) @skirui-source
- Make inclusive scan safe for cases with leading nulls (#7432) @magnatelee
- Fix typo in list_device_view::pair_rep_end() (#7423) @mythrocks
- Fix string to double conversion and row equivalent comparison (#7410) @ttnghia
- Fix thrust failure when transfering data from device_vector to host_vector with vectors of size 1 (#7382) @ttnghia
- Fix std::exeception catch-by-reference gcc9 compile error (#7380) @davidwendt
- Fix skiprows issue with ORC Reader (#7359) @rgsl888prabhu
- fix Arrow CMake file (#7358) @rongou
- Fix lists::contains() for NaN and Decimals (#7349) @mythrocks
- Handle cupy array in `Dataframe.__setitem__` (#7340) @galipremsagar
- Fix invalid-device-fn error in cudf::strings::replace_re with multiple regex&#39;s (#7336) @davidwendt
- FIX Add codecov upload block to gpu script (#6860) @dillon-cullinan

## 📖 Documentation

- Fix join API doxygen (#7890) @shwina
- Add Resources to README. (#7697) @bdice
- Add `isin` examples in Docstring (#7479) @galipremsagar
- Resolving unlinked type shorthands in cudf doc (#7416) @isVoid
- Fix typo in regex.md doc page (#7363) @davidwendt
- Fix incorrect strings_column_view::chars_size documentation (#7360) @jlowe

## 🚀 New Features

- Enable basic reductions for decimal columns (#7776) @ChrisJar
- Enable join on decimal columns (#7764) @ChrisJar
- Allow merging index column with data column using keyword &quot;on&quot; (#7736) @skirui-source
- Implement DecimalColumn + Scalar and add cudf.Scalars of Decimal64Dtype (#7732) @brandon-b-miller
- Add support for `unique` groupby aggregation (#7726) @shwina
- Expose libcudf&#39;s label_bins function to cudf (#7724) @vyasr
- Adding support for equi-join on struct (#7720) @hyperbolic2346
- Add decimal column comparison operations (#7716) @isVoid
- Implement scan operations for decimal columns (#7707) @ChrisJar
- Enable typecasting between decimal and int (#7691) @ChrisJar
- Enable decimal support in parquet writer (#7673) @devavret
- Adds `list.unique` API (#7664) @isVoid
- Fix NaN handling in drop_list_duplicates (#7662) @ttnghia
- Add `lists.sort_values` API (#7657) @isVoid
- Add is_integer API that can check for the validity of a string-to-integer conversion (#7642) @ttnghia
- Adds `explode` API (#7607) @isVoid
- Adds `list.take`, python binding for `cudf::lists::segmented_gather` (#7591) @isVoid
- Implement cudf::label_bins() (#7554) @vyasr
- Add Python bindings for `lists::contains` (#7547) @skirui-source
- cudf::row_bit_count() support. (#7534) @nvdbaranec
- Implement drop_list_duplicates (#7528) @ttnghia
- Add Python bindings for `lists::extract_lists_element` (#7505) @skirui-source
- Add explode_outer and explode_outer_position (#7499) @hyperbolic2346
- Match Pandas logic for comparing two objects with nulls (#7490) @brandon-b-miller
- Add struct support to parquet writer (#7461) @devavret
- Enable type conversion from float to decimal type (#7450) @ChrisJar
- Add cython for converting strings/fixed-point functions (#7429) @davidwendt
- Add struct column support to cudf::sort and cudf::sorted_order (#7422) @karthikeyann
- Implement groupby collect_set (#7420) @ttnghia
- Merge branch-0.18 into branch-0.19 (#7411) @raydouglass
- Refactor strings column factories (#7397) @harrism
- Add groupby scan operations (sort groupby) (#7387) @karthikeyann
- Add cudf::explode_position (#7376) @hyperbolic2346
- Add string conversion to/from decimal values libcudf APIs (#7364) @davidwendt
- Add  groupby SUM_OF_SQUARES support (#7362) @karthikeyann
- Add `Series.drop` api (#7304) @isVoid
- get_json_object() implementation (#7286) @nvdbaranec
- Python API for `LIstMethods.len()` (#7283) @isVoid
- Support null_policy::EXCLUDE for COLLECT rolling aggregation (#7264) @mythrocks
- Add support for special tokens in nvtext::subword_tokenizer (#7254) @davidwendt
- Fix inplace update of data and add Series.update (#7201) @galipremsagar
- Implement `cudf::group_by` (hash) for `decimal32` and `decimal64` (#7190) @codereport
- Adding support to specify &quot;level&quot; parameter  for `Dataframe.rename` (#7135) @skirui-source

## 🛠️ Improvements

- fix GDS include path for version 0.95 (#7877) @rongou
- Update `dask` + `distributed` to `2021.4.0` (#7858) @jakirkham
- Add ability to extract include dirs from `CUDF_HOME` (#7848) @galipremsagar
- Add USE_GDS as an option in build script (#7833) @pxLi
- add an allocate method with stream in java DeviceMemoryBuffer (#7826) @rongou
- Constrain dask and distributed versions to 2021.3.1 (#7825) @shwina
- Revert dask versioning of concat dispatch (#7823) @galipremsagar
- add copy methods in Java memory buffer (#7791) @rongou
- Update README and CONTRIBUTING for 0.19 (#7778) @robertmaynard
- Allow hash_partition to take a seed value (#7771) @magnatelee
- Turn on NVTX by default in java build (#7761) @tgravescs
- Add Java bindings to join gather map APIs (#7751) @jlowe
- Add replacements column support for Java replaceNulls (#7750) @jlowe
- Add Java bindings for row_bit_count (#7749) @jlowe
- Remove unused JVM array creation (#7748) @jlowe
- Added JNI support for new is_integer (#7739) @revans2
- Create and promote library aliases in libcudf installations (#7734) @trxcllnt
- Support groupby operations for decimal dtypes (#7731) @vyasr
- Memory map the input file only when GDS compatiblity mode is not used (#7717) @vuule
- Replace device_vector with device_uvector in null_mask (#7715) @harrism
- Struct hashing support for SerialMurmur3 and SparkMurmur3 (#7714) @jlowe
- Add gbenchmark for nvtext replace-tokens function (#7708) @davidwendt
- Use stream in groupby calls (#7705) @karthikeyann
- Update codeowners file (#7701) @ajschmidt8
- Cleanup groupby to use host_span, device_span, device_uvector (#7698) @karthikeyann
- Add gbenchmark for nvtext ngrams functions (#7693) @davidwendt
- Misc Python/Cython optimizations (#7686) @shwina
- Add gbenchmark for nvtext tokenize functions (#7684) @davidwendt
- Add column_device_view to orc writer (#7676) @kaatish
- cudf_kafka now uses cuDF CMake export targets (CPM) (#7674) @robertmaynard
- Add gbenchmark for nvtext normalize functions (#7668) @davidwendt
- Resolve unnecessary import of thrust/optional.hpp in types.hpp (#7667) @vyasr
- Feature/optimize accessor copy (#7660) @vyasr
- Fix `find_package(cudf)` (#7658) @trxcllnt
- Work-around for gcc7 compile error on Centos7 (#7652) @davidwendt
- Add in JNI support for count_elements (#7651) @revans2
- Fix issues with building cudf in a non-conda environment (#7647) @galipremsagar
- Refactor ConfigureCUDA to not conditionally insert compiler flags (#7643) @robertmaynard
- Add gbenchmark for converting strings to/from timestamps (#7641) @davidwendt
- Handle constructing a `cudf.Scalar` from a `cudf.Scalar` (#7639) @shwina
- Add in JNI support for table partition (#7637) @revans2
- Add explicit fixed_point merge test (#7635) @codereport
- Add JNI support for IDENTITY hash partitioning (#7626) @revans2
- Java support on explode_outer (#7625) @sperlingxx
- Java support of casting string from/to decimal (#7623) @sperlingxx
- Convert cudf::concatenate APIs to use spans and device_uvector (#7621) @harrism
- Add gbenchmark for cudf::strings::translate function (#7617) @davidwendt
- Use file(COPY ) over file(INSTALL ) so cmake output is reduced (#7616) @robertmaynard
- Use rmm::device_uvector in place of rmm::device_vector for ORC reader/writer and cudf::io::column_buffer (#7614) @vuule
- Refactor Java host-side buffer concatenation to expose separate steps (#7610) @jlowe
- Add gbenchmarks for string substrings functions (#7603) @davidwendt
- Refactor string conversion check (#7599) @ttnghia
- JNI: Pass names of children struct columns to native Arrow IPC writer (#7598) @firestarman
- Revert &quot;ENH Fix stale GHA and prevent duplicates &quot; (#7595) @mike-wendt
- ENH Fix stale GHA and prevent duplicates (#7594) @mike-wendt
- Fix auto-detecting GPU architectures (#7593) @trxcllnt
- Reduce cudf library size (#7583) @robertmaynard
- Optimize cudf::make_strings_column for long strings (#7576) @davidwendt
- Always build and export the cudf::cudftestutil target (#7574) @trxcllnt
- Eliminate literal parameters to uvector::set_element_async and device_scalar::set_value (#7563) @harrism
- Add gbenchmark for strings::concatenate (#7560) @davidwendt
- Update Changelog Link (#7550) @ajschmidt8
- Add gbenchmarks for strings replace regex functions (#7541) @davidwendt
- Add `__repr__` for Column and ColumnAccessor (#7531) @shwina
- Support Decimal DIV changes in cudf (#7527) @razajafri
- Remove unneeded step parameter from strings::detail::copy_slice (#7525) @davidwendt
- Use device_uvector, device_span in sort groupby (#7523) @karthikeyann
- Add gbenchmarks for strings extract function (#7522) @davidwendt
- Rename ARROW_STATIC_LIB because it conflicts with one in FindArrow.cmake (#7518) @trxcllnt
- Reduce compile time/size for scan.cu (#7516) @davidwendt
- Change device_vector to device_uvector in nvtext source files (#7512) @davidwendt
- Removed unneeded includes from traits.hpp (#7509) @davidwendt
- FIX Remove random build directory generation for ccache (#7508) @dillon-cullinan
- xfail failing pytest in pandas 1.2.3 (#7507) @galipremsagar
- JNI bit cast (#7493) @revans2
- Combine rolling window function tests (#7480) @mythrocks
- Prepare Changelog for Automation (#7477) @ajschmidt8
- Java support for explode position (#7471) @sperlingxx
- Update 0.18 changelog entry (#7463) @ajschmidt8
- JNI: Support skipping nulls for collect aggregation (#7457) @firestarman
- Join APIs that return gathermaps (#7454) @shwina
- Remove dependence on managed memory for multimap test (#7451) @jrhemstad
- Use cuFile for Parquet IO when available (#7444) @vuule
- Statistics cleanup (#7439) @kaatish
- Add gbenchmarks for strings filter functions (#7438) @davidwendt
- `fixed_point` + `cudf::binary_operation` API Changes (#7435) @codereport
- Improve string gather performance (#7433) @jlowe
- Don&#39;t use user resource for a temporary allocation in sort_by_key (#7431) @magnatelee
- Detail APIs for datetime functions (#7430) @magnatelee
- Replace thrust::max_element with thrust::reduce in strings findall_re (#7428) @davidwendt
- Add gbenchmark for strings split/split_record functions (#7427) @davidwendt
- Update JNI build to use CMAKE_CUDA_ARCHITECTURES (#7425) @jlowe
- Change nvtext::load_vocabulary_file to return a unique ptr (#7424) @davidwendt
- Simplify type dispatch with `device_storage_dispatch` (#7419) @codereport
- Java support for casting of nested child columns (#7417) @razajafri
- Improve scalar string replace performance for long strings (#7415) @jlowe
- Remove unneeded temporary device vector for strings scatter specialization (#7409) @davidwendt
- bitmask_or implementation with bitmask refactor (#7406) @rwlee
- Add other cudf::strings::replace functions to current strings replace gbenchmark (#7403) @davidwendt
- Clean up included headers in `device_operators.cuh` (#7401) @codereport
- Move nullable index iterator to indexalator factory (#7399) @davidwendt
- ENH Pass ccache variables to conda recipe &amp; use Ninja in CI (#7398) @Ethyling
- upgrade maven-antrun-plugin to support maven parallel builds (#7393) @rongou
- Add gbenchmark for strings find/contains functions (#7392) @davidwendt
- Use CMAKE_CUDA_ARCHITECTURES (#7391) @robertmaynard
- Refactor libcudf strings::replace to use make_strings_children utility (#7384) @davidwendt
- Added in JNI support for out of core sort algorithm (#7381) @revans2
- Upgrade pandas to 1.2 (#7375) @galipremsagar
- Rename `logical_cast` to `bit_cast` and allow additional conversions (#7373) @ttnghia
- jitify 2 support (#7372) @cwharris
- compile_udf: Cache PTX for similar functions (#7371) @gmarkall
- Add string scalar replace benchmark (#7369) @jlowe
- Add gbenchmark for strings contains_re/count_re functions (#7366) @davidwendt
- Update orc reader and writer fuzz tests (#7357) @galipremsagar
- Improve url_decode performance for long strings (#7353) @jlowe
- `cudf::ast` Small Refactorings (#7352) @codereport
- Remove std::cout and print in the scatter test function EmptyListsOfNullableStrings. (#7342) @ttnghia
- Use `cudf::detail::make_counting_transform_iterator` (#7338) @codereport
- Change block size parameter from a global to a template param. (#7333) @nvdbaranec
- Partial clean up of ORC writer (#7324) @vuule
- Add gbenchmark for cudf::strings::to_lower (#7316) @davidwendt
- Update Java bindings version to 0.19-SNAPSHOT (#7307) @pxLi
- Move `cudf::test::make_counting_transform_iterator` to `cudf/detail/iterator.cuh` (#7306) @codereport
- Use string literals in `fixed_point` `release_assert`s (#7303) @codereport
- Fix merge conflicts for #7295 (#7297) @ajschmidt8
- Add UTF-8 chars to create_random_column&lt;string_view&gt; benchmark utility (#7292) @davidwendt
- Abstracting block reduce and block scan from cuIO kernels with `cub` apis (#7278) @rgsl888prabhu
- Build.sh use cmake --build to drive build system invocation (#7270) @robertmaynard
- Refactor dictionary support for reductions any/all (#7242) @davidwendt
- Replace stream.value() with stream for stream_view args (#7236) @karthikeyann
- Interval index and interval_range (#7182) @marlenezw
- avro reader integration tests (#7156) @cwharris
- Rework libcudf CMakeLists.txt to export targets for CPM (#7107) @trxcllnt
- Adding Interval Dtype (#6984) @marlenezw
- Cleaning up `for` loops with `make_(counting_)transform_iterator` (#6546) @codereport
v0.19.0: tag_name: v0.19.0
body: ## 🚨 Breaking Changes

- Allow hash_partition to take a seed value (#7771) @magnatelee
- Allow merging index column with data column using keyword &quot;on&quot; (#7736) @skirui-source
- Change JNI API to avoid loading native dependencies when creating sort order classes. (#7729) @revans2
- Replace device_vector with device_uvector in null_mask (#7715) @harrism
- Don&#39;t identify decimals as strings. (#7710) @vyasr
- Fix Java Parquet write after writer API changes (#7655) @revans2
- Convert cudf::concatenate APIs to use spans and device_uvector (#7621) @harrism
- Update missing docstring examples in python public APIs (#7546) @galipremsagar
- Remove unneeded step parameter from strings::detail::copy_slice (#7525) @davidwendt
- Rename ARROW_STATIC_LIB because it conflicts with one in FindArrow.cmake (#7518) @trxcllnt
- Match Pandas logic for comparing two objects with nulls (#7490) @brandon-b-miller
- Add struct support to parquet writer (#7461) @devavret
- Join APIs that return gathermaps (#7454) @shwina
- `fixed_point` + `cudf::binary_operation` API Changes (#7435) @codereport
- Fix BUG: Exception when PYTHONOPTIMIZE=2 (#7434) @skirui-source
- Change nvtext::load_vocabulary_file to return a unique ptr (#7424) @davidwendt
- Refactor strings column factories (#7397) @harrism
- Use CMAKE_CUDA_ARCHITECTURES (#7391) @robertmaynard
- Upgrade pandas to 1.2 (#7375) @galipremsagar
- Rename `logical_cast` to `bit_cast` and allow additional conversions (#7373) @ttnghia
- Rework libcudf CMakeLists.txt to export targets for CPM (#7107) @trxcllnt

## 🐛 Bug Fixes

- Fix a `NameError` in meta dispatch API (#7996) @galipremsagar
- Reindex in `DataFrame.__setitem__` (#7957) @galipremsagar
- jitify direct-to-cubin compilation and caching. (#7919) @cwharris
- Use dynamic cudart for nvcomp in java build (#7896) @abellina
- fix &quot;incompatible redefinition&quot; warnings (#7894) @cwharris
- cudf consistently specifies the cuda runtime (#7887) @robertmaynard
- disable verbose output for jitify_preprocess (#7886) @cwharris
- CMake jit_preprocess_files function only runs when needed (#7872) @robertmaynard
- Push DeviceScalar construction into cython for list.contains (#7864) @brandon-b-miller
- cudf now sets an install rpath of $ORIGIN (#7863) @robertmaynard
- Don&#39;t install Thrust examples, tests, docs, and python files (#7811) @robertmaynard
- Sort by index in groupby tests more consistently (#7802) @shwina
- Revert &quot;Update conda recipes pinning of repo dependencies (#7743)&quot; (#7793) @raydouglass
- Add decimal column handling in copy_type_metadata (#7788) @shwina
- Add column names validation in parquet writer (#7786) @galipremsagar
- Fix Java explode outer unit tests (#7782) @jlowe
- Fix compiler warning about non-POD types passed through ellipsis (#7781) @jrhemstad
- User resource fix for replace_nulls (#7769) @magnatelee
- Fix type dispatch for columnar replace_nulls (#7768) @jlowe
- Add `ignore_order` parameter to dask-cudf concat dispatch (#7765) @galipremsagar
- Fix slicing and arrow representations of decimal columns (#7755) @vyasr
- Fixing issue with explode_outer position not nulling position entries of null rows (#7754) @hyperbolic2346
- Implement scatter for struct columns (#7752) @ttnghia
- Fix data corruption in string columns (#7746) @galipremsagar
- Fix string length in stripe dictionary building (#7744) @kaatish
- Update conda recipes pinning of repo dependencies (#7743) @mike-wendt
- Enable dask dispatch to cuDF&#39;s `is_categorical_dtype` for cuDF objects (#7740) @brandon-b-miller
- Fix dictionary size computation in ORC writer (#7737) @vuule
- Fix `cudf::cast` overflow for `decimal64` to `int32_t` or smaller in certain cases (#7733) @codereport
- Change JNI API to avoid loading native dependencies when creating sort order classes. (#7729) @revans2
- Disable column_view data accessors for unsupported types (#7725) @jrhemstad
- Materialize `RangeIndex` when `index=True` in parquet writer (#7711) @galipremsagar
- Don&#39;t identify decimals as strings. (#7710) @vyasr
- Fix return type of `DataFrame.argsort` (#7706) @galipremsagar
- Fix/correct cudf installed package requirements (#7688) @robertmaynard
- Fix SparkMurmurHash3_32 hash inconsistencies with Apache Spark (#7672) @jlowe
- Fix ORC reader issue with reading empty string columns (#7656) @rgsl888prabhu
- Fix Java Parquet write after writer API changes (#7655) @revans2
- Fixing empty null lists throwing explode_outer for a loop. (#7649) @hyperbolic2346
- Fix internal compiler error during JNI Docker build (#7645) @jlowe
- Fix Debug build break with device_uvectors in grouped_rolling.cu (#7633) @mythrocks
- Parquet reader:  Fix issue when using skip_rows on non-nested columns containing nulls (#7627) @nvdbaranec
- Fix ORC reader for empty DataFrame/Table (#7624) @rgsl888prabhu
- Fix specifying GPU architecture in JNI build (#7612) @jlowe
- Fix ORC writer OOM issue (#7605) @vuule
- Fix 0.18 --&gt; 0.19 automerge (#7589) @kkraus14
- Fix ORC issue with incorrect timestamp nanosecond values (#7581) @vuule
- Fix missing Dask imports (#7580) @kkraus14
- CMAKE_CUDA_ARCHITECTURES doesn&#39;t change when build-system invokes cmake (#7579) @robertmaynard
- Another fix for offsets_end() iterator in lists_column_view (#7575) @ttnghia
- Fix ORC writer output corruption with string columns (#7565) @vuule
- Fix cudf::lists::sort_lists failing for sliced column (#7564) @ttnghia
- FIX Fix Anaconda upload args (#7558) @dillon-cullinan
- Fix index mismatch issue in equality related APIs (#7555) @galipremsagar
- FIX Revert gpuci_conda_retry on conda file output locations (#7552) @dillon-cullinan
- Fix offset_end iterator for lists_column_view, which was not correctl… (#7551) @ttnghia
- Fix no such file dlpack.h error when build libcudf (#7549) @chenrui17
- Update missing docstring examples in python public APIs (#7546) @galipremsagar
- Decimal32 Build Fix (#7544) @razajafri
- FIX Retry conda output location (#7540) @dillon-cullinan
- fix missing renames of dask git branches from master to main (#7535) @kkraus14
- Remove detail from device_span (#7533) @rwlee
- Change dask and distributed branch to main (#7532) @dantegd
- Update JNI build to use CUDF_USE_ARROW_STATIC (#7526) @jlowe
- Make sure rmm::rmm CMake target is visibile to cudf users (#7524) @robertmaynard
- Fix contiguous_split not properly handling output partitions &gt; 2 GB. (#7515) @nvdbaranec
- Change jit launch to safe_launch (#7510) @devavret
- Fix comparison between Datetime/Timedelta columns and NULL scalars (#7504) @brandon-b-miller
- Fix off-by-one error in char-parallel string scalar replace (#7502) @jlowe
- Fix JNI deprecation of all, put it on the wrong version before (#7501) @revans2
- Fix Series/Dataframe Mixed Arithmetic (#7491) @brandon-b-miller
- Fix JNI build after removal of libcudf sub-libraries (#7486) @jlowe
- Correctly compile benchmarks (#7485) @robertmaynard
- Fix bool column corruption with ORC Reader (#7483) @rgsl888prabhu
- Fix `__repr__` for categorical dtype (#7476) @galipremsagar
- Java cleaner synchronization (#7474) @abellina
- Fix java float/double parsing tests (#7473) @revans2
- Pass stream and user resource to make_default_constructed_scalar (#7469) @magnatelee
- Improve stability of dask_cudf.DataFrame.var and dask_cudf.DataFrame.std (#7453) @rjzamora
- Missing `device_storage_dispatch` change affecting `cudf::gather` (#7449) @codereport
- fix cuFile JNI compile errors (#7445) @rongou
- Support `Series.__setitem__` with key to a new row (#7443) @isVoid
- Fix BUG: Exception when PYTHONOPTIMIZE=2 (#7434) @skirui-source
- Make inclusive scan safe for cases with leading nulls (#7432) @magnatelee
- Fix typo in list_device_view::pair_rep_end() (#7423) @mythrocks
- Fix string to double conversion and row equivalent comparison (#7410) @ttnghia
- Fix thrust failure when transfering data from device_vector to host_vector with vectors of size 1 (#7382) @ttnghia
- Fix std::exeception catch-by-reference gcc9 compile error (#7380) @davidwendt
- Fix skiprows issue with ORC Reader (#7359) @rgsl888prabhu
- fix Arrow CMake file (#7358) @rongou
- Fix lists::contains() for NaN and Decimals (#7349) @mythrocks
- Handle cupy array in `Dataframe.__setitem__` (#7340) @galipremsagar
- Fix invalid-device-fn error in cudf::strings::replace_re with multiple regex&#39;s (#7336) @davidwendt
- FIX Add codecov upload block to gpu script (#6860) @dillon-cullinan

## 📖 Documentation

- Fix join API doxygen (#7890) @shwina
- Add Resources to README. (#7697) @bdice
- Add `isin` examples in Docstring (#7479) @galipremsagar
- Resolving unlinked type shorthands in cudf doc (#7416) @isVoid
- Fix typo in regex.md doc page (#7363) @davidwendt
- Fix incorrect strings_column_view::chars_size documentation (#7360) @jlowe

## 🚀 New Features

- Enable basic reductions for decimal columns (#7776) @ChrisJar
- Enable join on decimal columns (#7764) @ChrisJar
- Allow merging index column with data column using keyword &quot;on&quot; (#7736) @skirui-source
- Implement DecimalColumn + Scalar and add cudf.Scalars of Decimal64Dtype (#7732) @brandon-b-miller
- Add support for `unique` groupby aggregation (#7726) @shwina
- Expose libcudf&#39;s label_bins function to cudf (#7724) @vyasr
- Adding support for equi-join on struct (#7720) @hyperbolic2346
- Add decimal column comparison operations (#7716) @isVoid
- Implement scan operations for decimal columns (#7707) @ChrisJar
- Enable typecasting between decimal and int (#7691) @ChrisJar
- Enable decimal support in parquet writer (#7673) @devavret
- Adds `list.unique` API (#7664) @isVoid
- Fix NaN handling in drop_list_duplicates (#7662) @ttnghia
- Add `lists.sort_values` API (#7657) @isVoid
- Add is_integer API that can check for the validity of a string-to-integer conversion (#7642) @ttnghia
- Adds `explode` API (#7607) @isVoid
- Adds `list.take`, python binding for `cudf::lists::segmented_gather` (#7591) @isVoid
- Implement cudf::label_bins() (#7554) @vyasr
- Add Python bindings for `lists::contains` (#7547) @skirui-source
- cudf::row_bit_count() support. (#7534) @nvdbaranec
- Implement drop_list_duplicates (#7528) @ttnghia
- Add Python bindings for `lists::extract_lists_element` (#7505) @skirui-source
- Add explode_outer and explode_outer_position (#7499) @hyperbolic2346
- Match Pandas logic for comparing two objects with nulls (#7490) @brandon-b-miller
- Add struct support to parquet writer (#7461) @devavret
- Enable type conversion from float to decimal type (#7450) @ChrisJar
- Add cython for converting strings/fixed-point functions (#7429) @davidwendt
- Add struct column support to cudf::sort and cudf::sorted_order (#7422) @karthikeyann
- Implement groupby collect_set (#7420) @ttnghia
- Merge branch-0.18 into branch-0.19 (#7411) @raydouglass
- Refactor strings column factories (#7397) @harrism
- Add groupby scan operations (sort groupby) (#7387) @karthikeyann
- Add cudf::explode_position (#7376) @hyperbolic2346
- Add string conversion to/from decimal values libcudf APIs (#7364) @davidwendt
- Add  groupby SUM_OF_SQUARES support (#7362) @karthikeyann
- Add `Series.drop` api (#7304) @isVoid
- get_json_object() implementation (#7286) @nvdbaranec
- Python API for `LIstMethods.len()` (#7283) @isVoid
- Support null_policy::EXCLUDE for COLLECT rolling aggregation (#7264) @mythrocks
- Add support for special tokens in nvtext::subword_tokenizer (#7254) @davidwendt
- Fix inplace update of data and add Series.update (#7201) @galipremsagar
- Implement `cudf::group_by` (hash) for `decimal32` and `decimal64` (#7190) @codereport
- Adding support to specify &quot;level&quot; parameter  for `Dataframe.rename` (#7135) @skirui-source

## 🛠️ Improvements

- fix GDS include path for version 0.95 (#7877) @rongou
- Update `dask` + `distributed` to `2021.4.0` (#7858) @jakirkham
- Add ability to extract include dirs from `CUDF_HOME` (#7848) @galipremsagar
- Add USE_GDS as an option in build script (#7833) @pxLi
- add an allocate method with stream in java DeviceMemoryBuffer (#7826) @rongou
- Constrain dask and distributed versions to 2021.3.1 (#7825) @shwina
- Revert dask versioning of concat dispatch (#7823) @galipremsagar
- add copy methods in Java memory buffer (#7791) @rongou
- Update README and CONTRIBUTING for 0.19 (#7778) @robertmaynard
- Allow hash_partition to take a seed value (#7771) @magnatelee
- Turn on NVTX by default in java build (#7761) @tgravescs
- Add Java bindings to join gather map APIs (#7751) @jlowe
- Add replacements column support for Java replaceNulls (#7750) @jlowe
- Add Java bindings for row_bit_count (#7749) @jlowe
- Remove unused JVM array creation (#7748) @jlowe
- Added JNI support for new is_integer (#7739) @revans2
- Create and promote library aliases in libcudf installations (#7734) @trxcllnt
- Support groupby operations for decimal dtypes (#7731) @vyasr
- Memory map the input file only when GDS compatiblity mode is not used (#7717) @vuule
- Replace device_vector with device_uvector in null_mask (#7715) @harrism
- Struct hashing support for SerialMurmur3 and SparkMurmur3 (#7714) @jlowe
- Add gbenchmark for nvtext replace-tokens function (#7708) @davidwendt
- Use stream in groupby calls (#7705) @karthikeyann
- Update codeowners file (#7701) @ajschmidt8
- Cleanup groupby to use host_span, device_span, device_uvector (#7698) @karthikeyann
- Add gbenchmark for nvtext ngrams functions (#7693) @davidwendt
- Misc Python/Cython optimizations (#7686) @shwina
- Add gbenchmark for nvtext tokenize functions (#7684) @davidwendt
- Add column_device_view to orc writer (#7676) @kaatish
- cudf_kafka now uses cuDF CMake export targets (CPM) (#7674) @robertmaynard
- Add gbenchmark for nvtext normalize functions (#7668) @davidwendt
- Resolve unnecessary import of thrust/optional.hpp in types.hpp (#7667) @vyasr
- Feature/optimize accessor copy (#7660) @vyasr
- Fix `find_package(cudf)` (#7658) @trxcllnt
- Work-around for gcc7 compile error on Centos7 (#7652) @davidwendt
- Add in JNI support for count_elements (#7651) @revans2
- Fix issues with building cudf in a non-conda environment (#7647) @galipremsagar
- Refactor ConfigureCUDA to not conditionally insert compiler flags (#7643) @robertmaynard
- Add gbenchmark for converting strings to/from timestamps (#7641) @davidwendt
- Handle constructing a `cudf.Scalar` from a `cudf.Scalar` (#7639) @shwina
- Add in JNI support for table partition (#7637) @revans2
- Add explicit fixed_point merge test (#7635) @codereport
- Add JNI support for IDENTITY hash partitioning (#7626) @revans2
- Java support on explode_outer (#7625) @sperlingxx
- Java support of casting string from/to decimal (#7623) @sperlingxx
- Convert cudf::concatenate APIs to use spans and device_uvector (#7621) @harrism
- Add gbenchmark for cudf::strings::translate function (#7617) @davidwendt
- Use file(COPY ) over file(INSTALL ) so cmake output is reduced (#7616) @robertmaynard
- Use rmm::device_uvector in place of rmm::device_vector for ORC reader/writer and cudf::io::column_buffer (#7614) @vuule
- Refactor Java host-side buffer concatenation to expose separate steps (#7610) @jlowe
- Add gbenchmarks for string substrings functions (#7603) @davidwendt
- Refactor string conversion check (#7599) @ttnghia
- JNI: Pass names of children struct columns to native Arrow IPC writer (#7598) @firestarman
- Revert &quot;ENH Fix stale GHA and prevent duplicates &quot; (#7595) @mike-wendt
- ENH Fix stale GHA and prevent duplicates (#7594) @mike-wendt
- Fix auto-detecting GPU architectures (#7593) @trxcllnt
- Reduce cudf library size (#7583) @robertmaynard
- Optimize cudf::make_strings_column for long strings (#7576) @davidwendt
- Always build and export the cudf::cudftestutil target (#7574) @trxcllnt
- Eliminate literal parameters to uvector::set_element_async and device_scalar::set_value (#7563) @harrism
- Add gbenchmark for strings::concatenate (#7560) @davidwendt
- Update Changelog Link (#7550) @ajschmidt8
- Add gbenchmarks for strings replace regex functions (#7541) @davidwendt
- Add `__repr__` for Column and ColumnAccessor (#7531) @shwina
- Support Decimal DIV changes in cudf (#7527) @razajafri
- Remove unneeded step parameter from strings::detail::copy_slice (#7525) @davidwendt
- Use device_uvector, device_span in sort groupby (#7523) @karthikeyann
- Add gbenchmarks for strings extract function (#7522) @davidwendt
- Rename ARROW_STATIC_LIB because it conflicts with one in FindArrow.cmake (#7518) @trxcllnt
- Reduce compile time/size for scan.cu (#7516) @davidwendt
- Change device_vector to device_uvector in nvtext source files (#7512) @davidwendt
- Removed unneeded includes from traits.hpp (#7509) @davidwendt
- FIX Remove random build directory generation for ccache (#7508) @dillon-cullinan
- xfail failing pytest in pandas 1.2.3 (#7507) @galipremsagar
- JNI bit cast (#7493) @revans2
- Combine rolling window function tests (#7480) @mythrocks
- Prepare Changelog for Automation (#7477) @ajschmidt8
- Java support for explode position (#7471) @sperlingxx
- Update 0.18 changelog entry (#7463) @ajschmidt8
- JNI: Support skipping nulls for collect aggregation (#7457) @firestarman
- Join APIs that return gathermaps (#7454) @shwina
- Remove dependence on managed memory for multimap test (#7451) @jrhemstad
- Use cuFile for Parquet IO when available (#7444) @vuule
- Statistics cleanup (#7439) @kaatish
- Add gbenchmarks for strings filter functions (#7438) @davidwendt
- `fixed_point` + `cudf::binary_operation` API Changes (#7435) @codereport
- Improve string gather performance (#7433) @jlowe
- Don&#39;t use user resource for a temporary allocation in sort_by_key (#7431) @magnatelee
- Detail APIs for datetime functions (#7430) @magnatelee
- Replace thrust::max_element with thrust::reduce in strings findall_re (#7428) @davidwendt
- Add gbenchmark for strings split/split_record functions (#7427) @davidwendt
- Update JNI build to use CMAKE_CUDA_ARCHITECTURES (#7425) @jlowe
- Change nvtext::load_vocabulary_file to return a unique ptr (#7424) @davidwendt
- Simplify type dispatch with `device_storage_dispatch` (#7419) @codereport
- Java support for casting of nested child columns (#7417) @razajafri
- Improve scalar string replace performance for long strings (#7415) @jlowe
- Remove unneeded temporary device vector for strings scatter specialization (#7409) @davidwendt
- bitmask_or implementation with bitmask refactor (#7406) @rwlee
- Add other cudf::strings::replace functions to current strings replace gbenchmark (#7403) @davidwendt
- Clean up included headers in `device_operators.cuh` (#7401) @codereport
- Move nullable index iterator to indexalator factory (#7399) @davidwendt
- ENH Pass ccache variables to conda recipe &amp; use Ninja in CI (#7398) @Ethyling
- upgrade maven-antrun-plugin to support maven parallel builds (#7393) @rongou
- Add gbenchmark for strings find/contains functions (#7392) @davidwendt
- Use CMAKE_CUDA_ARCHITECTURES (#7391) @robertmaynard
- Refactor libcudf strings::replace to use make_strings_children utility (#7384) @davidwendt
- Added in JNI support for out of core sort algorithm (#7381) @revans2
- Upgrade pandas to 1.2 (#7375) @galipremsagar
- Rename `logical_cast` to `bit_cast` and allow additional conversions (#7373) @ttnghia
- jitify 2 support (#7372) @cwharris
- compile_udf: Cache PTX for similar functions (#7371) @gmarkall
- Add string scalar replace benchmark (#7369) @jlowe
- Add gbenchmark for strings contains_re/count_re functions (#7366) @davidwendt
- Update orc reader and writer fuzz tests (#7357) @galipremsagar
- Improve url_decode performance for long strings (#7353) @jlowe
- `cudf::ast` Small Refactorings (#7352) @codereport
- Remove std::cout and print in the scatter test function EmptyListsOfNullableStrings. (#7342) @ttnghia
- Use `cudf::detail::make_counting_transform_iterator` (#7338) @codereport
- Change block size parameter from a global to a template param. (#7333) @nvdbaranec
- Partial clean up of ORC writer (#7324) @vuule
- Add gbenchmark for cudf::strings::to_lower (#7316) @davidwendt
- Update Java bindings version to 0.19-SNAPSHOT (#7307) @pxLi
- Move `cudf::test::make_counting_transform_iterator` to `cudf/detail/iterator.cuh` (#7306) @codereport
- Use string literals in `fixed_point` `release_assert`s (#7303) @codereport
- Fix merge conflicts for #7295 (#7297) @ajschmidt8
- Add UTF-8 chars to create_random_column&lt;string_view&gt; benchmark utility (#7292) @davidwendt
- Abstracting block reduce and block scan from cuIO kernels with `cub` apis (#7278) @rgsl888prabhu
- Build.sh use cmake --build to drive build system invocation (#7270) @robertmaynard
- Refactor dictionary support for reductions any/all (#7242) @davidwendt
- Replace stream.value() with stream for stream_view args (#7236) @karthikeyann
- Interval index and interval_range (#7182) @marlenezw
- avro reader integration tests (#7156) @cwharris
- Rework libcudf CMakeLists.txt to export targets for CPM (#7107) @trxcllnt
- Adding Interval Dtype (#6984) @marlenezw
- Cleaning up `for` loops with `make_(counting_)transform_iterator` (#6546) @codereport
v0.18.1: tag_name: v0.18.1
v0.18.0: tag_name: v0.18.0
body: ## Breaking Changes 🚨

- Default `groupby` to `sort=False` (#7180) @isVoid
- Add libcudf API for parsing of ORC statistics (#7136) @vuule
- Replace ORC writer api with class (#7099) @rgsl888prabhu
- Pack/unpack functionality to convert tables to and from a serialized format. (#7096) @nvdbaranec
- Replace parquet writer api with class (#7058) @rgsl888prabhu
- Add days check to cudf::is_timestamp using cuda::std::chrono classes (#7028) @davidwendt
- Fix default parameter values of `write_csv` and `write_parquet` (#6967) @vuule
- Align `Series.groupby` API to match Pandas (#6964) @kkraus14
- Share `factorize` implementation with Index and cudf module (#6885) @brandon-b-miller

## Bug Fixes 🐛

- Remove incorrect std::move call on return variable (#7319) @davidwendt
- Fix failing CI ORC test (#7313) @vuule
- Disallow constructing frames from a ColumnAccessor (#7298) @shwina
- fix java cuFile tests (#7296) @rongou
- Fix style issues related to NumPy (#7279) @shwina
- Fix bug when `iloc` slice terminates at before-the-zero position (#7277) @isVoid
- Fix copying dtype metadata after calling libcudf functions (#7271) @shwina
- Move lists utility function definition out of header (#7266) @mythrocks
- Throw if bool column would cause incorrect result when writing to ORC (#7261) @vuule
- Use `uvector` in `replace_nulls`; Fix `sort_helper::grouped_value` doc (#7256) @isVoid
- Remove floating point types from cudf::sort fast-path (#7250) @davidwendt
- Disallow picking output columns from nested columns. (#7248) @devavret
- Fix `loc` for Series with a MultiIndex (#7243) @shwina
- Fix Arrow column test leaks (#7241) @tgravescs
- Fix test column vector leak (#7238) @kuhushukla
- Fix some bugs in java scalar support for decimal (#7237) @revans2
- Improve `assert_eq` handling of scalar (#7220) @isVoid
- Fix missing null_count() comparison in test framework and related failures (#7219) @nvdbaranec
- Remove floating point types from radix sort fast-path (#7215) @davidwendt
- Fixing parquet benchmarks (#7214) @rgsl888prabhu
- Handle various parameter combinations in `replace` API (#7207) @galipremsagar
- Export mock aws credentials for s3 tests (#7176) @ayushdg
- Add `MultiIndex.rename` API (#7172) @isVoid
- Fix importing list &amp; struct types in `from_arrow` (#7162) @galipremsagar
- Fixing parquet precision writing failing if scale is equal to precision (#7146) @hyperbolic2346
- Update s3 tests to use moto_server (#7144) @ayushdg
- Fix JIT cache multi-process test flakiness in slow drives (#7142) @devavret
- Fix compilation errors in libcudf (#7138) @galipremsagar
- Fix compilation failure caused by `-Wall` addition. (#7134) @codereport
- Add informative error message for `sep` in CSV writer (#7095) @galipremsagar
- Add JIT cache per compute capability (#7090) @devavret
- Implement `__hash__` method for ListDtype (#7081) @galipremsagar
- Only upload packages that were built (#7077) @raydouglass
- Fix comparisons between Series and cudf.NA (#7072) @brandon-b-miller
- Handle `nan` values correctly in `Series.one_hot_encoding` (#7059) @galipremsagar
- Add `unstack()` support for non-multiindexed dataframes (#7054) @isVoid
- Fix `read_orc` for decimal type (#7034) @rgsl888prabhu
- Fix backward compatibility of loading a 0.16 pkl file (#7033) @galipremsagar
- Decimal casts in JNI became a NOOP (#7032) @revans2
- Restore usual instance/subclass checking to cudf.DateOffset (#7029) @shwina
- Add days check to cudf::is_timestamp using cuda::std::chrono classes (#7028) @davidwendt
- Fix to_csv delimiter handling of timestamp format (#7023) @davidwendt
- Pin librdkakfa to gcc 7 compatible version (#7021) @raydouglass
- Fix `fillna` &amp; `dropna` to also consider `np.nan` as a missing value (#7019) @galipremsagar
- Fix round operator&#39;s HALF_EVEN computation for negative integers (#7014) @nartal1
- Skip Thrust sort patch if already applied (#7009) @harrism
- Fix `cudf::hash_partition` for `decimal32` and `decimal64` (#7006) @codereport
- Fix Thrust unroll patch command (#7002) @harrism
- Fix loc behaviour when key of incorrect type is used (#6993) @shwina
- Fix int to datetime conversion in csv_read (#6991) @kaatish
- fix excluding cufile tests by default (#6988) @rongou
- Fix java cufile tests when cufile is not installed (#6987) @revans2
- Make `cudf::round` for `fixed_point` when `scale = -decimal_places` a no-op (#6975) @codereport
- Fix type comparison for java (#6970) @revans2
- Fix default parameter values of `write_csv` and `write_parquet` (#6967) @vuule
- Align `Series.groupby` API to match Pandas (#6964) @kkraus14
- Fix timestamp parsing in ORC reader for timezones without transitions (#6959) @vuule
- Fix typo in numerical.py (#6957) @rgsl888prabhu
- `fixed_point_value` double-shifts in `fixed_point` construction (#6950) @codereport
- fix libcu++ include path for jni (#6948) @rongou
- Fix groupby agg/apply behaviour when no key columns are provided (#6945) @shwina
- Avoid inserting null elements into join hash table when nulls are treated as unequal (#6943) @hyperbolic2346
- Fix cudf::merge gtest for dictionary columns (#6942) @davidwendt
- Pass numeric scalars of the same dtype through numeric binops (#6938) @brandon-b-miller
- Fix N/A detection for empty fields in CSV reader (#6922) @vuule
- Fix rmm_mode=managed parameter for gtests (#6912) @davidwendt
- Fix nullmask offset handling in parquet and orc writer (#6889) @kaatish
- Correct the sampling range when sampling with replacement (#6884) @ChrisJar
- Handle nested string columns with no children in contiguous_split. (#6864) @nvdbaranec
- Fix `columns` &amp; `index` handling in dataframe constructor (#6838) @galipremsagar

## Documentation 📖

- Update readme (#7318) @shwina
- Fix typo in cudf.core.column.string.extract docs (#7253) @adelevie
- Update doxyfile project number (#7161) @davidwendt
- Update 10 minutes to cuDF and CuPy with new APIs (#7158) @ChrisJar
- Cross link RMM &amp; libcudf Doxygen docs (#7149) @ajschmidt8
- Add documentation for support dtypes in all IO formats (#7139) @galipremsagar
- Add groupby docs (#7100) @shwina
- Update cudf python docstrings with new null representation (`&lt;NA&gt;`) (#7050) @galipremsagar
- Make Doxygen comments formatting consistent (#7041) @vuule
- Add docs for working with missing data (#7010) @galipremsagar
- Remove warning in from_dlpack and to_dlpack methods (#7001) @miguelusque
- libcudf Developer Guide (#6977) @harrism
- Add JNI wrapper for the cuFile API (GDS) (#6940) @rongou

## New Features 🚀

- Support `numeric_only` field for `rank()` (#7213) @isVoid
- Add support for `cudf::binary_operation` `TRUE_DIV` for `decimal32` and `decimal64` (#7198) @codereport
- Implement COLLECT rolling window aggregation (#7189) @mythrocks
- Add support for array-like inputs in `cudf.get_dummies` (#7181) @galipremsagar
- Default `groupby` to `sort=False` (#7180) @isVoid
- Add libcudf lists column count_elements API (#7173) @davidwendt
- Implement `cudf::group_by` (sort) for `decimal32` and `decimal64` (#7169) @codereport
- Add encoding and compression argument to CSV writer (#7168) @VibhuJawa
- `cudf::rolling_window` `SUM` support for `decimal32` and `decimal64` (#7147) @codereport
- Adding support for explode to cuDF (#7140) @hyperbolic2346
- Add libcudf API for parsing of ORC statistics (#7136) @vuule
- update GDS/cuFile location for 0.9 release (#7131) @rongou
- Add Segmented sort (#7122) @karthikeyann
- Add `cudf::binary_operation` `NULL_MIN`, `NULL_MAX` &amp; `NULL_EQUALS` for `decimal32` and `decimal64` (#7119) @codereport
- Add `scale` and `value` methods to `fixed_point` (#7109) @codereport
- Replace ORC writer api with class (#7099) @rgsl888prabhu
- Pack/unpack functionality to convert tables to and from a serialized format. (#7096) @nvdbaranec
- Improve `digitize` API (#7071) @isVoid
- Add List types support in data generator (#7064) @galipremsagar
- `cudf::scan` support for `decimal32` and `decimal64` (#7063) @codereport
- `cudf::rolling` `ROW_NUMBER` support for `decimal32` and `decimal64` (#7061) @codereport
- Replace parquet writer api with class (#7058) @rgsl888prabhu
- Support contains() on lists of primitives (#7039) @mythrocks
- Implement `cudf::rolling` for `decimal32` and `decimal64` (#7037) @codereport
- Add `ffill` and `bfill` to string columns (#7036) @isVoid
- Enable round in cudf for DataFrame and Series (#7022) @ChrisJar
- Extend `replace_nulls_policy` to `string` and `dictionary` type (#7004) @isVoid
- Add segmented_gather(list_column, gather_list) (#7003) @karthikeyann
- Add `method` field to `fillna` for fixed width columns (#6998) @isVoid
- Manual merge of branch 0.17 into branch 0.18 (#6995) @shwina
- Implement `cudf::reduce` for `decimal32` and `decimal64` (part 2) (#6980) @codereport
- Add Ufunc alias look up for appropriate numpy ufunc dispatching (#6973) @VibhuJawa
- Add pytest-xdist to dev environment.yml (#6958) @galipremsagar
- Add `Index.set_names` api (#6929) @galipremsagar
- Add `replace_null` API with `replace_policy` parameter, `fixed_width` column support (#6907) @isVoid
- Share `factorize` implementation with Index and cudf module (#6885) @brandon-b-miller
- Implement update() function (#6883) @skirui-source
- Add groupby idxmin, idxmax aggregation (#6856) @karthikeyann
- Implement `cudf::reduce` for `decimal32` and `decimal64` (part 1) (#6814) @codereport
- Implement cudf.DateOffset for months (#6775) @brandon-b-miller
- Add Python DecimalColumn (#6715) @shwina
- Add dictionary support to libcudf groupby functions (#6585) @davidwendt

## Improvements 🛠️

- Update stale GHA with exemptions &amp; new labels (#7395) @mike-wendt
- Add GHA to mark issues/prs as stale/rotten (#7388) @Ethyling
- Unpin from numpy &lt; 1.20 (#7335) @shwina
- Prepare Changelog for Automation (#7309) @galipremsagar
- Prepare Changelog for Automation (#7272) @ajschmidt8
- Add JNI support for converting Arrow buffers to CUDF ColumnVectors (#7222) @tgravescs
- Add coverage for `skiprows` and `num_rows` in parquet reader fuzz testing (#7216) @galipremsagar
- Define and implement more behavior for merging on categorical variables (#7209) @brandon-b-miller
- Add CudfSeriesGroupBy to optimize dask_cudf groupby-mean (#7194) @rjzamora
- Add dictionary column support to rolling_window (#7186) @davidwendt
- Modify the semantics of `end` pointers in cuIO to match standard library (#7179) @vuule
- Adding unit tests for `fixed_point` with extremely large `scale`s (#7178) @codereport
- Fast path single column sort (#7167) @davidwendt
- Fix -Werror=sign-compare errors in device code (#7164) @trxcllnt
- Refactor cudf::string_view host and device code (#7159) @davidwendt
- Enable logic for GPU auto-detection in cudfjni (#7155) @gerashegalov
- Java bindings for Fixed-point type support for Parquet (#7153) @razajafri
- Add Java interface for the new API &#39;explode&#39; (#7151) @firestarman
- Replace offsets with iterators in cuIO utilities and CSV parser (#7150) @vuule
- Add gbenchmarks for reduction aggregations any() and all() (#7129) @davidwendt
- Update JNI for contiguous_split packed results (#7127) @jlowe
- Add JNI and Java bindings for list_contains (#7125) @kuhushukla
- Add Java unit tests for window aggregate &#39;collect&#39; (#7121) @firestarman
- verify window operations on decimal with java tests (#7120) @sperlingxx
- Adds in JNI support for creating an list column from existing columns (#7112) @revans2
- Build libcudf with -Wall (#7105) @trxcllnt
- Add column_device_view pointers to EncColumnDesc (#7097) @kaatish
- Add `pyorc` to dev environment (#7085) @galipremsagar
- JNI support for creating struct column from existing columns and fixed bug in struct with no children (#7084) @revans2
- Fastpath single strings column in cudf::sort (#7075) @davidwendt
- Upgrade nvcomp to 1.2.1 (#7069) @rongou
- Refactor ORC `ProtobufReader` to make it more extendable (#7055) @vuule
- Add Java tests for decimal casts (#7051) @sperlingxx
- Auto-label PRs based on their content (#7044) @jolorunyomi
- Create sort gbenchmark for strings column (#7040) @davidwendt
- Refactor io memory fetches to use hostdevice_vector methods (#7035) @ChrisJar
- Spark Murmur3 hash functionality (#7024) @rwlee
- Fix libcudf strings logic where size_type is used to access INT32 column data (#7020) @davidwendt
- Adding decimal writing support to parquet (#7017) @hyperbolic2346
- Add compression=&quot;infer&quot; as default for dask_cudf.read_csv (#7013) @rjzamora
- Correct ORC docstring; other minor cuIO improvements (#7012) @vuule
- Reduce number of hostdevice_vector allocations in parquet reader (#7005) @devavret
- Check output size overflow on strings gather (#6997) @davidwendt
- Improve representation of `MultiIndex` (#6992) @galipremsagar
- Disable some pragma unroll statements in thrust sort.h (#6982) @davidwendt
- Minor `cudf::round` internal refactoring (#6976) @codereport
- Add Java bindings for URL conversion (#6972) @jlowe
- Enable strict_decimal_types in parquet reading (#6969) @sperlingxx
- Add in basic support to JNI for logical_cast (#6954) @revans2
- Remove duplicate file array_tests.cpp (#6953) @karthikeyann
- Add null mask `fixed_point_column_wrapper` constructors (#6951) @codereport
- Update Java bindings version to 0.18-SNAPSHOT (#6949) @jlowe
- Use simplified `rmm::exec_policy` (#6939) @harrism
- Add null count test for apply_boolean_mask (#6903) @harrism
- Implement DataFrame.quantile for datetime and timedelta data types (#6902) @ChrisJar
- Remove **kwargs from string/categorical methods (#6750) @shwina
- Refactor rolling.cu to reduce compile time (#6512) @mythrocks
- Add static type checking via Mypy (#6381) @shwina
- Update to official libcu++ on Github (#6275) @trxcllnt
v0.17.0: tag_name: v0.17.0
body: v0.17.0 Release
[NIGHTLY] v0.18.0: tag_name: v0.18.0a
body: ## 🔗 Links

- [Development Branch](https://github.com/rapidsai/cudf/tree/branch-0.18)
- [Compare with `main` branch](https://github.com/rapidsai/cudf/compare/main...branch-0.18)

## 🚨 Breaking Changes

- Default `groupby` to `sort=False` (#7180) @isVoid
- Add libcudf API for parsing of ORC statistics (#7136) @vuule
- Replace ORC writer api with class (#7099) @rgsl888prabhu
- Pack/unpack functionality to convert tables to and from a serialized format. (#7096) @nvdbaranec
- Replace parquet writer api with class (#7058) @rgsl888prabhu
- Add days check to cudf::is_timestamp using cuda::std::chrono classes (#7028) @davidwendt
- Fix default parameter values of `write_csv` and `write_parquet` (#6967) @vuule
- Align `Series.groupby` API to match Pandas (#6964) @kkraus14
- Share `factorize` implementation with Index and cudf module (#6885) @brandon-b-miller

## 🐛 Bug Fixes

- Fix null-bounds calculation for ranged window queries (#7568) @mythrocks
- Remove incorrect std::move call on return variable (#7319) @davidwendt
- Fix failing CI ORC test (#7313) @vuule
- Disallow constructing frames from a ColumnAccessor (#7298) @shwina
- fix java cuFile tests (#7296) @rongou
- Fix style issues related to NumPy (#7279) @shwina
- Fix bug when `iloc` slice terminates at before-the-zero position (#7277) @isVoid
- Fix copying dtype metadata after calling libcudf functions (#7271) @shwina
- Move lists utility function definition out of header (#7266) @mythrocks
- Throw if bool column would cause incorrect result when writing to ORC (#7261) @vuule
- Use `uvector` in `replace_nulls`; Fix `sort_helper::grouped_value` doc (#7256) @isVoid
- Remove floating point types from cudf::sort fast-path (#7250) @davidwendt
- Disallow picking output columns from nested columns. (#7248) @devavret
- Fix `loc` for Series with a MultiIndex (#7243) @shwina
- Fix Arrow column test leaks (#7241) @tgravescs
- Fix test column vector leak (#7238) @kuhushukla
- Fix some bugs in java scalar support for decimal (#7237) @revans2
- Improve `assert_eq` handling of scalar (#7220) @isVoid
- Fix missing null_count() comparison in test framework and related failures (#7219) @nvdbaranec
- Remove floating point types from radix sort fast-path (#7215) @davidwendt
- Fixing parquet benchmarks (#7214) @rgsl888prabhu
- Handle various parameter combinations in `replace` API (#7207) @galipremsagar
- Export mock aws credentials for s3 tests (#7176) @ayushdg
- Add `MultiIndex.rename` API (#7172) @isVoid
- Fix importing list &amp; struct types in `from_arrow` (#7162) @galipremsagar
- Fixing parquet precision writing failing if scale is equal to precision (#7146) @hyperbolic2346
- Update s3 tests to use moto_server (#7144) @ayushdg
- Fix JIT cache multi-process test flakiness in slow drives (#7142) @devavret
- Fix compilation errors in libcudf (#7138) @galipremsagar
- Fix compilation failure caused by `-Wall` addition. (#7134) @codereport
- Add informative error message for `sep` in CSV writer (#7095) @galipremsagar
- Add JIT cache per compute capability (#7090) @devavret
- Implement `__hash__` method for ListDtype (#7081) @galipremsagar
- Only upload packages that were built (#7077) @raydouglass
- Fix comparisons between Series and cudf.NA (#7072) @brandon-b-miller
- Handle `nan` values correctly in `Series.one_hot_encoding` (#7059) @galipremsagar
- Add `unstack()` support for non-multiindexed dataframes (#7054) @isVoid
- Fix `read_orc` for decimal type (#7034) @rgsl888prabhu
- Fix backward compatibility of loading a 0.16 pkl file (#7033) @galipremsagar
- Decimal casts in JNI became a NOOP (#7032) @revans2
- Restore usual instance/subclass checking to cudf.DateOffset (#7029) @shwina
- Add days check to cudf::is_timestamp using cuda::std::chrono classes (#7028) @davidwendt
- Fix to_csv delimiter handling of timestamp format (#7023) @davidwendt
- Pin librdkakfa to gcc 7 compatible version (#7021) @raydouglass
- Fix `fillna` &amp; `dropna` to also consider `np.nan` as a missing value (#7019) @galipremsagar
- Fix round operator&#39;s HALF_EVEN computation for negative integers (#7014) @nartal1
- Skip Thrust sort patch if already applied (#7009) @harrism
- Fix `cudf::hash_partition` for `decimal32` and `decimal64` (#7006) @codereport
- Fix Thrust unroll patch command (#7002) @harrism
- Fix loc behaviour when key of incorrect type is used (#6993) @shwina
- Fix int to datetime conversion in csv_read (#6991) @kaatish
- fix excluding cufile tests by default (#6988) @rongou
- Fix java cufile tests when cufile is not installed (#6987) @revans2
- Make `cudf::round` for `fixed_point` when `scale = -decimal_places` a no-op (#6975) @codereport
- Fix type comparison for java (#6970) @revans2
- Fix default parameter values of `write_csv` and `write_parquet` (#6967) @vuule
- Align `Series.groupby` API to match Pandas (#6964) @kkraus14
- Fix timestamp parsing in ORC reader for timezones without transitions (#6959) @vuule
- Fix typo in numerical.py (#6957) @rgsl888prabhu
- `fixed_point_value` double-shifts in `fixed_point` construction (#6950) @codereport
- fix libcu++ include path for jni (#6948) @rongou
- Fix groupby agg/apply behaviour when no key columns are provided (#6945) @shwina
- Avoid inserting null elements into join hash table when nulls are treated as unequal (#6943) @hyperbolic2346
- Fix cudf::merge gtest for dictionary columns (#6942) @davidwendt
- Pass numeric scalars of the same dtype through numeric binops (#6938) @brandon-b-miller
- Fix N/A detection for empty fields in CSV reader (#6922) @vuule
- Fix rmm_mode=managed parameter for gtests (#6912) @davidwendt
- Fix nullmask offset handling in parquet and orc writer (#6889) @kaatish
- Correct the sampling range when sampling with replacement (#6884) @ChrisJar
- Handle nested string columns with no children in contiguous_split. (#6864) @nvdbaranec
- Fix `columns` &amp; `index` handling in dataframe constructor (#6838) @galipremsagar

## 📖 Documentation

- Update readme (#7318) @shwina
- Fix typo in cudf.core.column.string.extract docs (#7253) @adelevie
- Update doxyfile project number (#7161) @davidwendt
- Update 10 minutes to cuDF and CuPy with new APIs (#7158) @ChrisJar
- Cross link RMM &amp; libcudf Doxygen docs (#7149) @ajschmidt8
- Add documentation for support dtypes in all IO formats (#7139) @galipremsagar
- Add groupby docs (#7100) @shwina
- Update cudf python docstrings with new null representation (`&lt;NA&gt;`) (#7050) @galipremsagar
- Make Doxygen comments formatting consistent (#7041) @vuule
- Add docs for working with missing data (#7010) @galipremsagar
- Remove warning in from_dlpack and to_dlpack methods (#7001) @miguelusque
- libcudf Developer Guide (#6977) @harrism
- Add JNI wrapper for the cuFile API (GDS) (#6940) @rongou

## 🚀 New Features

- Support `numeric_only` field for `rank()` (#7213) @isVoid
- Add support for `cudf::binary_operation` `TRUE_DIV` for `decimal32` and `decimal64` (#7198) @codereport
- Implement COLLECT rolling window aggregation (#7189) @mythrocks
- Add support for array-like inputs in `cudf.get_dummies` (#7181) @galipremsagar
- Default `groupby` to `sort=False` (#7180) @isVoid
- Add libcudf lists column count_elements API (#7173) @davidwendt
- Implement `cudf::group_by` (sort) for `decimal32` and `decimal64` (#7169) @codereport
- Add encoding and compression argument to CSV writer (#7168) @VibhuJawa
- `cudf::rolling_window` `SUM` support for `decimal32` and `decimal64` (#7147) @codereport
- Adding support for explode to cuDF (#7140) @hyperbolic2346
- Add libcudf API for parsing of ORC statistics (#7136) @vuule
- update GDS/cuFile location for 0.9 release (#7131) @rongou
- Add Segmented sort (#7122) @karthikeyann
- Add `cudf::binary_operation` `NULL_MIN`, `NULL_MAX` &amp; `NULL_EQUALS` for `decimal32` and `decimal64` (#7119) @codereport
- Add `scale` and `value` methods to `fixed_point` (#7109) @codereport
- Replace ORC writer api with class (#7099) @rgsl888prabhu
- Pack/unpack functionality to convert tables to and from a serialized format. (#7096) @nvdbaranec
- Improve `digitize` API (#7071) @isVoid
- Add List types support in data generator (#7064) @galipremsagar
- `cudf::scan` support for `decimal32` and `decimal64` (#7063) @codereport
- `cudf::rolling` `ROW_NUMBER` support for `decimal32` and `decimal64` (#7061) @codereport
- Replace parquet writer api with class (#7058) @rgsl888prabhu
- Support contains() on lists of primitives (#7039) @mythrocks
- Implement `cudf::rolling` for `decimal32` and `decimal64` (#7037) @codereport
- Add `ffill` and `bfill` to string columns (#7036) @isVoid
- Enable round in cudf for DataFrame and Series (#7022) @ChrisJar
- Extend `replace_nulls_policy` to `string` and `dictionary` type (#7004) @isVoid
- Add segmented_gather(list_column, gather_list) (#7003) @karthikeyann
- Add `method` field to `fillna` for fixed width columns (#6998) @isVoid
- Manual merge of branch 0.17 into branch 0.18 (#6995) @shwina
- Implement `cudf::reduce` for `decimal32` and `decimal64` (part 2) (#6980) @codereport
- Add Ufunc alias look up for appropriate numpy ufunc dispatching (#6973) @VibhuJawa
- Add pytest-xdist to dev environment.yml (#6958) @galipremsagar
- Add `Index.set_names` api (#6929) @galipremsagar
- Add `replace_null` API with `replace_policy` parameter, `fixed_width` column support (#6907) @isVoid
- Share `factorize` implementation with Index and cudf module (#6885) @brandon-b-miller
- Implement update() function (#6883) @skirui-source
- Add groupby idxmin, idxmax aggregation (#6856) @karthikeyann
- Implement `cudf::reduce` for `decimal32` and `decimal64` (part 1) (#6814) @codereport
- Implement cudf.DateOffset for months (#6775) @brandon-b-miller
- Add Python DecimalColumn (#6715) @shwina
- Add dictionary support to libcudf groupby functions (#6585) @davidwendt

## 🛠️ Improvements

- Update stale GHA with exemptions &amp; new labels (#7395) @mike-wendt
- Add GHA to mark issues/prs as stale/rotten (#7388) @Ethyling
- Unpin from numpy &lt; 1.20 (#7335) @shwina
- Prepare Changelog for Automation (#7309) @galipremsagar
- Prepare Changelog for Automation (#7272) @ajschmidt8
- Add JNI support for converting Arrow buffers to CUDF ColumnVectors (#7222) @tgravescs
- Add coverage for `skiprows` and `num_rows` in parquet reader fuzz testing (#7216) @galipremsagar
- Define and implement more behavior for merging on categorical variables (#7209) @brandon-b-miller
- Add CudfSeriesGroupBy to optimize dask_cudf groupby-mean (#7194) @rjzamora
- Add dictionary column support to rolling_window (#7186) @davidwendt
- Modify the semantics of `end` pointers in cuIO to match standard library (#7179) @vuule
- Adding unit tests for `fixed_point` with extremely large `scale`s (#7178) @codereport
- Fast path single column sort (#7167) @davidwendt
- Fix -Werror=sign-compare errors in device code (#7164) @trxcllnt
- Refactor cudf::string_view host and device code (#7159) @davidwendt
- Enable logic for GPU auto-detection in cudfjni (#7155) @gerashegalov
- Java bindings for Fixed-point type support for Parquet (#7153) @razajafri
- Add Java interface for the new API &#39;explode&#39; (#7151) @firestarman
- Replace offsets with iterators in cuIO utilities and CSV parser (#7150) @vuule
- Add gbenchmarks for reduction aggregations any() and all() (#7129) @davidwendt
- Update JNI for contiguous_split packed results (#7127) @jlowe
- Add JNI and Java bindings for list_contains (#7125) @kuhushukla
- Add Java unit tests for window aggregate &#39;collect&#39; (#7121) @firestarman
- verify window operations on decimal with java tests (#7120) @sperlingxx
- Adds in JNI support for creating an list column from existing columns (#7112) @revans2
- Build libcudf with -Wall (#7105) @trxcllnt
- Add column_device_view pointers to EncColumnDesc (#7097) @kaatish
- Add `pyorc` to dev environment (#7085) @galipremsagar
- JNI support for creating struct column from existing columns and fixed bug in struct with no children (#7084) @revans2
- Fastpath single strings column in cudf::sort (#7075) @davidwendt
- Upgrade nvcomp to 1.2.1 (#7069) @rongou
- Refactor ORC `ProtobufReader` to make it more extendable (#7055) @vuule
- Add Java tests for decimal casts (#7051) @sperlingxx
- Auto-label PRs based on their content (#7044) @jolorunyomi
- Create sort gbenchmark for strings column (#7040) @davidwendt
- Refactor io memory fetches to use hostdevice_vector methods (#7035) @ChrisJar
- Spark Murmur3 hash functionality (#7024) @rwlee
- Fix libcudf strings logic where size_type is used to access INT32 column data (#7020) @davidwendt
- Adding decimal writing support to parquet (#7017) @hyperbolic2346
- Add compression=&quot;infer&quot; as default for dask_cudf.read_csv (#7013) @rjzamora
- Correct ORC docstring; other minor cuIO improvements (#7012) @vuule
- Reduce number of hostdevice_vector allocations in parquet reader (#7005) @devavret
- Check output size overflow on strings gather (#6997) @davidwendt
- Improve representation of `MultiIndex` (#6992) @galipremsagar
- Disable some pragma unroll statements in thrust sort.h (#6982) @davidwendt
- Minor `cudf::round` internal refactoring (#6976) @codereport
- Add Java bindings for URL conversion (#6972) @jlowe
- Enable strict_decimal_types in parquet reading (#6969) @sperlingxx
- Add in basic support to JNI for logical_cast (#6954) @revans2
- Remove duplicate file array_tests.cpp (#6953) @karthikeyann
- Add null mask `fixed_point_column_wrapper` constructors (#6951) @codereport
- Update Java bindings version to 0.18-SNAPSHOT (#6949) @jlowe
- Use simplified `rmm::exec_policy` (#6939) @harrism
- Add null count test for apply_boolean_mask (#6903) @harrism
- Implement DataFrame.quantile for datetime and timedelta data types (#6902) @ChrisJar
- Remove **kwargs from string/categorical methods (#6750) @shwina
- Refactor rolling.cu to reduce compile time (#6512) @mythrocks
- Add static type checking via Mypy (#6381) @shwina
- Update to official libcu++ on Github (#6275) @trxcllnt
v0.16.0: tag_name: v0.16.0
body: v0.16.0 Release
v0.15.0: tag_name: v0.15.0
body: v0.15.0 Release