Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why the next release will be v7.0.0 and why it will invalidate old targets #640

Closed
wlandau opened this issue Jan 1, 2019 · 0 comments
Closed

Comments

@wlandau
Copy link
Member

wlandau commented Jan 1, 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 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.

@wlandau 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
@wlandau wlandau closed this as completed in 5c23555 Jan 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant