Skip to content

asan: make Additional_repositories reach the dependency install - #6

Merged
ms609 merged 1 commit into
mainfrom
asan-persist-repos
Sep 21, 2026
Merged

ms609 merged 1 commit into
mainfrom
asan-persist-repos

Conversation

@ms609-agent

Copy link
Copy Markdown
Collaborator

asan's "Configure additional repositories" step called options(repos = ...) inside its own Rscript {0} step. The setting ended when that R process exited, so the later pak::local_install_deps() and pak::pkg_install() calls never saw DESCRIPTION's Additional_repositories or the extra-repositories input.

It surfaced on ms609/TreeDist#206: the vignettes leg failed its solve with Can't find package called TreeDistData, a package hosted at https://ms609.github.io/packages/. ConsTree's "pre-install TreeSearch" step works around the same gap.

Fix: append the repositories to the site profile ($R_PROFILE, else R_HOME/etc/Rprofile.site). Every later R process reads it, including pak's install subprocesses. A new "Report repositories" step prints the result. Reading DESCRIPTION with read.dcf() also picks up a multi-line Additional_repositories field, which the old grep missed.

memcheck is unaffected: it passes the repos to setup-r, which already persists them.

Validation: ms609/TreeDist#206 temporarily pins ms609/actions/asan@asan-persist-repos with the TreeDistData workaround removed. I'll mark this ready once that vignettes leg passes the dependency install.

🤖 Generated with Claude Code

"Configure additional repositories" set options(repos) inside its own
Rscript step, so the setting died with that process and the later
pak::local_install_deps() / pak::pkg_install() never saw DESCRIPTION's
Additional_repositories or the extra-repositories input. Packages
hosted only there failed the solve ("Can't find package called
TreeDistData" on ms609/TreeDist's vignettes leg), forcing callers to
pre-install them.

Append the repositories to the site profile instead, which every later
R process reads. Reading DESCRIPTION with read.dcf() also picks up a
multi-line Additional_repositories field, which the grep missed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ms609-agent
ms609-agent requested a review from ms609 September 21, 2026 08:03
@ms609
ms609 marked this pull request as ready for review September 21, 2026 08:43
@ms609
ms609 merged commit b935ccd into main Sep 21, 2026
@ms609-agent

Copy link
Copy Markdown
Collaborator Author

Validated on ms609/TreeDist#206 in gcc-ASAN run 35575870744, vignettes leg, which pins asan@asan-persist-repos with no TreeDistData pre-install:

  • "Report repositories" lists extra1 = https://ms609.github.io/packages/.
  • pak resolves TreeDistData 1.1.0 [bld] from that repo. Before the fix the same leg failed with Can't find package called TreeDistData.
  • All 9 TreeDist articles build under ASan/UBSan, with no sanitizer reports.

The tests and examples legs also pass on this branch. Once this merges, ms609/TreeDist#206 will switch back to @main.

ms609 pushed a commit to ms609/TreeDist that referenced this pull request Sep 21, 2026
ms609/actions#6 (Additional_repositories now reach the dependency
install) is merged, so drop the validation pin. Validated on run
35575870744: TreeDistData resolved from the ms609 repo and all nine
articles built under ASan/UBSan with no reports.

Each leg runs for up to an hour, and on pull requests every push
re-triggers all three. Per-leg concurrency cancels the stale runs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ms609-agent added a commit to ms609/TreeDist that referenced this pull request Sep 21, 2026
Adopt the ms609/actions CI model used by Coreset, TreeTools, ConsTree and TreeSearch, and fix gcc-ASAN, which had failed on every main commit since 2026-09-11 and so ran no sanitizer check in that time.

- gcc-ASAN: ms609/actions/asan@main in the r-hub gcc-asan container, with per-leg concurrency. Rogue is excluded (Rfast source build). Tests, examples and vignettes all run clean under ASan/UBSan. Needed ms609/actions#6 so Additional_repositories reach the install.
- R-CMD-check: Coreset's waves. codemeta (update-codemeta, replacing codemeta.yml) -> arm sense-check -> core (Windows + codecov, R 4.1, devel) and benchmark -> full (ubuntu release, macOS x2) and a per-dependency-type revdepcheck. Per-leg concurrency, job timeouts and apt timeouts. Push triggers are limited to main/master.
- Benchmark: four alternating passes with Coreset's _compare_results.R, installed from the PR checkout. DESCRIPTION gains Config/Needs/benchmark.
- macOS: dependencies are installed without pak, because pak cannot extract CRAN's zstd binaries. The install pins CRAN because P3M's macOS TreeDist binaries are built with OpenMP but don't link libomp.
- Least-privilege permissions on every workflow. Arm runners for memcheck, update-csl and copilot-setup-steps. pkgdown gets a dev/ redirect after release. RcppDeepState uses checkout@v6 and also runs on PRs.
- test-tree_distance_spr.R no longer requires TBRDist, which is in Suggests only.
- codemeta.json is regenerated with the update-codemeta generator.

Co-authored-by: ms609-agent <313734811+ms609-agent@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants