Version 2026.8.21
- The package drops
magrittr. Every%>%is now the base pipe|>, andmagrittris gone fromDESCRIPTION. - The rewrite is a relocation, not an edit. Each
%>%call was transformed the way R’s parser transforms|>, and the resulting tree was required to match the tree parsed from the rewritten file. A file whose trees disagreed was left untouched and converted by hand instead.
Version 2026.8.6
Licensing
-
DESCRIPTIONAuthors@Rnow declares Richard Aubrey White as the copyright holder, withrole = "cph". It declared none at all, and neither did any other package in the fleet. Nothing inR CMD checkreports that. - The copyright year is now 2026. It read 2025.
-
CLAUDE.mdnow carries a Licensing section, so the year gets checked rather than silently ageing.
Corrections
try_again()was titled “Retry code execution with exponential backoff”. It does not implement exponential backoff. The delay isstats::runif(1, delay_seconds_min, delay_seconds_max), drawn afresh before every retry from fixed bounds that the loop never reassigns, so it does not grow with the attempt number. The title now names the real behaviour, and the description says what the delay is and what it is not. No code changed, and the arguments and their defaults are untouched.Prose only. This release rewrites the roxygen documentation, both vignettes,
README.md,index.mdandNEWS.mdto ASD-STE100 (Simplified Technical English). The R sources are semantically identical to the previous release.No claim changed. The sweep found documented claims that the code does not support. It left every one of those claims in place, and reported it.
The rewrite splits long sentences, prefers the active voice, and uses one term for each concept. It also uses the RFC-2119 keywords MUST and MAY in the
test_action_fn()@seealso, which states the action-function contract.
Version 2026.8.3
- This release is mostly documentation and roxygen comments. It also carries two bug fixes that do change behavior:
create_rmarkdown()andPlan$add_analysis_from_list(). The entries below describe both. Apart from those two fixes, the R sources are semantically identical to the previous release. -
@seealsoadded to all ten exported functions. Eight point at the vignette that covers them. No vignette coversset_opts()ortry_again(), and the text of those two says so. -
@family example and test functionsadded toexample_action_fn(),test_action_fn()andexample_data_fn_nor_covid19_cases_by_time_location(). - Runnable examples added to
example_data_fn_nor_covid19_cases_by_time_location()andtest_action_fn(), which previously had none. -
try_again()examples taken out of\dontrun{}. They now run, and show a retry that fails once and succeeds on the second attempt. -
create_rmarkdown()examples moved from\dontrun{}to\donttest{}, soR CMD checkruns them. - Fixed
create_rmarkdown(), which evaluated{lubridate::today()}while it generatedrun.R, instead of writing the brace out literally. The brace was not escaped, so glue resolved it at generation time. That had two consequences. Every generated project carried a frozen date, not one that evaluates when the user runs it.create_rmarkdown()also silently needed lubridate, which plnr does not depend on. Both consequences are gone. -
index.mdandRplots.pdfadded to.Rbuildignore, soR CMD buildno longer ships the pkgdown home page source in the tarball. - Fixed
Plan$add_analysis_from_list(). It decided whether to apply the method-levelfn_nameby readingnames(df).dfis not a parameter of that method, and the method does not define it. The lookup therefore escaped to whateverdfthe search path offered, normallystats::df, the F-distribution density.names(stats::df)isNULL, so the guard always passed and the mistake stayed invisible. The method now readsnames(argset). That is what the line above it builds, and what the siblingadd_analysis_from_df()guards on. The fix has two consequences. An argset that carries its ownfn_namekeeps it, instead of losing it to a silent overwrite, which matchesadd_analysis_from_df(). The method also no longer fails whenstatsis not attached, which is howR CMD checkloads a package in its minimal-namespace tests.tests/testthat/test-add-analysis-from-list.Rcovers the fix.
Version 2025.3.19
- Improvements to roxygen2 documentation across all R files:
- Restructured the Plan class documentation and made the explanations clearer
- Added detailed parameter descriptions and examples to the method documentation
- Added documentation for the internal functions
- Added documentation for the utility functions
is_run_directly(),get_anything()andexpand_list() - Added detailed examples and usage patterns for all functions
- Made all the documentation clearer and more consistent
Version 2022.6.7
- CRAN submission.
- Additional documentation.
- Moved some plan public fields into private.
Version 2020.5.4
- Created the
is_run_directly()function. It shows the user whether their code runs directly, or from within a function.
Version 2020.4.3
- Created the
set_opts()function. It setsforce_verbosepackage wide.
Version 2020.2.20
- Created the
create_rmarkdown()skeleton.
