Releases: burchill/catchr
catchr 0.2.31
This release is to essentially do two things: make catchr compatible with the changes to new versions of rlang
, and to keep it on CRAN (minor, non-functional package issues fixed).
Patches
- I incorporated a push request from Lionel (lionel-) due to a change in
rlang
. catchr should work with newer versions ofrlang
from now on. - I made catchr throw an error if plans are made with
beep
andbeepr
is not installed. This was expected by the unit tests, but not implemented. - I fixed some boilerplate stuff so CRAN wouldn't complain about various package notes.
- I updated some presentational stuff and made some minor fixes to the package (non-functional changes).
catchr 0.2.3
Patches
- I hate to waffle on features, but I realized that treating expressions with the
!!
and!!!
operators differently in catchr doesn't make as much sense to me as it did before. (I honestly can't see why I ever even allowed this behavior.)
The use-case Stephen (yogat3ch) pointed out made this clear, so expressions with these operators are now treated like normal expressions. This is basically a reverse of the previous0.2.2
patch, but on reflection, I think it makes more sense to do it this way.
catchr 0.2.2
Patches
Added quasiquotation capabilities to catch_expr()
and make_catch_fn()
, letting you unquote with tidyverse's !!
and !!!
functions. (E.g., catch_expr(!!a_quo, error=muffle)
.) Hopefully this doesn't break anything---it hasn't caused any errors in tests or code so far, but if you have something weird happen, try version 0.2.1 and report the bug fix on GitHub.
Bug fixes
- Fixed the typo in the warning about catchr's special DSL terms potentially masking other variables.
- catchr no longer warns the user about
user_exit()
/user_display()
being top level if they're within a function.
catchr 0.2.1
Changes
Removed with_ordered_handlers
since it was essentially a gimmick anyway, and because it doesn't feel worth it to keep up with whatever rlang's current idiomatic handler framework is at any given moment.
Patches
Fixed some breaking changes from rlang
updating to version 0.4.0
, primarily due to rlang::fn_fmls()
and rlang::with_handlers()
in the backend.
Unfortunately, since rlang v0.4.0
has stopped supporting versions of R below v3.2.0
, so has catchr
too. To use catchr
with older versions of R, use catchr v0.2.0
with rlang v0.3.1
.
Bug fixes
summary()
now works correctly oncatchr_compiled_plans
, rather than throwing an error.
Catchr 0.2.0 (completely redone)
catchr 0.2.0
Major breaking changes: everything
This version of catchr
is essentially a new package---consider all previous functions to be hard-deprecated, and there to be zero backward-compatibility. These huge, package-breaking changes were made while catchr
was very young and had few (if any) users. Moving forward, there will be a (normal) emphasis on backward-compatibility, and such drastic changes are unlikely to ever happen again. The version number was only incremented by 0.1.0
to avoid the implication that this package is feature complete with a stable API.
Instead of listing everything in the package, check out the introductory vignette and help documentation for new features.
catchr's philosophy
R has a unique way of dealing with warnings, errors, messages, and other conditions, but it can often be troublesome to users coming from different backgrounds. Starting from the idea that it should be more flexible and generative, the code now lets users generate their own "catching" functions where they can specify the behavior via conceptual "plans".
In order to lower the barrier of entry, keep code clean and readable, and reduce the amount of typing required, catchr
now uses a very simple domain-specific language that simplifies things on the front-end. catchr
's aim is to maintain a continuous learning curve that lets new users jump straight in to condition-handling, while simultaneously offering depth and complexity for more advanced users.
Now with dependencies
catchr
now depends on a few packages. Much of the functions in catchr v0.1.0
were redundant with functions from rlang
; now catchr
leans heavily on this package to bring simplicity to users less familiar with R's condition-handling idiosyncracies. For convenience, it uses a few functions from purrr
as well. It also suggests beepr
and crayon
for extra functionality in the auditory and visual domains, respectively.
Catchr 0.1.0
catchr 0.1.0
- Original GitHub release of
catchr
on 2018-12-17.