diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 4705d5a..ca02cfe 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -42,6 +42,16 @@ jobs: http-user-agent: ${{ matrix.config.http-user-agent }} 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. + # repos= must be a real source repo: RSPM serves prebuilt Linux binaries via + # source-style URLs, so type="source" against RSPM does NOT recompile. + - name: Source-build stringfish (RcppParallel oneTBB ABI skew) + run: >- + Rscript -e 'install.packages(c("RcppParallel", "stringfish"), type = "source", + repos = "https://cloud.r-project.org")' + - uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2 with: extra-packages: | @@ -49,6 +59,16 @@ jobs: any::testthat needs: check + # 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 '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 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..ee046af 100644 --- a/.github/workflows/test-fast.yaml +++ b/.github/workflows/test-fast.yaml @@ -20,11 +20,31 @@ jobs: with: 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. + # repos= must be a real source repo: RSPM serves prebuilt Linux binaries via + # source-style URLs, so type="source" against RSPM does NOT recompile. + - name: Source-build stringfish (RcppParallel oneTBB ABI skew) + run: >- + Rscript -e 'install.packages(c("RcppParallel", "stringfish"), type = "source", + repos = "https://cloud.r-project.org")' + - uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2 with: extra-packages: any::testthat needs: check + # 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 '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: 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..407a8fa 100644 --- a/.github/workflows/test-suite.yaml +++ b/.github/workflows/test-suite.yaml @@ -36,11 +36,31 @@ jobs: with: 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. + # repos= must be a real source repo: RSPM serves prebuilt Linux binaries via + # source-style URLs, so type="source" against RSPM does NOT recompile. + - name: Source-build stringfish (RcppParallel oneTBB ABI skew) + run: >- + Rscript -e 'install.packages(c("RcppParallel", "stringfish"), type = "source", + repos = "https://cloud.r-project.org")' + - uses: r-lib/actions/setup-r-dependencies@6f6e5bc62fba3a704f74e7ad7ef7676c5c6a2590 # v2 with: extra-packages: any::testthat needs: check + # 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 '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: Install kaefa package run: R CMD INSTALL .