-
-
Notifications
You must be signed in to change notification settings - Fork 86
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.yml
file with the contents of .travis.yml - Add
TRAVIS_ACCESS_TOKEN
as an env variable to the Travis repo so that mlr3book builds are automatically triggered. To do so, install thetravis
system library, log in withtravis login --org --auto
and 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