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

Wishlist for drake version 8 #919

Closed
2 of 17 tasks
wlandau opened this issue Jun 22, 2019 · 1 comment
Closed
2 of 17 tasks

Wishlist for drake version 8 #919

wlandau opened this issue Jun 22, 2019 · 1 comment

Comments

@wlandau
Copy link
Member

wlandau commented Jun 22, 2019

Prework

Description

These are some breaking changes I want to make in drake but cannot until the next major version. (A major version bump breaks compatibility anyway, which creates a rare and valuable opportunity for change.)

  • Stop tracking namespaced functions, e.g. pkg::fun()**. packrat and renv are categorically superior solutions for package reproducibility.
  • Put all the storr files inside .drake/storr. More robust than what we currently do: define a storr at .drake/ and then put our own files in .drake/ as needed. For example, history could go in .drake/txtq, and we could even move .drake/.gitignore to .drake/storr/.gitignore in order to commit the history without committing the storr.
  • This line in cds_std_dyn_cmd() should not have trace in it.
  • In static map(.data) and cross() transformations, expand targets in the order the grouping variables are listed (not the reverse).
  • Change the default hash algorithm to spookyhash.
  • Use digest::digest2int() instead of integer_hash() in seed_from_basic_types() (much faster).
  • Consider reverting Handle S3 #959. It is brittle and possibly confusing for users.
  • Do not let make() search up through parent directories to find the default .drake/ cache. Only check for a cache in the current working directory.
  • Do not allow custom txtqs for history. Always use the one in the .drake folder.
  • Stop migrating history.
  • Move functions to defunct that have been deprecated for at least a year.
  • Remove functions that have been defunct for at least 2 years.
  • Improve the names of the internal metadata list (returned by diagnose()). For example, in dependency_hash, input_file_hash, and output_file_hash, "hash" should be a prefix, not a suffix. In addition, isfile should be is_file, and missing should be something like missing_before.
  • Revisit Use a faster alternative to proc.time() #1078. With a release that permits breaking changes, we can drop system and user times, which allows us to more easily replace proc.time() with something faster.
  • Use a true database instead of a message queue (txtq) for history, re Option to disable the lockfile wlandau/txtq#18 (comment).
@wlandau
Copy link
Member Author

wlandau commented Jul 28, 2019

I am not sure if or when version 8 will come out. I am always hard at work on drake, but for a major version bump, there needs to be a major impetus. For example, the breakthrough speed gains in version 7 needed to come with breaking changes. In the meantime, we know this issue exists, and we can add to it over the course of development.

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