is_renv_project criterion looking for an renv.lock file (@gadenbuie, #86).Auto-update from GitHub Actions (#228).
Add ccache to .gitignore and .Rbuildignore.
Update ccache-action reference.
Bump action version.
Create snapshot update PR against correct branch.
Add reference to /apply-patch workflow in commit message.
Clarify rationale for not deploying on schedule.
Only run fledge on pushes to main.
Tweak fledge workflow and ccache action.
Cosmetics.
Bump action versions.
Install clang-format-21.
Align fledge workflow.
Add "Supported By Posit" badge to rprojroot website (@jeroenjanssens, #172).
Compatibility with roxygen2 8.0.0.
Add is_vscode_project criterion, true if a .vscode/ directory exists (#155, #157, @jennybc).
New is_targets_project (@mitchelloharawild, #108, #146).
Avoid warnings about invalid inputs with non-native encoding (@bastistician, #80).
Align is_pkgdown_project with pkgdown > 2.0.9. (#104, #106).
Avoid warnings on Windows network drives (#105).
is_root() to is_fs_root() to avoid confusion (#101).is_renv_project criterion looking for an renv.lock file (@gadenbuie, #86).is_quarto_project criterion looking for a Quarto project (@olivroy, #91, #92).:: to skip if not installed in tests (#94).is_pkgdown_project root criterion looking for a _pkgdown.yml, _pkgdown.yaml, pkgdown/_pkgdown.yml and/or inst/_pkgdown.yml file (#79, @salim-b).LazyData in DESCRIPTION.find_root_file(), if the first path component is already an absolute path, the path is returned unchanged without referring to the root. This allows using both root-relative and absolute paths in here::here(). Mixing root-relative and absolute paths in the same call returns an error (#59).find_root_file() propagates NA values in path components. Using tidyverse recycling rules for path components of length different from one (#66).has_file() and has_file_pattern() gain fixed argument (#75).is_drake_project criterion (#34).subdir argument to make_fix_file() (#33, @BarkleyBG).has_file() and has_dir() now throw an error if the filepath argument is an absolute path (#74).has_basename() replaces has_dirname() to avoid confusion (#63).as_root_criterion() and is_root_criterion() replace as. and is., respectively. The latter are soft-deprecated.thisfile() and related functions are soft-deprecated, now available in the whereami package (#43).is_dirname() criterion no longer considers sibling directories (#44).thisfile(), moved from kimisc (#8)..git directories created with git clone --separate-git-dir=... (#24, @karldw).New root criteria
New function
get_root_desc() returns the description of the criterion that applies to a given root, useful for composite criteria created with |.Minor enhancements
Internal
$testfun member of the rprojroot S3 class is now a list of functions instead of a function.Compatibility
backports package.New root criteria
Minor enhancement
| operator (#15).Documentation
Testing
Initial CRAN release.
S3 class root_criterion:
find_file() and make_fix_file()root_criterion()as.root_criterion()is.root_criterion()has_file()has_file_pattern()is_r_packageis_rstudio_projectGetting started:
find_package_root_file()find_rstudio_root_file()Use a custom notion of a project root:
find_root()find_root_file()Vignette