fix(build): build packages requiring newer R on compatible minors
This commit is contained in:
parent
d80d3e814e
commit
2861d50446
1 changed files with 256 additions and 0 deletions
17
README.md
17
README.md
|
|
@ -84,6 +84,23 @@ This elastic server architecture offers a robust and performant backend while mi
|
|||
|
||||
## Technical Details
|
||||
|
||||
### Packages requiring a newer R
|
||||
|
||||
The daily update and weekly full-build pipelines run `local/build-newer-r.R` under each non-primary installed R, alongside the ABI-sensitive pass.
|
||||
It selects current CRAN versions whose `Depends: R` constraints cannot be met by the slot's primary R but can be met by the running R, including incompatibility inherited through `Depends`, `Imports`, and `LinkingTo`.
|
||||
These builds retain bincraft's ABI classification and storage routing: sensitive binaries use the running minor, while safe binaries can be shared.
|
||||
No shared S3 existence cache is passed, so bincraft checks the actual objects and distinguishes a source fallback from a binary.
|
||||
The pass reads unfiltered CRAN metadata independently of the weekly snapshot and its primary-R failure exclusions; existing binaries and failures for the running minor retain bincraft's usual skip behavior.
|
||||
Weekly workers split this extra work across their existing shards.
|
||||
This does not select older archive versions for unsupported R minors or change index filtering.
|
||||
|
||||
Preview the selection without building or accessing storage or build metadata:
|
||||
|
||||
```sh
|
||||
# Run with the target R and supply the slot's full primary R version.
|
||||
/opt/R/4.6.0/bin/Rscript local/build-newer-r.R 4.4.3 --dry-run
|
||||
```
|
||||
|
||||
### Creating/Updating the PACKAGES Index Files
|
||||
|
||||
Currently, the {cranlike} and {desc} packages only work with files on a local file system.
|
||||
|
|
|
|||
Loading…
Reference in a new issue