lidavidm commented on code in PR #545:
URL: https://github.com/apache/arrow-site/pull/545#discussion_r1811602616
##########
_posts/2024-10-07-nanoarrow-0.6.0-release.md:
##########
@@ -43,30 +43,186 @@ for a detailed list of contributions to this release.
## Breaking Changes
Most changes included in the nanoarrow 0.6.0 release will not break downstream
-code; however, several changes in the C library are breaking changes to
previous
-behaviour.
+code; however, two changes with respect to packaging and distribution may
require
+users to update the code used to bring nanoarrow in as a dependency.
-- Check changelog + revdep ADBC
-- bundling is now in Python and not distributed in dist/
+In nanoarrow 0.5.0 and earlier, the bundled single-file amalgamation was
included in
+the `dist/` subdirectory or could be generated using a specially-crafted CMake
+command. The nanoarrow 0.6.0 release removes the pre-compiled includes and
migrates
+the code used to generate it to Python. This setup is less confusing for
contributors
+(whose editors would frequently jump into the wrong `nanoarrow.h`) and is a
less confusing
+use of CMake. Users can generate the `dist/` subdirectory as it previously
existed
+with:
+
+``` shell
+python ci/scripts/bundle.py \
+ --source-output-dir=dist \
+ --include-output-dir=dist \
+ --header-namespace= \
+ --with-device \
+ --with-ipc \
+ --with-testing \
+ --with-flatcc
+```
+
+Second, the Arrow IPC and ArrowDeviceArray implementations previously lived in
the `extensions/`
+subdirectory of the repository. This was helpful during the initial
development of these
+features; however, the nanoarrow 0.6.0 release added the requisite feature
coverage and testing
+such that the appropriate home for them is now the main `src/` directory. As
such, one
+can now build nanoarrow with IPC and/or device support using:
+
+``` shell
+mkdir build && cd build
+cmake .. -DNANOARROW_IPC=ON -DNANOARROW_DEVICE=ON
+```
## Features
### Float16, StringView, and REE Support
-- C demo
-- Python demo
-- R demo
+The nanoarrow 0.6.0 release adds support for Arrow's float16 (half float),
string view,
+and run-end encoding support. The C library supports building float16 arrays
using
+`ArrowArrayAppendDouble()` and supports building string view and binary view
arrays
+using `ArrowArrayAppendString()` and/or `ArrowArrayAppendBytes()` and supports
consuming
+using `ArrowArrayViewGetStringUnsafe()` and/or
`ArrowArrayViewGetBytesUnsafe()`. R and
+Python users can request a string view or float16 type when building an array,
and
+conversion back to R/Python strings is suppored.
+
+``` python
+# pip install nanoarrow
+# conda install nanoarrow -c conda-forge
+import nanoarrow as na
+
+na.Array(["abc", "def", None], na.string_view())
+#> nanoarrow.Array<string_view>[3]
+#> 'abc'
+#> 'def'
+#> None
+na.Array([1, 2, 3], na.float16())
+#> nanoarrow.Array<half_float>[3]
+#> 1.0
+#> 2.0
+#> 3.0
+```
+
+``` r
+# install.packages("nanoarrow")
+library(nanoarrow)
+
+as_nanoarrow_array(c("abc", "def", NA), schema = na_string_view()) |>
+ convert_array()
+#> [1] "abc" "def" NA
+as_nanoarrow_array(c(1, 2, 3), schema = na_half_float()) |>
+ convert_array()
+#> [1] 1 2 3
+```
+
+Support for creating/consuming run-end encoding arrays by element is not yet
+support in C, R, or Python; however, arrays can be built or consumed by
assembling
Review Comment:
```suggestion
Creating/consuming run-end encoding arrays by element is not yet
supported in C, R, or Python; however, arrays can be built or consumed by
assembling
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]