Thanks for helping. sdvmodels is a data package: it re-packages the fitted models that the sportsdataverse-py pipeline trains and publishes, so most changes are either a new bundle or a fix to how the bundle is packaged and documented.
Filing an issue
-
A model will not load, an object is missing, or install fails: use the Bug report template, with a minimal reprex and
sessionInfo(). - A model’s predictions look wrong: that is the training pipeline; open the issue in sportsdataverse-py.
- A model or table sdvmodels should ship: use the Model request template.
Development setup
install.packages(c("devtools", "roxygen2", "testthat", "pkgdown", "arrow", "jsonlite", "usethis"))
devtools::load_all()
devtools::test()
devtools::document()
devtools::check()Updating the models
gh release download cfb_model_artifacts --repo sportsdataverse/sportsdataverse-data --dir data-raw/artifacts --clobber
Rscript -e 'source("data-raw/MODELS.R")'
Rscript -e 'devtools::document(); devtools::test()'Every cfb_*_model must stay the raw UBJ byte vector of the released file (readBin, never re-serialised by the local xgboost), so it is byte-identical to what sportsdataverse-py scores with. Parquet-derived tables must be materialised before saving; see CLAUDE.md for why.
The logo and the site
- The hex logo, favicons and social card are drawn by
data-raw/hex-logo/(npm install && npm run build); never edit the PNGs by hand. - The pkgdown site deploys from
mainto thegh-pagesbranch through.github/workflows/pkgdown.yaml. Preview locally withpkgdown::build_site().
Commits and pull requests
- Use Conventional Commits (
data:,feat:,fix:,docs:,test:,chore:,ci:). - One logical change per commit, on a branch, through a pull request.
- Never list AI tools as co-authors; the human author is the sole contributor of record.
Code of conduct
This project follows the Contributor Covenant. By participating you agree to abide by its terms.