Changelog
Source:NEWS.md
RRatepol 1.3.0
Complete unit test suite
-
tests/testthat/created from scratch (~3 000 lines across 19 test files, one per function) - shared
helper-fixtures.Radded for reusable test data - every function now has tests for valid input, invalid input with informative errors, and edge cases
CI and test coverage
- new
test-coverage.yamlworkflow uploads coverage results to Codecov on every push -
R-CMD-check.yamlupdated to currentr-lib/actionsconventions -
testthat(≥ 3.0.0) added toSuggests
Removed runtime dependencies
-
RUtilpol(GitHub-only) andusethisremoved fromImports -
Remotes:field removed; package is now installable from CRAN without any GitHub dependency
New internal utilities
-
R/util_internal.R: drop-in replacements for allRUtilpolhelpers used in this package -
R/util_search_parameter.R: Grimm-smoothing window-growth logic extracted intoutil_search_parameter()(#96)
New silent argument
-
silent = FALSEadded toestimate_roc()and all functions that produce console output; whenTRUE, suppresses all messages and warnings without affectingverbose(#109)
Bug fixes
-
extract_data(): fix NULL column names in age-uncertainty matrix (#48); fix inverted sort condition that left unsorted age data unsorted (#49); fix NA-detection condition that silently passed NA age rows downstream (#50) -
reduce_data(): add two-way sample alignment so community, age, and age-uncertainty stay in sync when NA age rows are dropped (#52) -
prepare_data(): remove orphanedresobject that caused an error insidepurrr::map()(#55) -
estimate_dissimilarity_coefficient(): fix copy-paste error where"chisq"calledvegan::vegdist(method = "chord")(#56) -
subset_samples(): drop empty-bin rows instead of leaving NA-filled template rows in the result (#61) -
detect_peak_points(): adapt to renamedgratia::derivatives()columns (.lower_cireplaceslower) and switch from deprecatednewdatatodataargument (#69) -
check_data(): exclude NAs from summary statistics and report NA counts per column (#43, #47) -
smooth_community_data(): add assertions for logical parameters andsmooth_n_pointsbounds; raise informative errors forshepwith ≤ 2 points (#51, #83) -
plot_roc(): fix wrong object name (sequence_01→sequence_02) in function example (#106)
Input validation — new assertions
- assertions added across all exported functions to catch invalid, empty, or mismatched inputs before they cause cryptic downstream errors
-
extract_data(): additional pre- and post-processing checks (#81) -
reduce_data(): NULL/empty input guards;intersect()-based sample alignment fixes all-zero row handling (#82, #37) -
prepare_data(): NULL/empty guards;bin_sizeassertion skipped whenworking_units = "levels"(#84, #79) -
make_bins():working_unitsmust be a single value (#85) -
run_iteration(): logical-parameter assertions;time_standardisationmust not be0orNA; standardisation-failure error is now unconditional (#86, #62) -
subset_samples():bin_selectionmust be"first","random", orNULL(#87) -
reduce_data_simple(): empty-input guard; logical-parameter assertions (#88) -
subset_community(): empty-input guard (#89) -
standardise_community_data(): guard againstn_individuals = 0; message when minimum count is used as default (#90) -
transform_into_proportions(): empty-input guard; single-valuesel_methodcheck (#91) -
make_trend(): single-valuesel_methodcheck; return value coerced to numeric vector, fixing"non_linear"returning an array (#92, #78) -
detect_sni(): NA checks onCharDatacolumns 2 and 3 (#93) -
plot_roc():peaksmust be a single non-NAvalue; warning whenROCcontains NAs (#94) -
estimate_roc(): single-value and logical checks forstandardise,tranform_to_proportions,verbose,interest_threshold, anduse_parallel(#95)
Documentation and site
- Roxygen2 updated from 7.2.3 → 7.3.3; all
man/*.Rdfiles regenerated -
pkgdownsite rebuilt; reference index and article pages updated -
quartoadded toSuggeststo support vignette rendering
New contributor
- Friederike Wolke (@FriedaRosa) added as contributor (
ctb) for authoring the test suite and filing the issues that drove this release (#60)
RRatepol 1.2.3
- fix an issue with subsetting the uncertainty matrix to correctly align with the rest of the data (thanks to Giacomo Galli for reporting the bug)
- replace all not a basic ASCII character in documentation
RRatepol 1.2.2
- add more information about additional resources and workshops
- use {neotoma2} from CRAN
- fix an issue with a case, where the age difference between samples is zero. The zeros are replaced by arbitrary 0.1.
RRatepol 1.2.0
Name uniformity
- In order to make all (exported) functions easier to use (use verbs, snake_style,…), rename all functions and their argument. For back-compatibility, the original functions and arguments are kept but flagged as deprecated. More details here.
- main exported function name change:
- rename
fc_estimate_RoC()toestimate_roc()(#23) - rename
fc_plot_RoC_sequence()toplot_roc()(#24) - rename
fc_detect_peak_points()todetect_peak_points()(#25) - rename all internal functions (#26)
- rename
- Update README (#27)
RRatepol 1.1.0
utility functions Internal checks
- change
util_*functions to useRUtilpolpackage
Other
- within
select()replace.data$foowith"foo"(suggested intidyselect) - replace
1:length(...withseq_along
RRatepol 1.0.0
General
- package has been re-factored (most internal processes have been updated)
- several arguments of functions have been changed and marked with
lifecycle - add several more checks while data sourcing
Dissimilarity calculation
- use
veganpackage to calculate all dissimilarities except of standardised euclidean.
RRatepol 0.6.0
Overhaul change of the estimation of RoC
- RoC score is now returned in units selected by user (time_standardisation)
- Method of sample selection from bin is now optional (bin_selection)
- RoC is estimated only for subsequent bins (only_subsequent == TRUE)
- Bins are now created form the beginning of the core (instead of 0)
Console outputs
- General overhaul of console outputs presented to user while running RRatepol
- more information and warning messages are presented with each run
RRatepol 0.5.6
README
- Figures are now saved in the new folder (
manfolder) with the new names. - cosmetics changes in the code (spaces, new lines, etc)