I've created an R package and I'd like to upload it to CRAN via GitHub Actions whenever I merge changes into the master branch. I've found a lot of examples of R actions and I've even looked up how some of the most popular packages like dplyr do it and even though I've found a devtools::release() helper function, I still haven't seen a workflow that would submit a library to CRAN when you merge changes into the master branch. Do package developers do this manually? Is there any reason why this hasn't been automated?
How to submit an R package to CRAN via GitHub Actions?
371 Views Asked by IVR At
1
There are 1 best solutions below
Related Questions in R
- in R, recovering strings that have been converted to factors with factor()
- How to reinstall pandoc after removing .cabal?
- How do I code a Mixed effects model for abalone growth in Aquaculture nutrition with nested individuals
- How to save t.test result in R to a txt file?
- how to call function from library in formula with R type provider
- geom_bar define border color with different fill colors
- Different outcome using model.matrix for a function in R
- Creating a combination data.table in R
- Force specific interactions in Package 'earth' in R
- Output from recursive function R
- Extract series of observations from dataframe for complete sets of data
- Retrieve path of supplementary data file of developed package
- r package development - own function not visible for opencpu
- Label a dataset according to bins of a histogram
- multiply each columns of a matrix by a vector
Related Questions in GITHUB-ACTIONS
- How to resolve "refusing to allow an OAuth App to create or update workflow" on git push
- Setting multiple environment variables in vercel build step
- github actions to kubernetes bare metal deployment
- iptables rules to permit GitHub Actions from breaking (chains default to DROP)
- Continuous Deployment to Heroku using Github Actions
- Github actions, 401 unauthorized when installing a Github Package with npm or yarn
- Are there any open source tools to convert GitHub actions into azure pipelines?
- Mark workflow as non-check workflow
- Python based colored logging in github runner with ubuntu-latest
- Git flow release branch
- Using environment variables in Gatsby site deployed on GitHub pages
- Github Actions: xcpretty is not found despite being installed
- How do I automerge dependabot updates (config version 2)?
- Github Action use environment variable as port
- How to prevent commits through web interface for GitHub repositories
Related Questions in CONTINUOUS-DEPLOYMENT
- How do you deploy build artifacts to Heroku from Codeship?
- SShpass not allowed with Travis CI
- How to deploy with Release Management to remote datacenter
- Docker images versioning for Continuous Integration / Continuous Deployment
- Continuous delivery to Azure using Visual Studio Online: Loss of conectivity
- Named entity recognition with a small data set (corpus)
- Continuous deployment and running with TeamCiy
- Travis CI with SSHpass to remote pull git modifications
- Triggering Jenkins to run application tests when GitHub PR is created
- How to trigger XL Release task from Jenkins ? Is it possible?
- How to install a plugin on xl-release?
- How to Mimic Prod Environment
- Continuous Deployment with Bitbucket and Jazzhub
- Setting up TeamCity Deployment
- test strategy for non functional test cases in continuous integration
Related Questions in CRAN
- What's the proper way to handle a github script dependency in a CRAN package?
- Modifying R package maintained by someone else
- update packages on red hat without internet connection
- Error: processing vignette failed with diagnostics: 4 simultaneous processes spawned
- Choosing a CRAN repository
- Does installing an R package with Rcpp require Rtools (Windows)
- Find an R package on GitHub easily
- R package checking
- R package glmnet installation error
- NOTE in R CRAN check ---No repository set, so cyclic dependency check skipped
- How to manage internal utility functions shared by two R packages
- R's XML package throws error on correct XML document
- Where to put a Dockerfile in an R package
- Unable to install R package BMR in Ubuntu, Fedora and Windows 7 properly
- Install and update R offline in Centos
Related Questions in R-USETHIS
- R package not running preprocessing scripts in data-raw
- browseVignettes: remove `source` and `R code ` files from output
- How to update internal data using use_data
- large files in R package - add to .Rbuildignore?
- How can I use magrittr pipe (%>%) in my package?
- Unable to publish GitHub page for my R package using pkgdown
- Setting up GH actions in a subdirectory (several packages in one repo)
- How to add documentation to package (not to the package's functions)
- How to submit an R package to CRAN via GitHub Actions?
- `use_import_from' is not an exported object from 'namespace:usethis`
- Error in github action from usethis package Can't find 'action.yml', 'action.yaml' or 'Dockerfile'
- Error installing R packages (R 3.4.4), asks for usethis when already installed
- How to solve this warning message: renv took longer than expected to activate the sandbox
- R Package Development Error: cannot open URL
- Installing tool from github scimpute
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
CRAN works quite differently from other language repositories, as uploads are not fully automated like in e.g. PyPI.
When you upload a new package, it is subject to verification from an actual human. When you update a package, if it triggers certain checks it will also be subject to a new review from a human. When a package uploads successfully and passes the first verification, many automated checks are run for it over the course of weeks (e.g. different OSes, compilers, compiler options, architectures, sanitizers, valgrind, etc.), and precompiled binaries are automatically generated for some platforms and R versions from your source code.
The CRAN policies explicitly state that frequent updates are not allowed, and you're not supposed to be submitting uploads any faster than once every couple months, for which I think this level of automation would not be worth it.
Even if you do want to automate this process, there is an email verification in the middle, so you'd perhaps have to do something with selenium + other scripts.
BTW if you are worried about complicated building processes and are using RStudio, you can configure on a per-project basis what arguments to use when building source or binary distributions of your package.