This is an automated email from the ASF dual-hosted git repository.

paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 01c6638  [R] Add R package skeleton (#30)
01c6638 is described below

commit 01c66380a4358cf390b4d609794fdac2f2ebfb45
Author: Dewey Dunnington <[email protected]>
AuthorDate: Wed Aug 24 13:13:28 2022 -0300

    [R] Add R package skeleton (#30)
    
    * boilerplate pkg
    
    * rstudio garbage ignore
    
    * better description
    
    * slightly more realistic boilerplate
    
    * add R package to docs
    
    * finish adding R package to docs
    
    * maybe fix pages build
    
    * maybe fix pkgdown build
    
    * maybe fix pkgdown dest dir
---
 .asf.yaml                                 |   1 +
 .github/workflows/docs.yaml               |  19 ++-
 .gitignore                                |   1 +
 docs/README.md                            |   6 +-
 docs/source/conf.py                       |   3 +
 r/.Rbuildignore                           |   8 ++
 r/.gitignore                              |   4 +
 r/DESCRIPTION                             |  26 ++++
 r/LICENSE.md                              | 194 ++++++++++++++++++++++++++++++
 r/NAMESPACE                               |   4 +
 r/R/nanoarrow-package.R                   |  20 +++
 r/README.Rmd                              |  30 +++++
 r/README.md                               |  24 ++++
 r/_pkgdown.yml                            |   4 +
 r/man/nanoarrow-package.Rd                |  28 +++++
 r/man/nanoarrow_version.Rd                |  19 +++
 r/nanoarrow.Rproj                         |  22 ++++
 r/src/.gitignore                          |   3 +
 r/src/init.c                              |  15 +++
 r/src/version.c                           |  11 ++
 r/tests/testthat.R                        |  12 ++
 r/tests/testthat/test-nanoarrow-package.R |   4 +
 22 files changed, 454 insertions(+), 4 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index 6ec378c..385899b 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -24,6 +24,7 @@ github:
   features:
     issues: true
   ghp_branch: gh-pages
+  ghp_path: ~
 
 notifications:
   commits:      [email protected]
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 4ed86dc..7fed010 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -15,10 +15,19 @@ jobs:
 
     steps:
       - uses: actions/checkout@v2
-      - name: Set up Python
-        uses: actions/setup-python@v2
+      - uses: r-lib/actions/setup-pandoc@v2
+      - uses: r-lib/actions/setup-r@v2
+        with:
+          use-public-rspm: true
+      - uses: r-lib/actions/setup-r-dependencies@v2
+        with:
+          extra-packages: any::pkgdown, local::.
+          needs: website
+          working-directory: r
+      - uses: actions/setup-python@v2
         with:
           python-version: 3.9
+      
       - name: Install dependencies
         run: |
           sudo apt-get install doxygen
@@ -30,10 +39,14 @@ jobs:
           cd src/apidoc
           doxygen
       
-      - name: Build documentation
+      - name: Run sphinx
         run: |
           cd docs
           sphinx-build source _build/html
+      
+      - name: Run pkgdown
+        run: pkgdown::build_site_github_pages("r", dest_dir = 
"../docs/_build/html/r", new_process = FALSE, install = FALSE)
+        shell: Rscript {0}
 
       - name: Upload built documentation
         if: success() && github.ref != 'refs/heads/main'
diff --git a/.gitignore b/.gitignore
index 754d9b5..f6c1673 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@ arrow-hpp
 .DS_Store
 CMakeUserPresets.json
 .vscode
+.Rproj.user
diff --git a/docs/README.md b/docs/README.md
index 3744b90..9a4855a 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -19,7 +19,7 @@
 
 # Building nanoarrow documentation
 
-Building the nanoarrow documentation requires [Python](https://python.org), 
[R](https://r-project.org), and [Doxygen](https://doxygen.nl). In addition, 
several Python and R packages are required. You can install the Python 
dependencies using `pip install -r requirements.txt` in this directory; you can 
install the R dependencies using `R -e 'install.packages("pkgdown")`.
+Building the nanoarrow documentation requires [Python](https://python.org), 
[R](https://r-project.org), [Doxygen](https://doxygen.nl), and 
[pandoc](https://pandoc.org/). In addition, several Python and R packages are 
required. You can install the Python dependencies using `pip install -r 
requirements.txt` in this directory; you can install the R dependencies using 
`R -e 'install.packages("pkgdown")`.
 
 ```bash
 git clone https://github.com/apache/arrow-nanoarrow.git
@@ -30,5 +30,9 @@ pushd ../src/apidoc
 doxygen
 popd
 
+# Run sphinx to generate the main site
 sphinx-build source _build/html
+
+# Run pkgdown to generate R package documentation
+R -e 'pkgdown::build_site("../r")'
 ```
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 7e50903..14ac742 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -72,6 +72,9 @@ html_theme = 'pydata_sphinx_theme'
 html_theme_options = {
     "show_toc_level": 2,
     "use_edit_page_button": True,
+    "external_links": [
+      {"name": "R API", "url": "r/index.html"},
+  ],
 }
 
 html_context = {
diff --git a/r/.Rbuildignore b/r/.Rbuildignore
new file mode 100644
index 0000000..c11fc72
--- /dev/null
+++ b/r/.Rbuildignore
@@ -0,0 +1,8 @@
+^nanoarrow\.Rproj$
+^\.Rproj\.user$
+^LICENSE\.md$
+^_pkgdown\.yml$
+^docs$
+^pkgdown$
+^\.\./docs/_build/html$
+^README\.Rmd$
diff --git a/r/.gitignore b/r/.gitignore
new file mode 100644
index 0000000..c87782a
--- /dev/null
+++ b/r/.gitignore
@@ -0,0 +1,4 @@
+.Rproj.user
+.Rhistory
+docs
+../docs/_build/html
diff --git a/r/DESCRIPTION b/r/DESCRIPTION
new file mode 100644
index 0000000..3e7363c
--- /dev/null
+++ b/r/DESCRIPTION
@@ -0,0 +1,26 @@
+Package: nanoarrow
+Title: An R Interface to the 'nanoarrow' C Library
+Version: 0.0.0.9000
+Authors@R: c(
+    person(given = "Dewey",
+             family = "Dunnington",
+             role = c("aut", "cre"),
+             email = "[email protected]",
+             comment = c(ORCID = "0000-0002-9415-4582")),
+    person("Apache Arrow", email = "[email protected]", role = c("aut", 
"cph"))
+  )
+Description: Provides an R interface to the 'nanoarrow' C library and the
+  'Apache Arrow' application binary interface. Functions to import and
+  export 'ArrowArray', 'ArrowSchema', and 'ArrowArrayStream' C structures
+  to and from R objects are provided alongside helpers to facilitate zero-copy
+  data transfer among R bindings to libraries implementing the 'Arrow' C
+  data interface.
+License: Apache License (>= 2)
+Encoding: UTF-8
+Roxygen: list(markdown = TRUE)
+RoxygenNote: 7.2.1
+URL: https://github.com/apache/arrow-nanoarrow
+BugReports: https://github.com/apache/arrow-nanoarrow/issues
+Suggests: 
+    testthat (>= 3.0.0)
+Config/testthat/edition: 3
diff --git a/r/LICENSE.md b/r/LICENSE.md
new file mode 100644
index 0000000..b62a9b5
--- /dev/null
+++ b/r/LICENSE.md
@@ -0,0 +1,194 @@
+Apache License
+==============
+
+_Version 2.0, January 2004_
+_&lt;<http://www.apache.org/licenses/>&gt;_
+
+### Terms and Conditions for use, reproduction, and distribution
+
+#### 1. Definitions
+
+“License” shall mean the terms and conditions for use, reproduction, and
+distribution as defined by Sections 1 through 9 of this document.
+
+“Licensor” shall mean the copyright owner or entity authorized by the copyright
+owner that is granting the License.
+
+“Legal Entity” shall mean the union of the acting entity and all other entities
+that control, are controlled by, or are under common control with that entity.
+For the purposes of this definition, “control” means **(i)** the power, direct 
or
+indirect, to cause the direction or management of such entity, whether by
+contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of 
the
+outstanding shares, or **(iii)** beneficial ownership of such entity.
+
+“You” (or “Your”) shall mean an individual or Legal Entity exercising
+permissions granted by this License.
+
+“Source” form shall mean the preferred form for making modifications, including
+but not limited to software source code, documentation source, and 
configuration
+files.
+
+“Object” form shall mean any form resulting from mechanical transformation or
+translation of a Source form, including but not limited to compiled object 
code,
+generated documentation, and conversions to other media types.
+
+“Work” shall mean the work of authorship, whether in Source or Object form, 
made
+available under the License, as indicated by a copyright notice that is 
included
+in or attached to the work (an example is provided in the Appendix below).
+
+“Derivative Works” shall mean any work, whether in Source or Object form, that
+is based on (or derived from) the Work and for which the editorial revisions,
+annotations, elaborations, or other modifications represent, as a whole, an
+original work of authorship. For the purposes of this License, Derivative Works
+shall not include works that remain separable from, or merely link (or bind by
+name) to the interfaces of, the Work and Derivative Works thereof.
+
+“Contribution” shall mean any work of authorship, including the original 
version
+of the Work and any modifications or additions to that Work or Derivative Works
+thereof, that is intentionally submitted to Licensor for inclusion in the Work
+by the copyright owner or by an individual or Legal Entity authorized to submit
+on behalf of the copyright owner. For the purposes of this definition,
+“submitted” means any form of electronic, verbal, or written communication sent
+to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems, and
+issue tracking systems that are managed by, or on behalf of, the Licensor for
+the purpose of discussing and improving the Work, but excluding communication
+that is conspicuously marked or otherwise designated in writing by the 
copyright
+owner as “Not a Contribution.”
+
+“Contributor” shall mean Licensor and any individual or Legal Entity on behalf
+of whom a Contribution has been received by Licensor and subsequently
+incorporated within the Work.
+
+#### 2. Grant of Copyright License
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the Work and 
such
+Derivative Works in Source or Object form.
+
+#### 3. Grant of Patent License
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable (except as stated in this section) patent license to make, have
+made, use, offer to sell, sell, import, and otherwise transfer the Work, where
+such license applies only to those patent claims licensable by such Contributor
+that are necessarily infringed by their Contribution(s) alone or by combination
+of their Contribution(s) with the Work to which such Contribution(s) was
+submitted. If You institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Work or a
+Contribution incorporated within the Work constitutes direct or contributory
+patent infringement, then any patent licenses granted to You under this License
+for that Work shall terminate as of the date such litigation is filed.
+
+#### 4. Redistribution
+
+You may reproduce and distribute copies of the Work or Derivative Works thereof
+in any medium, with or without modifications, and in Source or Object form,
+provided that You meet the following conditions:
+
+* **(a)** You must give any other recipients of the Work or Derivative Works a 
copy of
+this License; and
+* **(b)** You must cause any modified files to carry prominent notices stating 
that You
+changed the files; and
+* **(c)** You must retain, in the Source form of any Derivative Works that You 
distribute,
+all copyright, patent, trademark, and attribution notices from the Source form
+of the Work, excluding those notices that do not pertain to any part of the
+Derivative Works; and
+* **(d)** If the Work includes a “NOTICE” text file as part of its 
distribution, then any
+Derivative Works that You distribute must include a readable copy of the
+attribution notices contained within such NOTICE file, excluding those notices
+that do not pertain to any part of the Derivative Works, in at least one of the
+following places: within a NOTICE text file distributed as part of the
+Derivative Works; within the Source form or documentation, if provided along
+with the Derivative Works; or, within a display generated by the Derivative
+Works, if and wherever such third-party notices normally appear. The contents 
of
+the NOTICE file are for informational purposes only and do not modify the
+License. You may add Your own attribution notices within Derivative Works that
+You distribute, alongside or as an addendum to the NOTICE text from the Work,
+provided that such additional attribution notices cannot be construed as
+modifying the License.
+
+You may add Your own copyright statement to Your modifications and may provide
+additional or different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works as a 
whole,
+provided Your use, reproduction, and distribution of the Work otherwise 
complies
+with the conditions stated in this License.
+
+#### 5. Submission of Contributions
+
+Unless You explicitly state otherwise, any Contribution intentionally submitted
+for inclusion in the Work by You to the Licensor shall be under the terms and
+conditions of this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify the terms 
of
+any separate license agreement you may have executed with Licensor regarding
+such Contributions.
+
+#### 6. Trademarks
+
+This License does not grant permission to use the trade names, trademarks,
+service marks, or product names of the Licensor, except as required for
+reasonable and customary use in describing the origin of the Work and
+reproducing the content of the NOTICE file.
+
+#### 7. Disclaimer of Warranty
+
+Unless required by applicable law or agreed to in writing, Licensor provides 
the
+Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
+including, without limitation, any warranties or conditions of TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
+solely responsible for determining the appropriateness of using or
+redistributing the Work and assume any risks associated with Your exercise of
+permissions under this License.
+
+#### 8. Limitation of Liability
+
+In no event and under no legal theory, whether in tort (including negligence),
+contract, or otherwise, unless required by applicable law (such as deliberate
+and grossly negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special, incidental,
+or consequential damages of any character arising as a result of this License 
or
+out of the use or inability to use the Work (including but not limited to
+damages for loss of goodwill, work stoppage, computer failure or malfunction, 
or
+any and all other commercial damages or losses), even if such Contributor has
+been advised of the possibility of such damages.
+
+#### 9. Accepting Warranty or Additional Liability
+
+While redistributing the Work or Derivative Works thereof, You may choose to
+offer, and charge a fee for, acceptance of support, warranty, indemnity, or
+other liability obligations and/or rights consistent with this License. 
However,
+in accepting such obligations, You may act only on Your own behalf and on Your
+sole responsibility, not on behalf of any other Contributor, and only if You
+agree to indemnify, defend, and hold each Contributor harmless for any 
liability
+incurred by, or claims asserted against, such Contributor by reason of your
+accepting any such warranty or additional liability.
+
+_END OF TERMS AND CONDITIONS_
+
+### APPENDIX: How to apply the Apache License to your work
+
+To apply the Apache License to your work, attach the following boilerplate
+notice, with the fields enclosed by brackets `[]` replaced with your own
+identifying information. (Don't include the brackets!) The text should be
+enclosed in the appropriate comment syntax for the file format. We also
+recommend that a file or class name and description of purpose be included on
+the same “printed page” as the copyright notice for easier identification 
within
+third-party archives.
+
+    Copyright [yyyy] [name of copyright owner]
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
diff --git a/r/NAMESPACE b/r/NAMESPACE
new file mode 100644
index 0000000..0ac46ae
--- /dev/null
+++ b/r/NAMESPACE
@@ -0,0 +1,4 @@
+# Generated by roxygen2: do not edit by hand
+
+export(nanoarrow_version)
+useDynLib(nanoarrow, .registration = TRUE)
diff --git a/r/R/nanoarrow-package.R b/r/R/nanoarrow-package.R
new file mode 100644
index 0000000..c9d331c
--- /dev/null
+++ b/r/R/nanoarrow-package.R
@@ -0,0 +1,20 @@
+#' @keywords internal
+"_PACKAGE"
+
+## usethis namespace: start
+#' @useDynLib nanoarrow, .registration = TRUE
+## usethis namespace: end
+NULL
+
+#' Underlying 'nanoarrow' C library version
+#'
+#' @return A string identifying the version of nanoarrow this package
+#'   was compiled against.
+#' @export
+#'
+#' @examples
+#' nanoarrow_version()
+#'
+nanoarrow_version <- function() {
+  .Call(nanoarrow_c_version)
+}
diff --git a/r/README.Rmd b/r/README.Rmd
new file mode 100644
index 0000000..dccd413
--- /dev/null
+++ b/r/README.Rmd
@@ -0,0 +1,30 @@
+---
+output: github_document
+---
+
+<!-- README.md is generated from README.Rmd. Please edit that file -->
+
+```{r, include = FALSE}
+knitr::opts_chunk$set(
+  collapse = TRUE,
+  comment = "#>",
+  fig.path = "man/figures/README-",
+  out.width = "100%"
+)
+```
+
+# nanoarrow
+
+<!-- badges: start -->
+<!-- badges: end -->
+
+The goal of nanoarrow is to provide minimal useful bindings to the [Arrow C 
Data](https://arrow.apache.org/docs/format/CDataInterface.html) and [Arrow C 
Stream](https://arrow.apache.org/docs/format/CStreamInterface.html) interfaces 
using the [nanoarrow C library](https://apache.github.io/arrow-nanoarrow/).
+
+## Installation
+
+You can install the development version of nanoarrow from 
[GitHub](https://github.com/) with:
+
+``` r
+# install.packages("remotes")
+remotes::install_github("apache/arrow-nanoarrow/r")
+```
diff --git a/r/README.md b/r/README.md
new file mode 100644
index 0000000..aaa2e4a
--- /dev/null
+++ b/r/README.md
@@ -0,0 +1,24 @@
+
+<!-- README.md is generated from README.Rmd. Please edit that file -->
+
+# nanoarrow
+
+<!-- badges: start -->
+<!-- badges: end -->
+
+The goal of nanoarrow is to provide minimal useful bindings to the
+[Arrow C Data](https://arrow.apache.org/docs/format/CDataInterface.html)
+and [Arrow C
+Stream](https://arrow.apache.org/docs/format/CStreamInterface.html)
+interfaces using the [nanoarrow C
+library](https://apache.github.io/arrow-nanoarrow/).
+
+## Installation
+
+You can install the development version of nanoarrow from
+[GitHub](https://github.com/) with:
+
+``` r
+# install.packages("remotes")
+remotes::install_github("apache/arrow-nanoarrow/r")
+```
diff --git a/r/_pkgdown.yml b/r/_pkgdown.yml
new file mode 100644
index 0000000..291b245
--- /dev/null
+++ b/r/_pkgdown.yml
@@ -0,0 +1,4 @@
+url: ~
+template:
+  bootstrap: 5
+destination: ../docs/_build/html/r
diff --git a/r/man/nanoarrow-package.Rd b/r/man/nanoarrow-package.Rd
new file mode 100644
index 0000000..6ea9267
--- /dev/null
+++ b/r/man/nanoarrow-package.Rd
@@ -0,0 +1,28 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/nanoarrow-package.R
+\docType{package}
+\name{nanoarrow-package}
+\alias{nanoarrow}
+\alias{nanoarrow-package}
+\title{nanoarrow: An R Interface to the 'nanoarrow' C Library}
+\description{
+Provides an R interface to the 'nanoarrow' C library and the 'Apache Arrow' 
application binary interface. Functions to import and export 'ArrowArray', 
'ArrowSchema', and 'ArrowArrayStream' C structures to and from R objects are 
provided alongside helpers to facilitate zero-copy data transfer among R 
bindings to libraries implementing the 'Arrow' C data interface.
+}
+\seealso{
+Useful links:
+\itemize{
+  \item \url{https://github.com/apache/arrow-nanoarrow}
+  \item Report bugs at \url{https://github.com/apache/arrow-nanoarrow/issues}
+}
+
+}
+\author{
+\strong{Maintainer}: Dewey Dunnington \email{[email protected]} 
(\href{https://orcid.org/0000-0002-9415-4582}{ORCID})
+
+Authors:
+\itemize{
+  \item Apache Arrow \email{[email protected]} [copyright holder]
+}
+
+}
+\keyword{internal}
diff --git a/r/man/nanoarrow_version.Rd b/r/man/nanoarrow_version.Rd
new file mode 100644
index 0000000..109d964
--- /dev/null
+++ b/r/man/nanoarrow_version.Rd
@@ -0,0 +1,19 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/nanoarrow-package.R
+\name{nanoarrow_version}
+\alias{nanoarrow_version}
+\title{Underlying 'nanoarrow' C library version}
+\usage{
+nanoarrow_version()
+}
+\value{
+A string identifying the version of nanoarrow this package
+was compiled against.
+}
+\description{
+Underlying 'nanoarrow' C library version
+}
+\examples{
+nanoarrow_version()
+
+}
diff --git a/r/nanoarrow.Rproj b/r/nanoarrow.Rproj
new file mode 100644
index 0000000..69fafd4
--- /dev/null
+++ b/r/nanoarrow.Rproj
@@ -0,0 +1,22 @@
+Version: 1.0
+
+RestoreWorkspace: No
+SaveWorkspace: No
+AlwaysSaveHistory: Default
+
+EnableCodeIndexing: Yes
+UseSpacesForTab: Yes
+NumSpacesForTab: 2
+Encoding: UTF-8
+
+RnwWeave: Sweave
+LaTeX: pdfLaTeX
+
+AutoAppendNewline: Yes
+StripTrailingWhitespace: Yes
+LineEndingConversion: Posix
+
+BuildType: Package
+PackageUseDevtools: Yes
+PackageInstallArgs: --no-multiarch --with-keep.source
+PackageRoxygenize: rd,collate,namespace
diff --git a/r/src/.gitignore b/r/src/.gitignore
new file mode 100644
index 0000000..22034c4
--- /dev/null
+++ b/r/src/.gitignore
@@ -0,0 +1,3 @@
+*.o
+*.so
+*.dll
diff --git a/r/src/init.c b/r/src/init.c
new file mode 100644
index 0000000..ba5de52
--- /dev/null
+++ b/r/src/init.c
@@ -0,0 +1,15 @@
+#define R_NO_REMAP
+#include <R.h>
+#include <Rinternals.h>
+
+SEXP nanoarrow_c_version();
+
+static const R_CallMethodDef CallEntries[] = {
+  {"nanoarrow_c_version", (DL_FUNC) &nanoarrow_c_version, 0},
+  {NULL, NULL, 0}
+};
+
+void R_init_nanoarrow(DllInfo *dll) {
+  R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
+  R_useDynamicSymbols(dll, FALSE);
+}
diff --git a/r/src/version.c b/r/src/version.c
new file mode 100644
index 0000000..72c2a48
--- /dev/null
+++ b/r/src/version.c
@@ -0,0 +1,11 @@
+#define R_NO_REMAP
+#include <R.h>
+#include <Rinternals.h>
+
+#ifndef NANOARROW_VERSION_STR
+#define NANOARROW_VERSION_STR "dev"
+#endif
+
+SEXP nanoarrow_c_version() {
+  return Rf_mkString(NANOARROW_VERSION_STR);
+}
diff --git a/r/tests/testthat.R b/r/tests/testthat.R
new file mode 100644
index 0000000..223f6a3
--- /dev/null
+++ b/r/tests/testthat.R
@@ -0,0 +1,12 @@
+# This file is part of the standard setup for testthat.
+# It is recommended that you do not modify it.
+#
+# Where should you do additional test configuration?
+# Learn more about the roles of various files in:
+# * https://r-pkgs.org/tests.html
+# * https://testthat.r-lib.org/reference/test_package.html#special-files
+
+library(testthat)
+library(nanoarrow)
+
+test_check("nanoarrow")
diff --git a/r/tests/testthat/test-nanoarrow-package.R 
b/r/tests/testthat/test-nanoarrow-package.R
new file mode 100644
index 0000000..7bd3313
--- /dev/null
+++ b/r/tests/testthat/test-nanoarrow-package.R
@@ -0,0 +1,4 @@
+
+test_that("nanoarrow_version() works", {
+  expect_vector(nanoarrow_version(), character(1))
+})

Reply via email to