Skip to content

Commit ce708cb

Browse files
ehrlingerclaude
andcommitted
Refresh cran-comments.md and rename release checklist for v2.7.1
cran-comments.md: list every fix in this bug-fix release, document the two non-blocking NOTEs from R CMD check --as-cran (CRAN incoming feasibility + future file timestamps), and enumerate the test environments hit so far (local macOS + GH Actions matrix). release-checklist-v2.7.0.md -> release-checklist-v2.7.1.md, fully rewritten for this release. Tracks done-vs-pending across version metadata, NEWS, docs, validation, and the still-pending win-builder / revdep / CI matrix steps. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 570aad7 commit ce708cb

3 files changed

Lines changed: 99 additions & 129 deletions

File tree

cran-comments.md

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,55 @@ This is a bug-fix release. Key changes:
55
* Fix `gg_partial_rfsrc()` for survival forests: `partial.rfsrc()` is now
66
called with `partial.type = "surv"` (default; also accepts `"chf"` /
77
`"mort"`). Without this, a zero-length comparison inside the underlying
8-
C code aborted the call and left the survival-vignette partial-dep chunks
9-
empty.
8+
C code aborted the call and left the survival-vignette partial-dependence
9+
chunks empty.
1010
* Fix `gg_partial_rfsrc()` for multiple `partial.time` values: yhat is
1111
reshaped from the matrix returned by `get.partial.plot.data()` into
1212
long form so each `(x, time)` pair is one row.
1313
* Improve `plot.gg_partial_rfsrc()` survival layout: predictor on the
1414
x-axis with one curve per time point coloured by `Time`, faceted by
15-
variable name.
15+
variable name. Group/colour by full-precision time so distinct horizons
16+
that round to the same display value never collapse.
17+
* `plot.gg_partial_rfsrc()` y-axis label now adapts to `partial.type`
18+
(`"Predicted Survival"` / `"Predicted CHF"` / `"Predicted Mortality"`).
19+
* `plot.gg_vimp()` legend de-duplication: `fill` and `color` aesthetics
20+
share a "VIMP > 0" title so ggplot merges what was previously two
21+
legends.
22+
* `ggrandomforests.news()` now reads `NEWS.md` (the canonical change log
23+
R also exposes via `utils::news()`); removes the stale hand-maintained
24+
`inst/NEWS`.
25+
* Replace U+2212 Unicode minus with ASCII `-` in `calc_roc.R` and
26+
`plot.gg_roc.R` so the PDF manual builds under standard LaTeX.
1627
* New regression test file `test_plot_layer_data.R` uses
1728
`ggplot2::layer_data()` to verify each `plot.gg_*()` method renders
1829
non-empty layers across all forest families, catching empty-figure
1930
regressions without visual inspection.
2031

2132
## R CMD check results
22-
0 errors | 0 warnings | 0 notes
33+
34+
`R CMD check --as-cran` on local R 4.5.3 (macOS aarch64): 0 errors |
35+
0 warnings | 2 NOTEs.
36+
37+
The 2 NOTEs are both informational and not actionable for submission:
38+
39+
* `checking CRAN incoming feasibility ... NOTE` — the standard maintainer
40+
/ tarball-size NOTE that always appears under `--as-cran`.
41+
* `checking for future file timestamps ... NOTE` — "unable to verify
42+
current time", a local NTP-reachability NOTE that does not appear on
43+
CRAN's own check infrastructure.
44+
45+
`urlchecker::url_check()` is clean (0 broken URLs across DESCRIPTION, Rd
46+
files, NEWS.md, README.md, and vignettes).
2347

2448
## Test environments
25-
* local R installation (R 4.5, macOS)
26-
* GitHub Actions: ubuntu-latest (R devel)
27-
* GitHub Actions: ubuntu-latest (R release)
28-
* GitHub Actions: ubuntu-latest (R oldrel-1)
29-
* GitHub Actions: windows-latest (R release)
30-
* GitHub Actions: macos-latest (R release)
49+
50+
* local: R 4.5.3 on macOS Tahoe 26.4.1 (aarch64-apple-darwin20)
51+
* GitHub Actions matrix on commit 570aad7:
52+
* ubuntu-latest (R-devel, R-release, R-oldrel-1)
53+
* windows-latest (R-release)
54+
* macos-latest (R-release)
55+
* `devtools::check_win_devel()` and `check_win_release()` — pending,
56+
results to be appended below before submission.
57+
* `revdepcheck::revdep_check()` — ggRandomForests has no reverse
58+
dependencies on CRAN; running anyway for completeness, results to be
59+
appended below.

release-checklist-v2.7.0.md

Lines changed: 0 additions & 119 deletions
This file was deleted.

release-checklist-v2.7.1.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Release Checklist: ggRandomForests v2.7.1
2+
**Date:** 2026-04-27 | **Maintainer:** John Ehrlinger <john.ehrlinger@gmail.com>
3+
4+
---
5+
6+
## What Changed Since 2.7.0
7+
8+
Bug-fix release. See `NEWS.md` for the user-facing change log.
9+
10+
| Area | Fix |
11+
|------|-----|
12+
| `gg_partial_rfsrc.R` | Pass `partial.type = "surv"` (default) to `partial.rfsrc()` for survival forests; without it the C-level prediction routine aborted on a zero-length comparison and the survival vignette's partial-dependence chunks rendered empty. New `partial.type` argument accepts `"surv"` / `"chf"` / `"mort"`. |
13+
| `gg_partial_rfsrc.R` | Reshape multi-`partial.time` results to long form so each `(x, time)` pair is one row (was crashing on the `time` column assignment when yhat came back as a matrix). |
14+
| `plot.gg_partial.R` | Survival layout: predictor on x-axis, one curve per time point coloured by `Time`. Group/colour by full-precision time so distinct horizons that round to the same display value never collapse. Y-axis label adapts to `partial.type`. |
15+
| `plot.gg_vimp.R` | Merge the duplicate "VIMP > 0" / "positive" legends by sharing a title across both `fill` and `color` aesthetics. |
16+
| `R/ggrandomforests.news.R` | Read `NEWS.md` (the canonical change log) instead of the legacy hand-maintained `inst/NEWS`, which had silently drifted to v2.4.0 across three releases. `inst/NEWS` removed. |
17+
| `R/calc_roc.R`, `R/plot.gg_roc.R` | Replace U+2212 Unicode minus with ASCII `-` so the PDF manual builds under standard LaTeX (CRAN's incoming pipeline). |
18+
| `tests/testthat/test_plot_layer_data.R` | New regression suite using `ggplot2::layer_data()` to verify each `plot.gg_*()` method renders non-empty layers across all forest families; locks in the `partial.type` y-label dispatch and the merged-legend behaviour. |
19+
20+
---
21+
22+
## Pre-Release Checklist
23+
24+
### 1. Version & Metadata
25+
- [x] Bump `Version:` in `DESCRIPTION` from `2.7.0.9001``2.7.1`
26+
- [x] Update `Date:` in `DESCRIPTION` to `2026-04-27`
27+
- [x] Confirm `RoxygenNote:` matches the installed roxygen2 version (`roxygen2::roxygenise()` ran clean)
28+
29+
### 2. NEWS.md
30+
- [x] Add `ggRandomForests v2.7.1` section at the top of `NEWS.md`
31+
- [x] Keep entries user-facing (each bullet says **what was wrong** and **what changed**)
32+
33+
### 3. Documentation
34+
- [x] `roxygen2::roxygenise(".")` ran with zero warnings; all Rd files regenerate cleanly
35+
- [x] Spot-checked the new `plot.gg_partial_rfsrc` and `gg_partial_rfsrc` help pages
36+
37+
### 4. Test Suite
38+
- [x] Full local testthat run: 0 failures / 0 errors / 0 warnings
39+
- [x] New `test_plot_layer_data.R` covers every `plot.gg_*()` method
40+
- [x] New `plot.gg_vimp` legend test uses synthetic data (deterministic across CI platforms)
41+
42+
### 5. Validation
43+
- [x] `R CMD check --as-cran` on macOS R 4.5.3: **0 errors | 0 warnings | 2 NOTEs** (incoming-feasibility + future-timestamps; both informational, neither actionable)
44+
- [x] `urlchecker::url_check()`: 0 broken URLs
45+
- [x] `spelling::spell_check_package()`: only domain-jargon items (rfsrc, VIMP, Ishwaran, etc.); no genuine typos
46+
- [ ] `devtools::check_win_devel()` and `check_win_release()` — submit before tagging
47+
- [ ] `revdepcheck::revdep_check()` — confirm 0 reverse deps still pass (ggRandomForests has none on CRAN, but run for completeness)
48+
- [ ] All GitHub Actions matrix jobs green on the head commit (R-CMD-check standard / release / devel + windows + macos + lint)
49+
50+
### 6. CRAN comments
51+
- [x] Update `cran-comments.md` with the actual environments tested and the disposition of NOTEs
52+
53+
### 7. Tag & Submit
54+
- [ ] `git tag -a v2.7.1 -m "v2.7.1: bug-fix release"` and `git push origin v2.7.1`
55+
- [ ] Upload tarball at https://cran.r-project.org/submit.html (or `devtools::submit_cran()`)
56+
- [ ] Reply to CRAN's confirmation email within 24 h
57+
58+
### 8. After Acceptance
59+
- [ ] Bump `DESCRIPTION` to `2.7.1.9000` and add a `v2.7.2 (in development)` placeholder at the top of `NEWS.md`
60+
- [ ] `pkgdown` site rebuild fires automatically on tag push (existing GH Action) — verify https://ehrlinger.github.io/ggRandomForests/ shows v2.7.1 in the navbar

0 commit comments

Comments
 (0)