https://github.com/maxheld83/wama
Automating loading workflows during local development.
https://github.com/maxheld83/wama
development package rstats shiny watcher
Last synced: 6 months ago
JSON representation
Automating loading workflows during local development.
- Host: GitHub
- URL: https://github.com/maxheld83/wama
- Owner: maxheld83
- License: other
- Created: 2021-07-16T16:39:49.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-08-31T11:50:41.000Z (almost 5 years ago)
- Last Synced: 2025-02-02T00:27:20.781Z (over 1 year ago)
- Topics: development, package, rstats, shiny, watcher
- Language: R
- Homepage: https://www.maxheld.de/wama
- Size: 69.3 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# wama
[](https://github.com/maxheld83/wama/actions/workflows/main.yaml)
[](https://codecov.io/gh/maxheld83/wama?branch=master)
[](https://CRAN.R-project.org/package=biblids)
[](https://lifecycle.r-lib.org/articles/stages.html#experimental)
> Wama
> [ˈvama] *noun*
> German acronym for *Waschmaschine* (washer)
When iterating during local development, there's a lot of *lather*, *rinse*, *repeat*.
wama does it for you, in the background.
For example, you might often want to run:
1. `devtools::document()`
2. `pkgdown::build_site()`
3. `pkgdown::preview_site()`
and other such workflows.
Existing keyboard shortcuts are a great help, but sometimes even that is too much of a hassle.
For rapid iterations, especially on shiny apps or when polishing the documentation, automatically re-running these steps saves time and helps you stay focused.
wama watches relevant files and folders for changes, and then automatically triggers these jobs in the background.
## Notes
Important to note:
- wama always runs in the *background*, that is *non-interactively*.
A lot of development iteration is still better accomplished interactively.
But even there, you may benefit from an always-up-to-date`man/` and `NAMESPACE`.
- wama is strictly a development-time package; you should never need it in your `DESCRIPTION`.
- wama may be most helpful in an editor or IDE paired with a large screen, where you can view many terminals at once.
For example [vscode](http://code.visualstudio.com), has great support for multiple terminals, website preview and [R](https://marketplace.visualstudio.com/items?itemName=Ikuyadeu.r)
## Related Work
- [`option(shiny.autoreload = TRUE)`](https://shiny.rstudio.com/reference/shiny/0.14/shiny-options.html) is a native shiny feature to automatically reload a shiny app during development when relevant files are changed.
However, it doesn't work with shiny apps in packages, or which rely on changes in packages under development.
- [`testthat::auto_test()`](https://testthat.r-lib.org/reference/auto_test.html) watches source and test files and reruns relevant tests.
However, it seems to be [retired](https://github.com/r-lib/testthat/issues/922#issuecomment-520580955).
And I'm really hoping I didn't miss something and am uselessy reinventing the wheel here ... 😬.