Published December 22, 2019
| Version v7.9.0
Software
Open
ropensci/drake: Speedups and better dynamic branching
Creators
- Will Landau
- Will Landau1
- Ben Bond-Lamberty2
- Matthew Strasiotto
- Miles McBain3
- Kirill Müller
- TJ Mahr
- Ellis Hughes4
- Noam Ross5
- Sean Ingerson
- evalparse6
- brendanf7
- Nicholas Knoblauch
- Kendon Bell8
- Patrick Schratz9
- Tim Mastny
- Rainer M Krug10
- Garrick Aden-Buie11
- Chris Muir12
- Shinya Uryu13
- Maëlle Salmon14
- Mauro Lepore15
- Matt Dray
- Lorenz Walthert16
- Jeroen Ooms17
- Jasper
- Hugo Gruson
- Hlynur18
- BruceZhao
- Bill Denney19
- 1. Eli Lilly and Company @EliLillyCo
- 2. PNNL/UMD
- 3. Queensland Fire and Emergency Services
- 4. @FredHutch
- 5. EcoHealth Alliance
- 6. @evalparse
- 7. Uppsala University
- 8. Manaaki Whenua
- 9. University of Jena, LMU Munich
- 10. University of Zürich
- 11. Collaborative Data Services at Moffitt Cancer Center
- 12. Capital One
- 13. NIES
- 14. @ropensci @lockedata
- 15. https://2degrees-investing.org/
- 16. Student at ETH Zurich
- 17. UC Berkeley
- 18. Ministry of Finance & Economic Affairs
- 19. Human Predictions LLC
Description
Version 7.9.0
Breaking changes in dynamic branching
- Embrace the
vctrs
paradigm and its type stability for dynamic branching (#1105, #1106). - Accept
target
as a symbol by default inread_trace()
. Required for the trace to make sense in #1107.
- Repair reference to custom HPC resources in the
"future"
backend (#1083, @jennysjaarda). - Properly copy data when importing targets from one cache into another (#1120, @brendanf).
- Prevent dynamic vector sizes from conflicting with file sizes in metadata.
- Add a new
log_build_times
argument tomake()
anddrake_config()
. Allows users to disable the recording of build times. Produces a speedup of up to 20% on Macs (#1078). - Implement cache locking to prohibit concurrent calls to
make()
,outdated(make_imports = TRUE)
,recoverable(make_imports = TRUE)
,vis_drake_graph(make_imports = TRUE)
,clean()
, etc. on the same cache. - Add a new
format
trigger to invalidate targets when the specialized data format changes (#1104, @kendonB). - Add new functions
cache_planned()
andcache_unplanned()
to help selectively clean workflows with dynamic targets (#1110, @kendonB). - Add S3 classes and pretty print methods for
drake_config()
objects andanalyze_code()
objects. - Add a new
"qs"
format (#1121, @kendonB).
- Avoid setting seeds for imports (#1086, @adamkski).
- Avoid working directly with POSIXct times (#1086, @adamkski)
- Avoid excessive calls to
%||%
(%|||%
is faster). (#1089, @billdenney) - Remove
%||NA
due to slowness (#1089, @billdenney). - Use hash tables to speed up
is_dynamic()
andis_subtarget()
(#1089, @billdenney). - Use
getVDigest()
instead ofdigest()
(#1089, #1092, https://github.com/eddelbuettel/digest/issues/139#issuecomment-561870289, @eddelbuettel, @billdenney). - Pre-compute
backtick
and.deparseOpts()
to speed updeparse()
(#1086,https://stackoverflow.com/users/516548/g-grothendieck
, @adamkski). - Pre-compute which targets exist in advance (#1095).
- Avoid gratuitous cache interactions and data frame operations in
build_times()
(#1098). - Use
mget_hash()
inprogress()
(#1098). - Get target progress info only once in
drake_graph_info()
(#1098). - Speed up the retrieval of old metadata in
outdated()
(#1098). - In
make()
, avoid checking for nonexistent metadata for missing targets. - Reduce logging in
drake_config()
.
- Write a complete project structure in
use_drake()
(#1097, @lorenzwalthert, @tjmahr). - Add a minor logger note to say how many dynamic sub-targets are registered at a time (#1102, @kendonB).
- Handle dependencies that are dynamic targets but not declared as such for the current target (#1107).
- Internally, the "layout" data structure is now called the "workflow specification", or "spec" for short. The spec is
drake
's interpretation of the plan. In the plan, all the dependency relationships among targets and files are implicit. In the spec, they are all explicit. We get from the plan to the spec using static code analysis, e.g.analyze_code()
.
Files
ropensci/drake-v7.9.0.zip
Files
(1.4 MB)
Name | Size | Download all |
---|---|---|
md5:97946c0c2501108af147c7c0612bf1c4
|
1.4 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/ropensci/drake/tree/v7.9.0 (URL)