--- title: "Upgrading to v3" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Upgrading to v3} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", message = FALSE, warning = FALSE ) ``` Version 3.0.0 introduces several breaking changes focused on modernizing the package architecture and future-proofing the series identifiers. This guide helps you migrate from v2.x to v3.0.0. ## Bundled datasets removed **What changed:** The `cup_series`, `xfinity_series`, and `truck_series` datasets are no longer bundled with the package. All data is now served from Cloudflare R2. **Before (v2.x):** ```{r, eval = FALSE} data("cup_series") data("xfinity_series") data("truck_series") ``` **After (v3.0.0):** ```{r, eval = FALSE} cup <- load_series("cup") nxs <- load_series("nxs") truck <- load_series("truck") ``` **Why:** Bundling large datasets in the package made installation slow and increased package size. Serving data from R2 with local caching provides faster updates and smaller package downloads. ## Series identifier: "xfinity" renamed to "nxs" **What changed:** The second-tier series identifier changed from `"xfinity"` to `"nxs"`. **Before (v2.x):** ```{r, eval = FALSE} xfinity <- load_series("xfinity") get_driver_info("bell", series = "xfinity") ``` **After (v3.0.0):** ```{r, eval = FALSE} nxs <- load_series("nxs") get_driver_info("bell", series = "nxs") ``` **Why:** The second-tier NASCAR series has changed title sponsors four times: Busch (1984-2007), Nationwide (2008-2014), Xfinity (2015-2025), and O'Reilly Auto Parts (2026-present). "NXS" is NASCAR's own sponsor-neutral abbreviation for the series, so it will never go stale with future sponsor changes. **Note:** The `Series` column in returned data now shows `"NXS"` instead of `"Xfinity"`. Update any code that filters on `Series == "Xfinity"`. ## arrow package now required **What changed:** The `arrow` package moved from Suggests to Imports. It is now a required dependency. **Why:** All data is stored as Parquet files on R2. The `arrow` package is required to read this data efficiently. **Action required:** None. The `arrow` package will be installed automatically when you install nascaR.data v3.0.0. ## Caching **How it works:** 1. **First call in a session:** Downloads data from R2 and caches in memory 2. **Subsequent calls in same session:** Instant retrieval from memory cache 3. **New R session:** Downloads fresh data from R2 automatically Each new R session fetches the latest data, so you always have up-to-date race results without any manual intervention. **Managing the cache:** ```{r, eval = FALSE} # Force fresh download within a session cup <- load_series("cup", refresh = TRUE) # Reset the in-memory cache clear_cache() ``` ## find_*() functions removed **What changed:** `find_driver()`, `find_team()`, and `find_manufacturer()` have been removed. **Before (v2.x):** ```{r, eval = FALSE} find_driver("bell") get_driver_info("Christopher Bell") ``` **After (v3.0.0):** ```{r, eval = FALSE} # Just use get_*_info() directly get_driver_info("bell") ``` **Why:** The `get_*_info()` functions already include fuzzy matching and return actual data. The `find_*()` functions were redundant. ## Summary of required changes | v2.x | v3.0.0 | |------|--------| | `data("cup_series")` | `load_series("cup")` | | `data("xfinity_series")` | `load_series("nxs")` | | `data("truck_series")` | `load_series("truck")` | | `series = "xfinity"` | `series = "nxs"` | | `find_driver("bell")` | `get_driver_info("bell")` | | `find_team("gibbs")` | `get_team_info("gibbs")` | | `find_manufacturer("toyota")` | `get_manufacturer_info("toyota")` | | `Series == "Xfinity"` | `Series == "NXS"` | ## Data unchanged The underlying race data is unchanged. Only the delivery mechanism and series identifier have been updated. All historical results remain available: + Cup Series: 1949-present + NXS: 1982-present + Truck Series: 1995-present