docs: drop stale references to the cranlike fork

- explain GITHUB_PAT by bincraft's DESCRIPTION reads from the CRAN mirror
- describe how upload_package_index() builds the index in the README
This commit is contained in:
Patrick Schratz 2026-10-17 14:11:12 +00:00
commit cbe538f351
No known key found for this signature in database
GPG key ID: 62050D5BC68AB6DC
4 changed files with 21 additions and 22 deletions

View file

@ -140,12 +140,11 @@ steps:
from_secret: PGPASS from_secret: PGPASS
REPO_RO_TOKEN: REPO_RO_TOKEN:
from_secret: REPO_RO_TOKEN from_secret: REPO_RO_TOKEN
# uvr resolves bincraft's dependencies through the GitHub API, including # bincraft reads the DESCRIPTION of every new or replaced tarball from
# the pat-s/cranlike@s3 fork. Unauthenticated it is rate limited, and the # the CRAN mirror on raw.githubusercontent.com, and authenticates with
# failure is not loud: uvr warns, falls back to the registry copy of # this token when it is set. A slot whose published index cannot be read
# cranlike, and the index write then dies on `unused argument (built = # is re-read in full, ~25k requests, which the anonymous rate limit would
# built)` because upstream has no such parameter. Intermittent by nature, # cut short.
# since it depends on the rate-limit window.
GITHUB_PAT: GITHUB_PAT:
from_secret: GITHUB_PAT from_secret: GITHUB_PAT
GIT_USER: pat-s GIT_USER: pat-s

View file

@ -141,12 +141,11 @@ steps:
from_secret: PGPASS from_secret: PGPASS
REPO_RO_TOKEN: REPO_RO_TOKEN:
from_secret: REPO_RO_TOKEN from_secret: REPO_RO_TOKEN
# uvr resolves bincraft's dependencies through the GitHub API, including # bincraft reads the DESCRIPTION of every new or replaced tarball from
# the pat-s/cranlike@s3 fork. Unauthenticated it is rate limited, and the # the CRAN mirror on raw.githubusercontent.com, and authenticates with
# failure is not loud: uvr warns, falls back to the registry copy of # this token when it is set. A slot whose published index cannot be read
# cranlike, and the index write then dies on `unused argument (built = # is re-read in full, ~25k requests, which the anonymous rate limit would
# built)` because upstream has no such parameter. Intermittent by nature, # cut short.
# since it depends on the rate-limit window.
GITHUB_PAT: GITHUB_PAT:
from_secret: GITHUB_PAT from_secret: GITHUB_PAT
GIT_USER: pat-s GIT_USER: pat-s

View file

@ -4,8 +4,8 @@
# objects in place, so the slot's index still advertises the old MD5 and, for # objects in place, so the slot's index still advertises the old MD5 and, for
# anything that had been served from source, no Built stamp. Re-indexing from # anything that had been served from source, no Built stamp. Re-indexing from
# inside a shard would mean three concurrent `upload_package_index()` calls on # inside a shard would mean three concurrent `upload_package_index()` calls on
# one prefix: `cranlike::update_PACKAGES()` lists the live bucket, so an early # one prefix: each lists the live bucket, so an early lister that uploads last
# lister that uploads last publishes an index missing its siblings' work. # publishes an index missing its siblings' work.
# #
# So it happens exactly once per slot, here, after every shard has finished. # So it happens exactly once per slot, here, after every shard has finished.
# `runs_on: [success, failure]` keeps that true when a shard fails; only an # `runs_on: [success, failure]` keeps that true when a shard fails; only an
@ -144,12 +144,11 @@ steps:
from_secret: PGPASS from_secret: PGPASS
REPO_RO_TOKEN: REPO_RO_TOKEN:
from_secret: REPO_RO_TOKEN from_secret: REPO_RO_TOKEN
# uvr resolves bincraft's dependencies through the GitHub API, including # bincraft reads the DESCRIPTION of every new or replaced tarball from
# the pat-s/cranlike@s3 fork. Unauthenticated it is rate limited, and the # the CRAN mirror on raw.githubusercontent.com, and authenticates with
# failure is not loud: uvr warns, falls back to the registry copy of # this token when it is set. A slot whose published index cannot be read
# cranlike, and the index write then dies on `unused argument (built = # is re-read in full, ~25k requests, which the anonymous rate limit would
# built)` because upstream has no such parameter. Intermittent by nature, # cut short.
# since it depends on the rate-limit window.
GITHUB_PAT: GITHUB_PAT:
from_secret: GITHUB_PAT from_secret: GITHUB_PAT
GIT_USER: pat-s GIT_USER: pat-s

View file

@ -103,11 +103,13 @@ Preview the selection without building or accessing storage or build metadata:
### Creating/Updating the PACKAGES Index Files ### Creating/Updating the PACKAGES Index Files
Currently, the {cranlike} and {desc} packages only work with files on a local file system. Tools such as `tools::write_PACKAGES()` and {cranlike} only index files on a local file system.
This is infeasible if the goal is to store binaries in S3. This is infeasible if the goal is to store binaries in S3.
Storing binaries permanently on a disk-based file system would incur significantly higher costs, especially when operating in the cloud. Storing binaries permanently on a disk-based file system would incur significantly higher costs, especially when operating in the cloud.
Hence, [{cranlike}](https://devxy.gitlab.io/r-package-binaries/bincraft/) and [{desc}](https://github.com/pat-s/desc/tree/description-from-remote) were forked to handle files in S3 (through {s3fs}). Hence, `bincraft::upload_package_index()` builds the index from a listing of the slot in S3 (through {s3fs}).
Each record is read from the package's CRAN `DESCRIPTION` on the GitHub mirror of CRAN, falling back to the `DESCRIPTION` inside the tarball for a package the mirror does not have.
The previously published `PACKAGES.rds` serves as a cache, so only new or replaced tarballs are read.
### Resources ### Resources