usethis
usethis copied to clipboard
Add a `use_webr_github_pages()` to encourage developmental R WASM binaries
With webR
picking up steam, it would be good to provide a top-level function that simplifies the way to incorporate development WASM binaries. Thus, I'm proposing the addition of a use_webr_github_pages()
/use_rwasm_github_pages()
function. There is a prior precedent for such a function based on integrating pkgdown
with GitHub actions in the use_pkgdown_github_pages()
function.
The inclusion of development WASM binaries requires the use of reproducible actions at r-wasm/actions
to set up a CRAN-like repository and deploy it to the repository's GitHub Pages. So, the proposed function would likely using use_github_action()
to obtain the deployment action and use_github_pages()
to setup the gh-pages
branch of the repository if it is not present already. Moreover, I'm not sure if further tweaks would be required to ensure the action plays nicely with a pkgdown
website created using use_pkgdown()
.
I'm more than happy to investigate further and propose a working function if this is of interest.
I haven't really given this any thought, but would certainly review a working function. I suppose even if usethis wasn't the right home, in the end, there would be value in sketching it all out, yes?
I'm pleased to share that there are two distinct methods for integrating R WASM Package binary builds into an R package repository:
-
Separate Workflows with Commits into
gh-pages
- Detailed in this repository
- Uses
{pkgdown}
and{rwasm}
workflows independently to build and, then, commit results into thegh-pages
branch.
-
Unified Workflow via a GitHub Action for GitHub Pages Deployment
- Described in this repository
- Involves
{rwasm}
building R WASM Package binaries, transferring them as artifacts to{pkgdown}
, which then builds. - The merged output is deployed via a GitHub Action onto GitHub pages without committing into the
gh-pages
branch.
Considering the variable size of R WASM Package binaries due to underlying dependencies, the "unified" approach is recommended over the "separate" approach. This preference stems from the desire to avoid repository size inflation through repeated commits into the gh-pages
branch. However, it's worth noting that the "unified" approach may complicate the existing {pkgdown}
process, as it relies on deploying an artifact onto GitHub Pages. Both approaches also require the "Enforce HTTPS" setting to be activated in GitHub Pages.
I've added a ticket over on the r-wasm/actions
repository for George / Barrett to look at, c.f. https://github.com/r-wasm/actions/issues/15.