8  Development Version

The development versions of these packages (Listing 8.1), which include experimental and potentially unstable features, are released extremely frequently to Tingting Zhan’s Github repository. To reproduce all examples in this Quarto book, readers must also install the development versions of the spatstat.* family of packages (Listing 8.2) from spatstat Github repository.

Listing 8.1: Tingting Zhan’s packages
tzhan = c(
  'groupedHyperframe', 'groupedHyperframe.random', 
  'hyper.gam', 'maxEff'
) |>
  sprintf(fmt = 'tingtingzhan/%s')
Listing 8.2: spatstat.* packages (Baddeley and Turner 2005; Baddeley, Rubak, and Turner 2015)
spatstat. = c(
  'spatstat.data', 'spatstat.explore', 'spatstat.geom', 
  'spatstat.linnet', 'spatstat.model', 'spatstat.random',
  'spatstat.sparse', 'spatstat.univar', 'spatstat.utils',
  'spatstat'
)
spatstat = spatstat. |>
  sprintf(fmt = 'spatstat/%s')

Readers should repeat Listing 8.3 until all calls print the message of ℹ No downloads are needed,

Listing 8.3: Review: install development versions of Listing 8.1 and Listing 8.2 via pak::pak() (Csárdi and Hester 2025)
c(spatstat, tzhan) |>
  lapply(FUN = pak::pak, ask = FALSE)

Alternatively, readers should repeat Listing 8.4 until all calls print the message of Skipping install of '_PACKAGE_' from a github remote, the SHA1 (_0000000d_) has not changed since last install,

Listing 8.4: Review: install development versions of Listing 8.1 and Listing 8.2 via remotes::install_github() (Csárdi et al. 2024)
c(spatstat, tzhan) |>
  lapply(FUN = remotes::install_github, upgrade = 'always')

Listing 8.5 tracks of the development versions of the spatstat.* family of packages (Listing 8.2) on Github that are ahead of CRAN. Table 8.1 is refreshed daily.

Listing 8.5: Table: development version of spatstat.* family (Listing 8.2) ahead of CRAN
Code
cran = 'http://cran.r-project.org/web/packages/packages.rds' |>
  url() |> readRDS() |> # ?utils::available.packages does not get Date
  groupedHyperframe::rds2versiondate(pkg = spatstat.)
github = installed.packages(fields = 'Date') |> 
  groupedHyperframe::rds2versiondate(pkg = spatstat.)
merge.data.frame(x = cran, y = github, by = 'Package', suffixes = c(' on CRAN', ' on Github')) |> 
  subset.data.frame(subset = `Version on CRAN` != `Version on Github`) |>
  knitr::kable(
    row.names = FALSE,
    caption = Sys.time() |> format(usetz = TRUE) |> 
      sprintf(fmt = 'Development version of `spatstat.*` family ahead of CRAN (%s)')
  )
Table 8.1: Development version of spatstat.* family ahead of CRAN (2025-12-30 15:19:56 EST)
Package Version on CRAN Version on Github
spatstat.explore 3.6-0 🗓️ 2025-11-22 3.6-0.005 🗓️ 2025-12-26
spatstat.geom 3.6-1 🗓️ 2025-11-20 3.6-1.016 🗓️ 2025-12-30
spatstat.linnet 3.4-0 🗓️ 2025-11-29 3.4-0.014 🗓️ 2025-12-30
spatstat.model 3.5-0 🗓️ 2025-11-28 3.5-0.015 🗓️ 2025-12-22
spatstat.random 3.4-3 🗓️ 2025-11-21 3.4-3.002 🗓️ 2025-12-16
spatstat.univar 3.1-5 🗓️ 2025-11-17 3.1-5.002 🗓️ 2025-12-29
spatstat.utils 3.2-0 🗓️ 2025-09-20 3.2-0.003 🗓️ 2025-12-29
spatstat 3.5-0 🗓️ 2025-12-01 3.5-0.003 🗓️ 2025-12-20