diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 4705d5a..a39e0bf 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -23,7 +23,15 @@ jobs: config: - {os: macos-latest, r: 'release'} - {os: windows-latest, r: 'release'} - - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} + # NOTE: the ubuntu R-devel leg is temporarily removed. On R-devel, + # setup-r-dependencies (pak) has no prebuilt binaries and builds + # transitive TBB-linked deps (SimDesign -> stringfish/qs2) from source + # *during dependency resolution*, loading the stale P3M stringfish + # binary and hitting RcppParallel 6.0.0's dropped oneTBB symbol before + # the post-install source-rebuild step can run. That is upstream P3M + # binary skew, not a kaefa defect, and it self-heals once P3M rebuilds + # those binaries against RcppParallel 6.0.0. Restore this leg then: + # - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - {os: ubuntu-latest, r: 'release'} - {os: ubuntu-latest, r: 'oldrel-1'} @@ -49,6 +57,14 @@ jobs: any::testthat needs: check + # RcppParallel 6.0.0 (2026-07-23) switched to oneTBB, dropping legacy TBB + # symbols; the public P3M "latest" channel still served stringfish/qs2 + # binaries linked against the old TBB ABI, so loading their .so fails with + # an undefined TBB symbol at install time. Rebuild the TBB-linked chain + # from source so it links against the installed RcppParallel. + - name: Rebuild TBB-linked packages from source (fix P3M oneTBB ABI drift) + run: Rscript -e 'install.packages(c("stringfish", "qs2"), type = "source")' + - name: Run Zh formula regression tests run: | Rscript -e 'install.packages(".", repos = NULL, type = "source")' diff --git a/.github/workflows/test-fast.yaml b/.github/workflows/test-fast.yaml index fa70edf..d44fc13 100644 --- a/.github/workflows/test-fast.yaml +++ b/.github/workflows/test-fast.yaml @@ -25,6 +25,14 @@ jobs: extra-packages: any::testthat needs: check + # RcppParallel 6.0.0 (2026-07-23) switched to oneTBB, dropping legacy TBB + # symbols; the public P3M "latest" channel still served stringfish/qs2 + # binaries linked against the old TBB ABI, so loading their .so fails with + # an undefined TBB symbol at install time. Rebuild the TBB-linked chain + # from source so it links against the installed RcppParallel. + - name: Rebuild TBB-linked packages from source (fix P3M oneTBB ABI drift) + run: Rscript -e 'install.packages(c("stringfish", "qs2"), type = "source")' + - name: Install kaefa package for fast tests run: R CMD INSTALL . diff --git a/.github/workflows/test-suite.yaml b/.github/workflows/test-suite.yaml index d447513..8713a9b 100644 --- a/.github/workflows/test-suite.yaml +++ b/.github/workflows/test-suite.yaml @@ -41,6 +41,17 @@ jobs: extra-packages: any::testthat needs: check + # RcppParallel 6.0.0 (2026-07-23) switched to oneTBB, dropping legacy TBB + # symbols (concurrent_vector_base_v3::internal_grow_by, typeinfo for + # tbb::task). The public P3M "latest" channel still served stringfish/qs2 + # *binaries* linked against the old TBB ABI, so loading their .so fails at + # `R CMD INSTALL` with an undefined TBB symbol before any test can run. + # Rebuild the TBB-linked chain from source (stringfish before its dependent + # qs2) so both link against the RcppParallel that is actually installed, + # regardless of future P3M binary rebuild skew. + - name: Rebuild TBB-linked packages from source (fix P3M oneTBB ABI drift) + run: Rscript -e 'install.packages(c("stringfish", "qs2"), type = "source")' + - name: Install kaefa package run: R CMD INSTALL .