v0.25.0
chapkit-r-tidyverse base image lands across the CLI, plus a split of the shell-r init template into one-per-image variants that mirror chapkit-images.
Highlights
- New base image:
chapkit-r-tidyverse(#54). chapkit-images now publishes a multi-arch R + tidyverse + Posit forecasting / ML stack (tidyverse,fable,tsibble,feasts,forecast,ranger,xgboost,glmnet,lubridate,janitor, ...). The CLI now knows about it across all three surfaces:chapkit mlproject migrateaccepts--base-image chapkit-r-tidyverseand auto-detects the image when R scripts import any tidyverse-distinctive package and INLA isn't present. Detection now coverslibrary/require/requireNamespace, single or double quotes, and trailing arguments —library(fable),library('fable'),library(fable, quietly = TRUE), andrequireNamespace(\"fable\")all count. Word-boundary anchoring prevents false matches on substrings.chapkit mlproject runprints a docker-run hint that points atchapkit-r-tidyversefor the same heuristic, and now also mirrors migrate on mixed R+Python projects (both pickchapkit-r-inla) and ondocker_envsubstring matching.chapkit initexposes three R templates that mirror chapkit-images:shell-r(plainchapkit-r),shell-r-tidyverse(chapkit-r-tidyverse),shell-r-inla(chapkit-r-inla, amd64-pinned).
- Mixed R + Python projects with tidyverse imports still pick
chapkit-r-inla(only image bundling both runtimes), but migrate now flags the missing tidyverse stack in the rationale so users know to bake it in viainstall_packages.Rorrenv.lock. - Docs sweep —
mlproject-runner.md,mlproject-migrate.md,cli-scaffolding.md,r-quickstart.md,shell-runner-contract.md,mlproject-migration-checklist.md,deploying-to-chap-core.mdall updated for the four-image lineup. The stale claim thatchapkit-r-cliships R+INLA (it's plain R + renv + pak) is corrected.
Breaking changes
chapkit init --template shell-rnow selects plainchapkit-ras the base image instead ofchapkit-r-inla. Use--template shell-r-inlato get the previous behavior. Already-scaffolded projects are unaffected — only newly-init'd projects pick up the new mapping.
Compatibility
- No API surface changes outside the CLI.
- Existing migrated projects continue to work; re-running
chapkit mlproject migratemay pick a different base image now that detection is broader (tidyverse hints route tochapkit-r-tidyverseinstead of plainchapkit-r). Pass--base-image chapkit-rto force the previous image.