deprecate_soft() now follows the verbosity option when called from the global environment (#113).
last_warnings() has been renamed to last_lifecycle_warnings() and last_warning() has been removed. This is for compatibility with the future rlang::last_warnings() function to be released in the next rlang version.
New vignettes:
vignette("stages") describes the lifecycle stagesvignette("manage") teaches you how to manage lifecycle changes in functions you use.vignette("communicate") shows how to use lifecycle in functions that you write.In deprecate_soft(), deprecate_warn(), and deprecate_stop():
You can deprecate an argument with foo(arg) instead of foo(arg =) (#78). This syntax is similar in spirit to the formal arguments of function definitions.
You can deprecate R6 methods by using class$method() (#54).
A character vector details is now converted into a bulleted list (#55).
Messages for non-prefix functions (like “x<-()” and “%>%()”) look a little nicer (#95).
Manually printed warnings now omit the advice footer (#68).
Experimental signal_stage() can be used to signal that a function is experimental or superseded. These signals are not currently hooked up to any behaviour, but we’ll add tools in a future release (#44).
lifecycle_cnd_data() has been removed; as far as I can tell it wasn’t used by anyone.
Lifecycle warnings are now displayed once every 8 hours.
Added experimental signal_experimental() and signal_superseded() functions.
Added the “superseded” lifecycle stage to the documentation.
deprecate_stop() now mentions that function is defunct (#28).
New expect_deprecated() and expect_defunct() functions for testting lifecycle warnings and errors. expect_deprecated() automatically sets the lifecycle_verbosity option to "warning" to enforce warnings at each invokation rather than once per session.
New syntax "foo(arg = 'can\\'t be a baz')" to describe that specific inputs for an argument are deprecated (#30, @krlmlr).
New is_present() function to test whether the caller has supplied a deprecated() function.
Deprecated functions under the control of the developer now warn repeatedly in unit tests.
Deprecation warnings now record a backtrace. Call lifecycle::last_lifecycle_warnings() and lifecycle::last_warning() to print the warnings that occurred during the last command, along with their backtraces.
The naming scheme of signaller functions has been simplified:
signal_soft_deprecated() is now deprecate_soft().warn_deprecated() is now deprecate_warn().stop_defunct() is now deprecate_stop().The signaller functions now take a version and two descriptors for the deprecated feature and its replacement (the latter is optional). The deprecation message is built from these components. You can pass a details argument to append additional information to the generated deprecation message.
Helpers from rlang’s compat-lifecycle.R drop-in file are now exported in this package.