mlr-org / mlr3

mlr3: Machine Learning in R - next generation
https://mlr3.mlr-org.com
GNU Lesser General Public License v3.0
929 stars 86 forks source link

Install all core mlr3 packages in one go, tidyverse-style #545

Closed andreassot10 closed 4 years ago

andreassot10 commented 4 years ago

Hello,

Keeping my mlr3 packages up to date and ensuring that there are no clashes between different mlr3 packages (because one mlr3 package is, for example, expecting to find a more updated version of another mlr3 package) has been a bit of a pain. For example, installing mlr3 may fail if earlier versions of bbotk and paradox are already installed. There is normally a prompt asking the user to update one or all of the outdated packages, but this almost always results in errors for some reason. It is also unclear to me if bbotk also installs mlr3tuning. On my laptop, installing mlr3tuning first and then bbotk updated the former to v0.2.0.9000. By contrast, a colleague installed these two packages in reverse order, and mlr3tuning on their machine was < 0.2.0.

I find it all very confusing and the only approach that has so far worked for me for updating the packages is a pretty radical one: remove all mlr3 packages and re-download them from GitHub in a specific order (e.g. install mlr3tuning before bbotk).

Are there any plans to allow the possibility of installing the most updated versions of all mlr3 core packages in one go, like with tidyverse? For instance, packages dplyr, forcats, purrr and ggplot2, among others can be installed altogether with install.packages('tidyverse'), which can save you from a lot of trouble.

It would also be great if it was made clear what other packages are installed when installing a specific mlr3 package. For example, I understand that mlr3 also installs ml3measures and paradox, among others? It'd be good if that was made clear in the online resources.

Thanks

lebensterben commented 4 years ago

Regarding the dependencies, I'm wondering whether the Imports section in DESCRIPTION would correctly solve the problems, if we enforce stricter requirements on the versions for imports. https://github.com/mlr-org/mlr3/blob/e96e2bdfd264d53cfb3880832cc8aa855f2d45f5/DESCRIPTION#L56-L68

Also, a challenge for the current mlr3 ecosystem is all the components are below version 1.0, which means there's no guarantee of consistent APIs.

mohammadreza-sheykhmousa commented 4 years ago

Got the same question as @andreassot10

mllg commented 4 years ago

There is normally a prompt asking the user to update one or all of the outdated packages, but this almost always results in errors for some reason. It is also unclear to me if bbotk also installs mlr3tuning. On my laptop, installing mlr3tuning first and then bbotk updated the former to v0.2.0.9000. By contrast, a colleague installed these two packages in reverse order, and mlr3tuning on their machine was < 0.2.0.

Seems like at some point you have installed a devel version (suffix -9000). You should really avoid this if possible, package management in R is already hard enough.

I find it all very confusing and the only approach that has so far worked for me for updating the packages is a pretty radical one: remove all mlr3 packages and re-download them from GitHub in a specific order (e.g. install mlr3tuning before bbotk).

If nothing holds you back from also updating other packages, update.packages() should solve your problem.

Are there any plans to allow the possibility of installing the most updated versions of all mlr3 core packages in one go, like with tidyverse? For instance, packages dplyr, forcats, purrr and ggplot2, among others can be installed altogether with install.packages('tidyverse'), which can save you from a lot of trouble.

  1. There already is mlr3verse.
  2. install.packages("mlr3verse") will not update all packages of the mlr3 ecosystem, only if the dependencies are explicitly stated in the DESCRIPTION of mlr3verse (e.g., mlr3learners (>= 0.3)). These version requirements will not be up to date as we are not allowed to update mlr3verse more than once a month or so. Same holds for the tidyverse package.
  3. You can use devtools::update_packages("mlr3verse", dependencies = TRUE) to update all (or at least all imported) mlr3 packages. I'll put this into the FAQ.

It would also be great if it was made clear what other packages are installed when installing a specific mlr3 package. For example, I understand that mlr3 also installs ml3measures and paradox, among others? It'd be good if that was made clear in the online resources.

This is what we have the DESCRIPTION or CRAN page for. All imported packages are installed and are required, all suggested packages are optional.