Open HenrikBengtsson opened 1 year ago
2023-05-26: Running revdep checks with R_FUTURE_STATE_ONINVALID=error
reveals that civis 3.1.2 [2023-03-31] sets the future state to "cancelled"
in its cancel()
for CivisFuture
, cf. https://github.com/civisanalytics/civis-r/blob/51c2e2270ed52a977ebbba869a69a76f1a7311cc/R/civis_future.R#L160-L163.
The state of a future is stored in the internal
state
field, which takes a character string. Supported values are:"created"
- the future has been created, but not yet not launched"running"
- the future has been launched, and is assumed to be running"finished"
- the future has been successfully evaluated ("resolved"); results may or may not have been collectedIt is to be decided if:
"failed"
- evaluation of the future failed"interrupted"
- evaluation of the future was interruptedshould also be added to the above list. They are really not needed, because they could be inferred if we collect the FutureResults object and inspect that.
In the past, this was mostly specific to the future package, but with the move to a more generic backend solution (e.g. lazy futures are vanilla Future objects until launched, make it possible to relaunch failed Future objects, etc.) we need to tighten this up and standardize it.
state
, to make sure it only takes known values, e.g. by creating a$<-.Future
method. (Added to future 1.32.0 [2023-03-07]).