From 759717a1bcdea656eb3184a33161949c5ce31883 Mon Sep 17 00:00:00 2001 From: Josh Buckner Date: Fri, 16 Oct 2026 16:30:16 -0400 Subject: [PATCH] Documentation site with pkgdown on GitHub Pages _pkgdown.yml groups the reference by what the functions are for (pairwise statistics, permutation tests, clustering and components, models and linear algebra, the GPU) and lists the benchmarks vignette. The pkgdown workflow builds the site on every push to master, without CUDA, and deploys it to https://nullsatz.github.io/gputools/, which is now the first URL in DESCRIPTION. docs/ and the config stay out of the CRAN tarball. Co-Authored-By: Claude Fable 5.1 --- .Rbuildignore | 3 ++ .github/workflows/pkgdown.yaml | 50 ++++++++++++++++++++++++++++ .gitignore | 1 + DESCRIPTION | 2 +- _pkgdown.yml | 60 ++++++++++++++++++++++++++++++++++ 5 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/pkgdown.yaml create mode 100644 _pkgdown.yml diff --git a/.Rbuildignore b/.Rbuildignore index a364ed8..be82aae 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -8,3 +8,6 @@ ^\.gitattributes$ ^review$ ^cran-comments\.md$ +^_pkgdown\.yml$ +^docs$ +^pkgdown$ diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml new file mode 100644 index 0000000..e3aca87 --- /dev/null +++ b/.github/workflows/pkgdown.yaml @@ -0,0 +1,50 @@ +# Build the documentation site with pkgdown and publish it to GitHub Pages +# (https://nullsatz.github.io/gputools/) on every push to master. The +# runner has no CUDA, so this is the no-CUDA build: the examples, which +# run only if gpuAvailable(), are shown but not run, and the benchmarks +# vignette reads its measurements from the CSVs in vignettes/. +name: pkgdown + +on: + push: + branches: [master] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-24.04 + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v4 + - 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 + - run: Rscript -e 'pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)' + - uses: actions/upload-pages-artifact@v3 + with: + path: docs + + deploy: + needs: build + runs-on: ubuntu-24.04 + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 0cfb2d0..6efe66b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ src/Makevars src/*.o src/*.so src/nocuda-reason.h +docs/ diff --git a/DESCRIPTION b/DESCRIPTION index d5f45aa..ece5dd9 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -27,5 +27,5 @@ Description: GPU versions of base R statistics for data with many package installs, and its functions explain how to get a 'CUDA' build. Described in Buckner et al. (2010) . License: GPL-3 -URL: https://github.com/nullsatz/gputools +URL: https://nullsatz.github.io/gputools/, https://github.com/nullsatz/gputools BugReports: https://github.com/nullsatz/gputools/issues diff --git a/_pkgdown.yml b/_pkgdown.yml new file mode 100644 index 0000000..9352e13 --- /dev/null +++ b/_pkgdown.yml @@ -0,0 +1,60 @@ +url: https://nullsatz.github.io/gputools/ + +template: + bootstrap: 5 + +home: + title: GPU drop-ins for base R statistics on wide data + +navbar: + structure: + left: [reference, articles] + right: [search, github] + +reference: +- title: Pairwise statistics over many variables + desc: Every pair of variables at once, on the GPU. + contents: + - gpuCor + - gpuCorPairs + - gpuAssoc + - gpuTtest + - gpuDist + - gpuGranger + - gpuMi +- title: Permutation tests + desc: Permutation and Westfall-Young maxT p-values for every test. + contents: + - gpuCorPerm + - gpuRowTtest +- title: Clustering and components + contents: + - gpuHclust + - gpuDistClust + - gpuKmeans + - gpuPrcomp + - gpuSvd +- title: Models and linear algebra + desc: The same interface as base R; base R is as fast at most sizes. + contents: + - gpuLm + - gpuLm.fit + - gpuLm.defaultTol + - gpuLsfit + - gpuGlm + - gpuQr + - gpuSolve + - gpuMatMult + - gpuCrossprod + - gpuTcrossprod + - cpuMatMult +- title: The GPU + contents: + - gpuAvailable + - chooseGpu + - getGpuId + +articles: +- title: Benchmarks + contents: + - benchmarks