HenrikBengtsson / future

:rocket: R package: future: Unified Parallel and Distributed Processing in R for Everyone
https://future.futureverse.org
951 stars 83 forks source link

CLEANUP: Deprecation of multiprocess (since Oct 2020) #546

Closed HenrikBengtsson closed 1 year ago

HenrikBengtsson commented 3 years ago

Packages on CRAN and Bioconductor that use 'multiprocess'

Last updated: 2023-03-21

Currently, multiprocess is defunct, but still exists. When multiprocess is removed in a later version, it will break 3 CRAN packages (and zero Bioconductor packages):

If you see this and are a maintainer of one of the above packages, please replace multiprocess with multisession. The multiprocess backend is defunct as of future 1.32.0 (2023-03-07), i.e. give an error if used.

Additional non-CRAN, non-Bioconductor packages

Completed

Last updated 2023-03-21.

Packages that fail checks because 'multiprocess' is now defunct

future 1.32.0 is on CRAN as of 2023-03-07. This broke 3 CRAN packages and 1 Bioconductor package.

Resolved

Moot, because removed from CRAN or Bioconductor (last updated 2022-06-02)

HenrikBengtsson commented 2 years ago

The next step in deprecating 'multiprocess' could be to make it become the same as 'sequential' regardless of argument workers. This will hopefully lead to more developers to update their code sooner.

zeehio commented 2 years ago

You can remove AlpsNMR from this list, since I backported the deprecation fix to the release branch (and it's released already)

HenrikBengtsson commented 2 years ago

Starting with next release of future (>= 1.28.0-9001), there will be one deprecation warning produced per 'multiprocess' future created. This may be very noisy, but that's on purpose. For example,

> library(future)
> plan(multiprocess)
Warning message:
Strategy 'multiprocess' is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify either 'multisession' (recommended) or 'multicore'. In the current R session, 'multiprocess' equals 'multicore'. 

> y <- future.apply::future_lapply(1:3, FUN = sqrt)
Warning messages:
1: Detected creation of a 'multiprocess' future. Strategy 'multiprocess' is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify either 'multisession' (recommended) or 'multicore'. In the current R session, 'multiprocess' equals 'multicore'. 
2: Detected creation of a 'multiprocess' future. Strategy 'multiprocess' is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify either 'multisession' (recommended) or 'multicore'. In the current R session, 'multiprocess' equals 'multicore'. 
3: Detected creation of a 'multiprocess' future. Strategy 'multiprocess' is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify either 'multisession' (recommended) or 'multicore'. In the current R session, 'multiprocess' equals 'multicore'. 
> 
HenrikBengtsson commented 1 year ago

UPDATE 2023-01-17: Next step is to turn 'multiprocess' into 'sequential' processing; still with those warnings

HenrikBengtsson commented 1 year ago

I've made 'multiprocess' defunct when running interactive mode, while keeping it deprecated in batch mode (e.g. R CMD check) for a tad longer;

HenrikBengtsson commented 1 year ago

I've decided to make multiprocess defunct in the next release, which I'll submit to CRAN today or tomorrow.

HenrikBengtsson commented 1 year ago

future 1.32.0 is on CRAN, where 'multiprocess' is now defunct. The next step will be to remove multiprocess from the API. When multiprocess is removed in a later version, it will break 3 CRAN packages (and zero Bioconductor packages):

I'm gonna close this issue and deal with the above at a later time.