For contributor workflow details, see AGENTS.md.
# Install the latest development version from GitHub
remotes::install_github("r-data-science/rdstools")
# Install a specific CRAN release version
remotes::install_github("r-data-science/rdstools@v0.2.2")
# Install from CRAN (once accepted)
install.packages("rdstools")rdstools provides RStudio addins to control common IDE operations, making them
easy to map to keyboard shortcuts or Stream Deck buttons:
# Activate different panes
rdstools::activate_terminal()
rdstools::activate_console()
rdstools::activate_source_editor()
# Change IDE layout
rdstools::layout_two_column()
rdstools::layout_three_column()
rdstools::layout_four_column()
# Switch themes (requires rsthemes package)
rdstools::switch_theme_dark() # Random dark theme
rdstools::switch_theme_light() # Random light theme
# Package development shortcuts
rdstools::restart_session()
rdstools::load_all_code()
rdstools::document_package()
rdstools::build_package()
rdstools::test_package()
rdstools::check_package()
rdstools::pkg_coverage()After installing the package:
- In RStudio, go to Tools > Modify Keyboard Shortcuts
- Search for "rdstools" or the specific addin name
- Click in the Shortcut column and press your desired key combination
- Click Apply
For Stream Deck integration:
- Set keyboard shortcuts in RStudio for each addin
- In Stream Deck software, create buttons that trigger those keyboard shortcuts
- Optionally add icons and labels to identify each function
rdstools::log_*() helpers still write to the console by default. To capture
the same entries in a file, open a log once at application start:
rdstools::open_log(path = "/var/log/app/session.log")You can also set options(rdstools.log_path = ...) or
Sys.setenv(RDSTOOLS_LOG_PATH = ...) before the first log call; subsequent log
writers will append to the configured file and you can query
rdstools::log_is_active() to confirm a sink is active.
Call rdstools::close_log() during shutdown to flush and close the file; the
logging functions will continue to operate but fall back to console output if
the file becomes unavailable.
This package uses a tag-based release workflow to support both CRAN releases and continuous platform development:
mainbranch: Always contains the latest code. Platform dependencies install frommainto get immediate fixes and features.- Git tags: Mark specific CRAN versions (e.g.,
v0.2.2,v0.3.0) for stable releases. - Version numbering:
- CRAN versions use clean numbers:
0.2.2,0.3.0 - Development versions add
.9000:0.3.0.9000(between CRAN releases)
- CRAN versions use clean numbers:
When preparing a CRAN release:
- Before submission: Tag the commit as
vX.Y.Z-cran-submitted - Continue development: Merge new features to
mainimmediately - After CRAN acceptance: Tag the submission commit as
vX.Y.Z - Post-release: Bump version to
X.Y.Z.9000inDESCRIPTION
CRAN submissions should be spaced 2+ months apart unless addressing critical bugs.
See AGENTS.md for detailed release management guidelines.
