From 23efd3472f468824fd96ca5b663cb23633f3f55a Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 16:30:20 +0900 Subject: [PATCH 1/5] ci: rebuild stringfish from source (RcppParallel oneTBB ABI skew) --- .github/workflows/r.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index cf2e656..a4636b6 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -41,6 +41,12 @@ jobs: extra-packages: any::rcmdcheck needs: check + # ponytail: CRAN/RSPM binary skew — stringfish binaries lag RcppParallel's + # oneTBB update (undefined tbb::internal symbols). Rebuild from source so it + # links the installed RcppParallel. Drop once upstream binaries sync. + - name: Rebuild stringfish from source (RcppParallel ABI skew) + run: Rscript -e 'install.packages("stringfish", type = "source")' + - name: Run R CMD check uses: r-lib/actions/check-r-package@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 with: From e5790d20449ac5b92749186f4262a23c7edf07f9 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 16:35:59 +0900 Subject: [PATCH 2/5] ci: rebuild all RcppParallel-linked packages (qs2 hit the same oneTBB skew) --- .github/workflows/r.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index a4636b6..6f26da4 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -41,11 +41,12 @@ jobs: extra-packages: any::rcmdcheck needs: check - # ponytail: CRAN/RSPM binary skew — stringfish binaries lag RcppParallel's - # oneTBB update (undefined tbb::internal symbols). Rebuild from source so it - # links the installed RcppParallel. Drop once upstream binaries sync. - - name: Rebuild stringfish from source (RcppParallel ABI skew) - run: Rscript -e 'install.packages("stringfish", type = "source")' + # ponytail: CRAN/RSPM binary skew — prebuilt binaries (stringfish, qs2, ...) lag + # RcppParallel's oneTBB update (undefined tbb::internal / tbb::task symbols). + # Rebuild everything LinkingTo RcppParallel from source so it links the installed + # copy. Drop once upstream binaries re-sync. + - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) + run: Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); if (length(bad)) install.packages(bad, type = "source")' - name: Run R CMD check uses: r-lib/actions/check-r-package@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 From 02a366b9577c288e98f89dc23f9de438173d655a Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:02:31 +0900 Subject: [PATCH 3/5] ci: source-build stringfish before dep setup (SimDesign source builds load it); fold long line --- .github/workflows/r.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index 6f26da4..4952498 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -35,6 +35,12 @@ jobs: r-version: release use-public-rspm: true + # ponytail: source-build stringfish BEFORE dependency setup — packages built + # from source during install (e.g. SimDesign) load it at build time and die + # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + - name: Source-build stringfish (RcppParallel oneTBB ABI skew) + run: Rscript -e 'install.packages("stringfish", type = "source")' + - name: Set up R package dependencies uses: r-lib/actions/setup-r-dependencies@d3c5be51b12e724e68f33216ca3c148b66d5f0b6 with: @@ -46,7 +52,9 @@ jobs: # Rebuild everything LinkingTo RcppParallel from source so it links the installed # copy. Drop once upstream binaries re-sync. - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) - run: Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); if (length(bad)) install.packages(bad, type = "source")' + run: >- + Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); + if (length(bad)) install.packages(bad, type = "source")' - name: Run R CMD check uses: r-lib/actions/check-r-package@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 From 1da25b74320cfb533a9c87da11d72e2270f5f910 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:19:46 +0900 Subject: [PATCH 4/5] ci: pass explicit repos (R_PROFILE_USER=/dev/null blanks setup-r repos config) --- .github/workflows/r.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index 4952498..1867ba8 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -38,8 +38,11 @@ jobs: # ponytail: source-build stringfish BEFORE dependency setup — packages built # from source during install (e.g. SimDesign) load it at build time and die # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + # repos= is explicit because R_PROFILE_USER=/dev/null blanks setup-r's repos. - name: Source-build stringfish (RcppParallel oneTBB ABI skew) - run: Rscript -e 'install.packages("stringfish", type = "source")' + run: >- + Rscript -e 'install.packages("stringfish", type = "source", + repos = "https://cloud.r-project.org")' - name: Set up R package dependencies uses: r-lib/actions/setup-r-dependencies@d3c5be51b12e724e68f33216ca3c148b66d5f0b6 @@ -54,7 +57,7 @@ jobs: - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) run: >- Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); - if (length(bad)) install.packages(bad, type = "source")' + if (length(bad)) install.packages(bad, type = "source", repos = "https://cloud.r-project.org")' - name: Run R CMD check uses: r-lib/actions/check-r-package@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 From d8100098f56f6b55ba1f4a0ee524925306b95e95 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 4 Aug 2026 17:24:35 +0900 Subject: [PATCH 5/5] ci: real source rebuilds via CRAN cloud (RSPM serves linux binaries for source URLs); rebuild RcppParallel first --- .github/workflows/r.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index 1867ba8..54eef61 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -38,10 +38,12 @@ jobs: # ponytail: source-build stringfish BEFORE dependency setup — packages built # from source during install (e.g. SimDesign) load it at build time and die # on the broken prebuilt binary (oneTBB ABI skew). Drop with the step below. + # repos= must be a real source repo: RSPM serves prebuilt Linux binaries via + # source-style URLs, so type="source" against RSPM does NOT recompile. # repos= is explicit because R_PROFILE_USER=/dev/null blanks setup-r's repos. - name: Source-build stringfish (RcppParallel oneTBB ABI skew) run: >- - Rscript -e 'install.packages("stringfish", type = "source", + Rscript -e 'install.packages(c("RcppParallel", "stringfish"), type = "source", repos = "https://cloud.r-project.org")' - name: Set up R package dependencies @@ -56,8 +58,9 @@ jobs: # copy. Drop once upstream binaries re-sync. - name: Rebuild RcppParallel-linked packages from source (oneTBB ABI skew) run: >- - Rscript -e 'bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); - if (length(bad)) install.packages(bad, type = "source", repos = "https://cloud.r-project.org")' + Rscript -e 'r <- "https://cloud.r-project.org"; install.packages("RcppParallel", type = "source", repos = r); + bad <- tools::dependsOnPkgs("RcppParallel", dependencies = "LinkingTo"); + if (length(bad)) install.packages(bad, type = "source", repos = r)' - name: Run R CMD check uses: r-lib/actions/check-r-package@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590