diff --git a/csharp/ApacheArrow.snk b/csharp/ApacheArrow.snk new file mode 100644 index 0000000000000..68df43972d8d2 Binary files /dev/null and b/csharp/ApacheArrow.snk differ diff --git a/csharp/Directory.Build.props b/csharp/Directory.Build.props new file mode 100644 index 0000000000000..1917fb6786d63 --- /dev/null +++ b/csharp/Directory.Build.props @@ -0,0 +1,41 @@ + + + + + $(MSBuildThisFileDirectory)../ + $(MSBuildThisFileDirectory) + $(CSharpDir)/artifacts/$(MSBuildProjectName) + + + + + Apache Arrow library + 2018 Apache Software Foundation + Apache + 0.13.0-SNAPSHOT + + + + 7.2 + true + $(CSharpDir)ApacheArrow.snk + + + + + Apache + https://www.apache.org/images/feather.png + LICENSE.txt + https://arrow.apache.org/ + apache arrow + git + https://github.com/apache/arrow + true + snupkg + + + + + + + \ No newline at end of file diff --git a/csharp/README.md b/csharp/README.md index 121a4b25847bd..1eeec818a2e22 100644 --- a/csharp/README.md +++ b/csharp/README.md @@ -135,17 +135,39 @@ This implementation is under development and may not be suitable for use in prod # Build +Install the latest `.NET Core SDK` from https://dotnet.microsoft.com/download. + dotnet build -# Docker Build +## NuGet Build + +To build the NuGet package run the following command to build a debug flavor, preview package into the **artifacts** folder. + + dotnet pack + +When building the officially released version run: (see Note below about current `git` repository) + + dotnet pack -c Release + +Which will build the final/stable package. + +NOTE: When building the officially released version, ensure that your `git` repository has the `origin` remote set to `https://github.com/apache/arrow.git`, which will ensure Source Link is set correctly. See https://github.com/dotnet/sourcelink/blob/master/docs/README.md for more information. + +There are two output artifacts: +1. `Apache.Arrow..nupkg` - this contains the exectuable assemblies +2. `Apache.Arrow..snupkg` - this contains the debug symbols files + +Both of these artifacts can then be uploaded to https://www.nuget.org/packages/manage/upload. + +## Docker Build Build from the Apache Arrow project root. docker build -f csharp/build/docker/Dockerfile . -# Testing +## Testing - dotnet test test/Apache.Arrow.Tests + dotnet test All build artifacts are placed in the **artifacts** folder in the project root. diff --git a/csharp/build/Common.props b/csharp/build/Common.props deleted file mode 100644 index cebd07cf46157..0000000000000 --- a/csharp/build/Common.props +++ /dev/null @@ -1,5 +0,0 @@ - - - ../../artifacts/$(AssemblyName) - - \ No newline at end of file diff --git a/csharp/src/Apache.Arrow/Apache.Arrow.csproj b/csharp/src/Apache.Arrow/Apache.Arrow.csproj index fde9df7d5c61f..9086c83b3c207 100644 --- a/csharp/src/Apache.Arrow/Apache.Arrow.csproj +++ b/csharp/src/Apache.Arrow/Apache.Arrow.csproj @@ -1,28 +1,19 @@  - - netstandard1.3;netcoreapp2.1 - 7.2 true - Apache - Apache Arrow library - 2018 Apache Software Foundation - https://fzcorp.visualstudio.com/digital-products - https://fzcorp.visualstudio.com/digital-products/_git/fz-arrow - git - apache arrow - Apache - 0.0.1 $(DefineConstants);UNSAFE_BYTEBUFFER;BYTEBUFFER_NO_BOUNDS_CHECK;ENABLE_SPAN_T + + Apache Arrow is a cross-language development platform for in-memory data. It specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware. - - - + + + + diff --git a/csharp/test/Apache.Arrow.Benchmarks/Apache.Arrow.Benchmarks.csproj b/csharp/test/Apache.Arrow.Benchmarks/Apache.Arrow.Benchmarks.csproj index f74af09278070..c451bda71f21a 100644 --- a/csharp/test/Apache.Arrow.Benchmarks/Apache.Arrow.Benchmarks.csproj +++ b/csharp/test/Apache.Arrow.Benchmarks/Apache.Arrow.Benchmarks.csproj @@ -3,7 +3,6 @@ Exe netcoreapp2.1 - latest diff --git a/csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj b/csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj index d29279b330a9b..c8dd0de6c551a 100644 --- a/csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj +++ b/csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj @@ -1,12 +1,9 @@  - - netcoreapp2.1 true - 7.3 diff --git a/csharp/test/Directory.Build.props b/csharp/test/Directory.Build.props new file mode 100644 index 0000000000000..a643e49344b7a --- /dev/null +++ b/csharp/test/Directory.Build.props @@ -0,0 +1,9 @@ + + + + + + false + + + \ No newline at end of file diff --git a/dev/release/00-prepare.sh b/dev/release/00-prepare.sh index 8596892de5037..9e0a89b6e95e1 100755 --- a/dev/release/00-prepare.sh +++ b/dev/release/00-prepare.sh @@ -56,6 +56,14 @@ update_versions() { git add configure.ac meson.build cd - + cd "${SOURCE_DIR}/../../csharp" + sed -i.bak -E -e \ + "s/^ .+<\/Version>/ ${version}<\/Version>/" \ + Directory.Build.props + rm -f Directory.Build.props.bak + git add Directory.Build.props + cd - + # We can enable this when Arrow JS uses the same version. # cd "${SOURCE_DIR}/../../js" # sed -i.bak -E -e \ diff --git a/dev/release/rat_exclude_files.txt b/dev/release/rat_exclude_files.txt index dd6169e39906e..b0040eff2bf1e 100644 --- a/dev/release/rat_exclude_files.txt +++ b/dev/release/rat_exclude_files.txt @@ -166,14 +166,15 @@ c_glib/doc/plasma-glib/plasma-glib-overrides.txt c_glib/gtk-doc.make csharp/.gitattributes csharp/src/Apache.Arrow/Flatbuf/* -csharp/build/Common.props csharp/Apache.Arrow.sln +csharp/Directory.Build.props csharp/src/Apache.Arrow/Apache.Arrow.csproj csharp/src/Apache.Arrow/Properties/Resources.Designer.cs csharp/src/Apache.Arrow/Properties/Resources.resx csharp/test/Apache.Arrow.Benchmarks/Apache.Arrow.Benchmarks.csproj csharp/test/Apache.Arrow.Tests/Apache.Arrow.Tests.csproj csharp/test/Apache.Arrow.Tests/app.config +csharp/test/Directory.Build.props *.html *.sgml *.css