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

A control structure to wrangle settings in drake_config() #965

Closed
2 tasks done
wlandau opened this issue Aug 1, 2019 · 5 comments
Closed
2 tasks done

A control structure to wrangle settings in drake_config() #965

wlandau opened this issue Aug 1, 2019 · 5 comments

Comments

@wlandau
Copy link
Member

wlandau commented Aug 1, 2019

Prework

Description

drake_config() currently returns a giant list of everything make() needs to run. We should probably clean this up internally. Lightweight parameters could go into their own "control" object. I generally find control lists at the API level frustrating, but internally they could reduce clutter. Items to include:

- `cache_path`
- `hash_algorithm`
- `parallelism`
- `jobs`
- `jobs_preprocess`
- `lib_loc`
- `seed`
- `timeout`
- `cpu`
- `elapsed`
- `retries`
- `skip_targets`
- `skip_imports`
- `skip_safety_checks`
- `log_progress`
- `lazy_load`
- `session_info`
- `caching`
- `keep_going`
- `memory_strategy`
- `garbage_collection`
- `console_log_file`
- `cache_log_file`
- `lock_envir`
- `recover`
- `recoverable`
- `packages` (maybe)
- `lib_loc` (maybe)
- `prework` (maybe)
- `progress_hashmap` (maybe)
- `template` (maybe)
- `sleep` (maybe)
- `force` (maybe)
@wlandau wlandau changed the title Structure for drake_config() objects A control list to wrangle settings in drake_config() Aug 1, 2019
@wlandau wlandau changed the title A control list to wrangle settings in drake_config() A control structure to wrangle settings in drake_config() Aug 1, 2019
@wlandau
Copy link
Member Author

wlandau commented Sep 13, 2019

Deciding against this.config$control would just be another "God object", too wide and fuzzy in scope. When we group together elements of config, we should be more principled. Elements like cache and logger successfully subsume little flags that are in scope (such as verbose). Let's going as we continue to find good reference classes for internals.

@wlandau
Copy link
Member Author

wlandau commented Dec 16, 2019

Let's define the scope and implement this.

@wlandau
Copy link
Member Author

wlandau commented Dec 16, 2019

config and config$control should get S3 classes.

@wlandau
Copy link
Member Author

wlandau commented Dec 17, 2019

Subsuming into #1117.

@wlandau wlandau closed this as completed Dec 17, 2019
@wlandau wlandau reopened this Mar 18, 2020
@wlandau wlandau mentioned this issue Mar 22, 2020
4 tasks
@wlandau
Copy link
Member Author

wlandau commented Jun 23, 2020

Closing for the same reasons as #1191 (comment).

@wlandau wlandau closed this as completed Jun 23, 2020
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