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]

Reply via email to