Down with drake_config()!
Version 7.10.0
Unavoidable but minor breaking changes
These changes invalidate some targets in some workflows, but they are necessary bug fixes.
- Remove spurious local variables detected in
$<-()
and@<-()
(#1144). - Avoid target names with trailing dots (#1147, @plebejer).
Bug fixes
- Handle unequal list columns in
bind_plans()
(#1136, @jennysjaarda). - Handle non-vector sub-targets in dynamic branching (#1138).
- Handle calls in
analyze_assign()
(#1119, @jennysjaarda). - Restore correct environment locking (#1143, @kuriwaki).
- Log
"running"
progress of dynamic targets. - Log dynamic targets as failed if a sub-target fails (#1158).
New features
- Add a new
"fst_tbl"
format for largetibble
targets (#1154, @kendonB). - Add a new
format
argument tomake()
, an optional custom storage format for targets without an explicittarget(format = ...)
in the plan (#1124). - Add a new
lock_cache
argument tomake()
to optionally suppress cache locking (#1129). (It can be annoying to interruptmake()
repeatedly and unlock the cache manually every time.) - Add new functions
cancel()
andcancel_if()
function to cancel targets mid-build (#1131). - Add a new
subtarget_list
argument toloadd()
andreadd()
to optionally load a dynamic target as a list of sub-targets (#1139, @MilesMcBain). - Prohibit dynamic
file_out()
(#1141).
Enhancements
- Check for illegal formats early on at the
drake_config()
level (#1156, @MilesMcBain). - Smoothly deprecate the
config
argument in all user-side functions (#1118, @vkehayas). Users can now supply the plan and othermake()
arguments directly, without bothering withdrake_config()
. Now, you only need to calldrake_config()
in the_drake.R
file forr_make()
and friends. Old code withconfig
objects should still work. Affected functions:make()
outdated()
drake_build()
drake_debug()
recoverable()
missed()
deps_target()
deps_profile()
drake_graph_info()
vis_drake_graph()
sankey_drake_graph()
drake_graph()
text_drake_graph()
predict_runtime()
. Needed to rename thetargets
argument totargets_predict
andjobs
tojobs_predict
.predict_workers()
. Same argument name changes aspredict_runtime()
.
- Because of #1118, the only remaining user-side purpose of
drake_config()
is to serve functionsr_make()
and friends. - Document the limitations of grouping variables (#1128).
- Handle the
@
operator. For example, in the static code analysis ofx@y
, do not registery
as a dependency (#1130, @famuvie). - Remove superfluous/incorrect information about imports from the output of
deps_profile()
(#1134, @kendonB). - Append hashes to
deps_target()
output (#1134, @kendonB). - Add S3 class and pretty print method for
drake_meta_()
objects objects. - Use call stacks instead of environment inheritance to power
drake_envir()
andid_chr()
(#1132). - Allow
drake_envir()
to select the environment with imports (#882). - Improve visualization labels for dynamic targets: clarify that the listed runtime is a total runtime over all sub-targets and list the number of sub-targets.