## ----eval=FALSE---------------------------------------------------------------
# # No version specifications — CRAN version installed, or nothing if already installed
# Require::Install(c("PredictiveEcology/reproducible@development", "reproducible"))
# 
# # `HEAD` after the GitHub ref forces the tip of the development branch
# Require::Install(c("PredictiveEcology/reproducible@development (HEAD)", "reproducible"))
# 
# # Same: `HEAD` after the package name (of either form) forces the tip
# Require::Install(c("PredictiveEcology/reproducible@development", "reproducible (HEAD)"))
# 
# # No conflict: version requirement is satisfiable by the named branch
# Require::Install(c("PredictiveEcology/reproducible@modsForLargeArchives (>= 2.0.10.9010)",
#                    "PredictiveEcology/reproducible (>= 2.0.10)"))
# 
# # Even if a branch doesn't exist, no error if a later requirement names a different branch
# Require::Install(c("PredictiveEcology/reproducible@modsForLargeArchives (>= 2.0.10.9010)",
#                    "PredictiveEcology/reproducible@validityTest (>= 2.0.9)"))

## ----eval=FALSE---------------------------------------------------------------
# Require::Install(
#   c("PredictiveEcology/reproducible@development (HEAD)",
#     "PredictiveEcology/SpaDES.core@development (>=2.0.5.9004)"))

## ----eval=FALSE---------------------------------------------------------------
# Require(c("data.table (>= 1.16)", "lme4", "PredictiveEcology/SpaDES.core@development"))

## ----eval=FALSE---------------------------------------------------------------
# # Won't work — pak does not parse this
# try(pak::pak("data.table (>= 1.8.0)"))
# 
# # What you have to write instead — pick an exact version yourself
# pak::pak("data.table@1.8.0")

## ----eval=FALSE---------------------------------------------------------------
# Require::Install(c("data.table (>= 1.16)",
#                    "stringfish (<= 0.15.8)",
#                    "qs (== 0.27.3)"))

## ----eval=FALSE,message=TRUE--------------------------------------------------
# # pak: errors out — both branches of LandR are requested
# try(pak::pak(c("PredictiveEcology/LandR@development",
#                "PredictiveEcology/LandR@main")))
# 
# # Require: takes them in order — main wins
# Require::Install(c("PredictiveEcology/LandR@main",
#                    "PredictiveEcology/LandR@development"))
# 
# # Require: takes by version requirement — development wins because it satisfies the constraint
# Require::Install(c("PredictiveEcology/LandR@main",
#                    "PredictiveEcology/LandR@development (>= 1.1.5)"))

## ----eval=FALSE,message=FALSE-------------------------------------------------
# # pak: fails — `knn` is archived
# try(pak::pkg_install("knn"))
# 
# # Require: succeeds — fetches the most recent archived copy
# Require::Install("knn")

