You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The R community has high standards for the back compatibility of new versions of packages. So whenever I can, I try to ensure that new releases of drake do not invalidate targets in old projects (i.e. cause them to build from scratch on the next make()). But for a variety of reasons, this next version (7.0.0) will cause targets to be outdated. This is a significant short-term inconvenience because drake is designed for projects with large execution times. It pains me to do this, and I apologize. I sincerely hope this does not cause too much friction for you.
Why the next version (7.0.0) will invalidate targets in old projects
I thought about #630 and #633 (which boost speed significantly) all last week, and I realized that back compatibility is not as assured as I claimed in #630 (comment). Because of the way encoded file names are sorted in this part of the code, targets with multiple input files or multiple output files will probably be invalidated too.
I also remembered that file names are case insensitive on Windows. That means we should use base 32 encoding rather than base 64 encoding. It slightly exacerbates richfitz/storr#94 (sorry @kendonB)
What i will do
I will ensure make(force = FALSE) (default) stops early if it is about to run on an old project built with drake <= 6.2.1. The informative error message will recommend that the user either runs the project from scratch with make(force = TRUE) or downgrade back to version 6.2.1.
The text was updated successfully, but these errors were encountered:
wlandau
changed the title
Why I am starting version 7.0.0 and why it will invalidate old targets
Why the next release will be v7.0.0 and why it will invalidate old targets
Jan 2, 2019
First off, an apology
The R community has high standards for the back compatibility of new versions of packages. So whenever I can, I try to ensure that new releases of
drake
do not invalidate targets in old projects (i.e. cause them to build from scratch on the nextmake()
). But for a variety of reasons, this next version (7.0.0) will cause targets to be outdated. This is a significant short-term inconvenience becausedrake
is designed for projects with large execution times. It pains me to do this, and I apologize. I sincerely hope this does not cause too much friction for you.Why the next version (7.0.0) will invalidate targets in old projects
I thought about #630 and #633 (which boost speed significantly) all last week, and I realized that back compatibility is not as assured as I claimed in #630 (comment). Because of the way encoded file names are sorted in this part of the code, targets with multiple input files or multiple output files will probably be invalidated too.
I also remembered that file names are case insensitive on Windows. That means we should use base 32 encoding rather than base 64 encoding. It slightly exacerbates richfitz/storr#94 (sorry @kendonB)
What i will do
I will ensure
make(force = FALSE)
(default) stops early if it is about to run on an old project built withdrake
<= 6.2.1. The informative error message will recommend that the user either runs the project from scratch withmake(force = TRUE)
or downgrade back to version 6.2.1.The text was updated successfully, but these errors were encountered: