-
-
Notifications
You must be signed in to change notification settings - Fork 95
Integrating Ecosystem
This page lists all the points necessary when integrating a new mlr3 extension package.
Be convervative with dependencies.
Do not import additional packages for their convenient helper functions.
Everything that can be reasonably solved with base R or data.table() should be solved with R or data.table().
All third-party packages that only required by a not substantial subset of your package should go into Suggests and loaded (not attached!) on-demand via mlr3misc::require_namespaces()/base::requireNamespace().
Also make sure to check out the functions mlr3misc provides.
checkmate comes with a phlethora of expectation functions, and mlr3 implements even more for most objects in mlr3.
The later are shipped with mlr3 (c.f. this directory) and can be sourced with the following line:
lapply(list.files(system.file("testthat", package = "mlr3"), pattern = "^helper.*\\.[rR]$", full.names = TRUE), source)
This should usually be safe to place into inst/testthat/helper.R.
- Add the package to mlr3wiki-Extension packages and describe its purpose
- Add the package to mlr3wiki-CI Status following the semantics of the already listed packages
- Copy the badges from the mlr3 README and adjust the names to the one of the new repo
- (Optional): If the package is being used in the mlr3book, add it also to its DESCRIPTION file
It is easiest to call tic::use_tic() first and then
- Overwrite the created
.travis.ymlfile with the contents of .travis.yml - Add
TRAVIS_ACCESS_TOKENas an env variable to the Travis repo so that mlr3book builds are automatically triggered. To do so, install thetravissystem library, log in withtravis login --org --autoand runtravis token. Store the displayed token as the env variable mentioned above
- Add the repo to the Netlify DNS list using the scheme
<pkg-name.mlr.org.com. You can simply follow the already existing entries. - Set a CNAME file in the Github repo under "Settings -> Github pages" pointing the new custom domain just created via Netlify
- Add the package to mlr3verse so that it will also be installed along with the mlr3 package suite and can be updated easily
- Add it to the DESCRIPTION file
- Add it to https://github.com/mlr-org/mlr3verse/blob/d64a8fe2b0b0dc34d53903d87028ce9a84a89bcd/R/update.R#L77-L81
CI
Roxygen (Documentation)
Style
Misc