v2.8.0 Phase 0: dependency modernization + roxygen2 8.x + CI badges#79
Merged
Conversation
Plans live in dev/plans/ (tracked, excluded from CRAN tarball via ^dev$, mirrors the ^memory$ precedent). docs/ stays reserved for pkgdown render output. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Underline is now 36 = chars, equal to the title "ggRandomForests v2.8.0 (development)" (36), following the file convention where every release heading underlines to its own title length (e.g. v2.7.3 = 22/22). The plan's Step 3 spec block and its length note are corrected to 36 to keep plan and deliverable from drifting. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Execution surfaced two gaps in Task 1: (1) the dependency list only enumerated new/changed deps + tooling, not the full declared Imports/Suggests closure a fresh R env needs for an as-cran 0/0/0 gate (e.g. patchwork); (2) roxygen2 >= 8.0.0 migrates RoxygenNote -> Config/roxygen2/version on document(), churning unrelated metadata. Plan now requires the full closure and pins roxygen2 to the committed RoxygenNote value; Task 6 stops if the migration appears. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The plan's Task 4 spec carried the broken `^R\b` regex (backspace, not word boundary), the fragile `../../DESCRIPTION` path, and an incomplete skip set. Code review caught these in the deliverable; sync the plan block to the approved test so the canonical plan and the four component plans do not reintroduce the bug. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ph, callr Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…Phase 1) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
varPro is declared in Suggests for Phase 0 (no varPro:: code yet; Imports would NOTE under R CMD check and break the 0/0/0 gate). NEWS bullet, plan Goal/Task 5 block/commit msg/self-review, and a new authoritative cross-plan decision note are synced; Phase 1 promotes varPro Suggests->Imports with the first varPro:: call. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace bare rfsrc()/randomForest()/partial()/get.partial.plot.data() calls in @examples blocks with fully-qualified forms (randomForestSRC:: and randomForest::) so examples resolve without package attachment after Task 5 moved these packages from Depends: to Imports:. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eness gate run_examples side-effects a top-level Rplots.pdf; ignore it so later check/example tasks keep a clean tree. Plan Task 7 now states the rfsrc/randomForest grep is a seed list and devtools::run_examples() is the authoritative completeness gate (execution surfaced bare partial()/get.partial.plot.data() the grep missed). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
v2.8.0 Phase 0: create tests/testthat/setup.R to attach survival, randomForestSRC, and randomForest to the testthat session. Tests used bare Surv()/rfsrc()/randomForest() calls which resolved only because Depends: attached those packages; after the Depends→Imports migration the setup file provides the equivalent test-session attachment without weakening the package's own namespace-qualified code. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Task 8 surfaced that skip_if_not_installed("ggRandomForests")
does not skip under devtools::test() (load_all makes
requireNamespace succeed) -> spurious FAIL. Plan Task 4 block now
uses skip_if_not(installed.packages() membership); Task 8 Step 4
expectation corrected (test2 SKIPs outside R CMD check; clean-
session proof deferred to Task 10).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fix test_namespace_hygiene.R test 1 DESCRIPTION path under R CMD check: use system.file() first (resolves inside installed package), falling back to the relative path for devtools::test() / pkgload context. This makes the guard robust in both environments and eliminates the 1 error that blocked the as-CRAN gate. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Code review (APPROVED w/ minor) asked for a comment explaining why test 1 tries system.file() then falls back to test_path(): the test_path-only form does not resolve under R CMD check. Plan Task 4 block synced to the final guard form so the Phase 1-3 component plans inherit the R-CMD-check-robust version. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Final holistic review: NEWS bullet omitted callr (added to Suggests in Task 5 for the namespace-hygiene guard) — corrected to "igraph, callr, and varPro". Plan now records Phase 1 follow-ups (varPro Suggests->Imports, full test-body qualification incl. test_gg_vimp.R:82, setup.R reduction). None are Phase 0 blockers; as-cran gate is 0/0/0. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Upgrades roxygen2 from 7.3.3 to 8.0.0. Migrates DESCRIPTION field from RoxygenNote: 7.3.3 to Config/roxygen2/version: 8.0.0 per roxygen2 8.x standard. NAMESPACE and man/*.Rd output is semantically identical. R CMD check --as-cran remains 0/0/0; tests remain FAIL 0 | PASS 678. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds lint and pkgdown workflow status badges to README.md, grouped with the existing R-CMD-check CI badge between R-CMD-check and Codecov lines. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- roxygen2 toolchain note (authoritative): branch upgraded to 8.0.0 at user request; Config/roxygen2/version committed; component plans use roxygen2 >= 8.0.0, do NOT re-pin 7.3.3. Task 1 Step 3 / Task 6 pin guidance annotated as superseded. - Phase 1 follow-up #2 updated: test_gg_vimp.R:82 already qualified in 618bf9b; Phase 1 audits remaining test bodies only. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The doc-toolchain bump belongs in the 2.8.0 cycle: a minor-version boundary is the correct release point for disruptive non-functional toolchain changes; deferring lets them creep into a later patch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #79 +/- ##
=======================================
Coverage 84.18% 84.18%
=======================================
Files 32 32
Lines 2403 2403
=======================================
Hits 2023 2023
Misses 380 380
🚀 New features to boost your workflow:
|
Fixes a pre-existing pkgdown CI failure on main (red since 2026-05-12, the v2.7.3 PR #75 added print.gg/summary.gg Rd topics without indexing them). check_missing_topics() errored. They are user-facing S3 methods, so indexed under "S3 Methods" alongside autoplot.gg. pkgdown::check_pkgdown(".") -> no problems found. Makes the pkgdown badge added in this PR green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR kicks off the v2.8.0 development cycle by modernizing dependency declarations (Depends → Imports), updating the roxygen2 toolchain metadata, and hardening CI/docs/tests so the package remains CRAN-green while future varPro work is layered on.
Changes:
- Migrate
randomForestSRC/randomForestfromDepends:toImports:and document the resulting attachment breaking change inNEWS.md. - Qualify dependency calls in roxygen
@examples(and regenerated.Rdfiles) so examples run without attached formerDepends. - Add test coverage to prevent regression (new namespace hygiene guard + test setup attachment surface) and add README CI badges.
Reviewed changes
Copilot reviewed 29 out of 39 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
DESCRIPTION |
Version bump; dependency fields; roxygen2 config |
NEWS.md |
Document breaking attachment change |
.Rbuildignore |
Exclude dev/ from builds |
.gitignore |
Ignore top-level Rplots.pdf |
_pkgdown.yml |
Add print.gg / summary.gg reference entries |
README.md |
Add lint and pkgdown badges |
tests/testthat/setup.R |
Attach test dependency surface |
tests/testthat/test_namespace_hygiene.R |
New regression guard for migration |
tests/testthat/test_gg_vimp.R |
Namespace-qualify rfsrc() in test |
R/calc_roc.R |
Qualify example rfsrc() / randomForest() calls |
R/gg_error.R |
Qualify rfsrc() in examples |
R/gg_partial.R |
Qualify rfsrc() in examples |
R/gg_partial_rfsrc.R |
Qualify rfsrc() in examples |
R/gg_rfsrc.R |
Qualify rfsrc() in examples |
R/gg_roc.R |
Qualify rfsrc() in examples |
R/gg_variable.R |
Qualify rfsrc() in examples |
R/gg_vimp.R |
Qualify rfsrc() in examples |
R/plot.gg_error.R |
Qualify rfsrc() in examples |
R/plot.gg_rfsrc.R |
Qualify rfsrc() in examples |
R/plot.gg_roc.R |
Qualify rfsrc() in examples |
R/plot.gg_variable.R |
Qualify rfsrc() in examples |
R/plot.gg_vimp.R |
Qualify rfsrc() in examples |
R/surv_partial.rfsrc.R |
Qualify partial() / plot-data helpers in examples |
man/calc_auc.Rd |
Regenerated docs for qualified examples |
man/calc_roc.rfsrc.Rd |
Regenerated docs for qualified examples |
man/gg_error.Rd |
Regenerated docs for qualified examples |
man/gg_partial.Rd |
Regenerated docs for qualified examples |
man/gg_partial_rfsrc.Rd |
Regenerated docs for qualified examples |
man/gg_rfsrc.rfsrc.Rd |
Regenerated docs for qualified examples |
man/gg_roc.rfsrc.Rd |
Regenerated docs for qualified examples |
man/gg_variable.Rd |
Regenerated docs for qualified examples |
man/gg_vimp.Rd |
Regenerated docs for qualified examples |
man/plot.gg_error.Rd |
Regenerated docs for qualified examples |
man/plot.gg_rfsrc.Rd |
Regenerated docs for qualified examples |
man/plot.gg_roc.Rd |
Regenerated docs for qualified examples |
man/plot.gg_variable.Rd |
Regenerated docs for qualified examples |
man/plot.gg_vimp.Rd |
Regenerated docs for qualified examples |
man/surv_partial.rfsrc.Rd |
Regenerated docs for qualified examples |
dev/plans/2026-05-19-v2.8.0-phase0-dependency-modernization.md |
In-repo execution plan for Phase 0 |
Files not reviewed (9)
- man/calc_auc.Rd: Language not supported
- man/calc_roc.rfsrc.Rd: Language not supported
- man/gg_error.Rd: Language not supported
- man/gg_partial.Rd: Language not supported
- man/gg_partial_rfsrc.Rd: Language not supported
- man/gg_rfsrc.rfsrc.Rd: Language not supported
- man/gg_roc.rfsrc.Rd: Language not supported
- man/gg_variable.Rd: Language not supported
- man/gg_vimp.Rd: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 0 of the v2.8.0 varPro-integration cycle — opens the dev cycle and modernizes the dependency/doc toolchain so Phases 1–3 build on a clean, CRAN-green base.
randomForestSRC/randomForestmovedDepends:→Imports:;igraph,callr,varProadded toSuggests:.library(ggRandomForests)no longer attaches the former Depends — documented as a breaking change for downstream scripts inNEWS.md. (varProis deliberately inSuggests:for Phase 0 — promoted toImports:in Phase 1 with the firstvarPro::call; declaring it inImports:now would NOTE underR CMD check.)2.7.3→2.7.3.9000; newggRandomForests v2.8.0 (development)NEWS section.rfsrc()/randomForest()/partial()/get.partial.plot.data()in@examplesqualified (Pattern Q —randomForestSRC::rfsrc()resolvesSurv()without attachingsurvival).tests/testthat/setup.Rattaches the dependency surface for the suite; newtests/testthat/test_namespace_hygiene.Rregression guard (test 1:Depends:is R-only; test 2: clean-sessioncallrproof thatlibrary(ggRandomForests)does not attachrandomForestSRC/randomForest, gated to run underR CMD check).RoxygenNote:→Config/roxygen2/version: 8.0.0;man/byte-identical after regen) — done here because a minor-version boundary is the right place for doc-toolchain modernization.lintandpkgdownCI status badges.Plan + design-spec amendments tracked in
dev/plans/(Rbuildignored; mirrored to the Obsidian vault). Phase 1 follow-ups recorded in the plan header (varProSuggests:→Imports:; audit remaining bare test-body calls; reducesetup.R).Verification
R CMD check --as-cran: 0 errors | 0 warnings | 0 notes — independently re-run multiple times; identical to the pre-migration baseline.devtools::test(): FAIL 0 | WARN 0 | SKIP 3 | PASS 678 (baseline was PASS 677).R CMD check(installed package loads without attaching the former Depends) — the durable proof the migration took effect.Notes for the reviewer
618bf9b(qualifytest_gg_vimp.R:82) was made by an over-stepping review subagent that misreported it as a "spawn task." The content was independently verified correct and kept; flagged here for transparency.Test plan
R CMD check --as-cranis 0/0/0 on CIlintandpkgdownGitHub Actions badges resolve@examplesqualification + NEWS breaking-change wordingSuggests/Phase-1-promotion decision