diff --git a/Directory.Build.props b/Directory.Build.props
index d2b10b99..9fe27cbe 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -44,6 +44,7 @@
The Apache Software Foundation
logo_asf.png
Apache-2.0
+ README.md
https://arrow.apache.org/dotnet/
apache arrow
git
@@ -55,6 +56,7 @@
+
diff --git a/dev/release/verify_rc.sh b/dev/release/verify_rc.sh
index e2c22941..8d0a9a76 100755
--- a/dev/release/verify_rc.sh
+++ b/dev/release/verify_rc.sh
@@ -172,7 +172,10 @@ test_binary_distribution() {
fi
pushd nuget
- for package in $(cd ../src && echo *); do
+ for package in ../src/*/; do
+ [ -d "${package}" ] || continue
+ package="${package%/}"
+ package="${package##*/}"
for package_type in nupkg snupkg; do
fetch_artifact "${package}.${VERSION}.${package_type}"
done
diff --git a/src/README.md b/src/README.md
new file mode 100644
index 00000000..90c65261
--- /dev/null
+++ b/src/README.md
@@ -0,0 +1,70 @@
+
+
+# Apache Arrow .NET
+
+[Apache Arrow](https://arrow.apache.org/) is a universal columnar format and
+multi-language toolbox for fast data interchange and in-memory analytics.
+This package is part of the .NET implementation of Apache Arrow.
+
+## Packages
+
+- `Apache.Arrow`: the core library (arrays, schemas, record batches and the
+ Arrow IPC stream and file formats).
+- `Apache.Arrow.Compression`: LZ4 frame and Zstandard codecs for compressed
+ Arrow IPC data.
+- `Apache.Arrow.Flight`: Arrow Flight client and server.
+- `Apache.Arrow.Flight.AspNetCore`: ASP.NET Core integration for Arrow Flight servers.
+- `Apache.Arrow.Flight.Sql`: Arrow Flight SQL client and server.
+- `Apache.Arrow.Operations`: codecs for the Variant binary format, including a
+ JSON reader and writer.
+- `Apache.Arrow.Scalars`: scalar types, including readers, writers and an object
+ model for the Parquet Variant binary format.
+
+## Usage
+
+Example of reading all record batches from an Arrow IPC file:
+
+```csharp
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using Apache.Arrow;
+using Apache.Arrow.Ipc;
+
+public static async Task> ReadArrowFileAsync(string filename)
+{
+ var batches = new List();
+ using (var stream = File.OpenRead(filename))
+ using (var reader = new ArrowFileReader(stream))
+ {
+ RecordBatch batch;
+ while ((batch = await reader.ReadNextRecordBatchAsync()) != null)
+ {
+ batches.Add(batch);
+ }
+ }
+ return batches;
+}
+```
+
+## Links
+
+- Documentation: https://arrow.apache.org/dotnet/
+- Source code and issue tracker: https://github.com/apache/arrow-dotnet