Skip to contents

"A binary exists" is not the same as "the object exists". A package that failed to build has its CRAN source published in the same place by handle_post_build_actions(), and treating that as a binary is what makes the fallback permanent: the build is never retried and the missing-binaries audit never reports it. remote_object_state() tells the two apart, by MD5 for a version CRAN still ships and by exact size for an archived one, at the root and then in Archive/<pkg>/. When neither can be established the object counts as a binary, so an unreadable ETag or an unreachable CRAN cannot trigger an endless rebuild loop.

Usage

check_for_binary(
  package_name,
  s3_endpoint = NULL,
  s3_region = NULL,
  s3_bucket = NULL,
  codename = NULL,
  is_r_minor_sensitive = FALSE,
  arch = NULL,
  version = "latest",
  s3_access_key_id = NULL,
  s3_secret_access_key = NULL
)

Arguments

package_name

(character)
Package name

s3_endpoint

(character)
S3 endpoint

s3_region

(character)
S3 region

s3_bucket

(character)
S3 bucket name

codename

(character)
Linux distribution identifier

is_r_minor_sensitive

(logical)
If TRUE, treats the package to be minor version specific and injects a version identifier into the file path.

arch

(character)
Architecture, "amd64" or "arm64".

version

(character)
Package version, or "latest" for the current CRAN version.

s3_access_key_id

(character)
S3 access key ID

s3_secret_access_key

(character)
S3 secret access key