Skip to content

Prepare 0.2.0 CRAN resubmission#32

Merged
d-morrison merged 5 commits into
mainfrom
prep-cran-release
May 29, 2026
Merged

Prepare 0.2.0 CRAN resubmission#32
d-morrison merged 5 commits into
mainfrom
prep-cran-release

Conversation

@d-morrison

Copy link
Copy Markdown
Owner

Summary

rwicc was archived from CRAN on 2026-01-30 because it required the archived package pryr (already replaced with lobstr in #11). This PR prepares the 0.2.0 release to restore it, following https://r-pkgs.org/release.html.

  • Bump version 0.1.3.90060.2.0.
  • Finalize NEWS.md under the 0.2.0 heading (lobstr dependency change, graph_omega() + graph_simulated_*() helpers, the graph_S/fit_joint_model/simulate_interval_censoring fixes); dropped dev-tooling entries.
  • Bind the two NSE column names so R CMD check --as-cran drops the "no visible binding" note — now 0 errors / 0 warnings / 1 note (the expected CRAN-incoming/archived note).
  • Use the canonical doi.org form for the paper link in the README.
  • Rewrite cran-comments.md for the resubmission (archival cause/fix + the two expected URL notes).

Local check results

  • rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran")): 0 errors | 0 warnings | 1 note (CRAN-incoming: new submission / previously archived; two README URLs flagged — the Wiley DOI 403 and the CRAN-checks badge 404, both expected and explained in cran-comments).
  • urlchecker::url_check(): only the two expected URLs above.
  • spelling::spell_check_package(): clean.

Remaining (maintainer) steps before submitting to CRAN

  • win-builder (devel + release) and R-hub cross-platform checks (being triggered).
  • devtools::submit_cran() once those return clean.

🤖 Generated with Claude Code

rwicc was archived from CRAN on 2026-01-30 because it required the archived
package 'pryr' (already replaced with 'lobstr' in #11). Prepare the release
to restore it:

- Bump version to 0.2.0.
- Finalize NEWS.md under the 0.2.0 heading (lobstr dependency change, new
  graph_omega()/graph_simulated_* helpers, the graph_S/fit_joint/simulate
  fixes); drop dev-tooling entries.
- Suppress the two remaining R CMD check "no visible binding" notes by
  binding the NSE column names (P(S=s|e,l,r,o,y); years from study start to
  seroconversion). R CMD check --as-cran is now 0 errors / 0 warnings /
  1 note (the expected CRAN-incoming/archived note).
- Use the canonical doi.org form for the paper link in README.
- Rewrite cran-comments.md for the resubmission, explaining the archival
  cause/fix and the two expected URL notes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented May 27, 2026

Copy link
Copy Markdown

Claude finished @d-morrison's task in 2m 6s —— View job


Code Review: PR #32 — Prepare 0.2.0 CRAN resubmission

  • Gather context (changed files, diff)
  • Read all 7 changed files
  • Analyze R code changes
  • Post review feedback

This is a clean, well-scoped release-prep PR. The changes are minimal and purposeful. A few observations:


R/fit_joint_model.R — NSE binding

The binding at line 125 correctly suppresses the R CMD check note:

`P(S=s|e,l,r,o,y)` <- NULL

Minor comment inaccuracy: the comment says "referenced as a bare symbol in the bigglm/glm weight = formula below", but the bigglm call at line 495 uses weight = ~\P(S=s|e,l,r,o,y)`(a tilde formula, not a bare symbol). Only thestats::glm()fallback at line 506 uses it as a bare symbol and triggers the note. The comment could simply sayglminstead ofbigglm/glm` to be precise, but this is trivial. Fix this →


R/simulate_interval_censoring.R — NSE binding

The new `years from study start to seroconversion` <- NULL at line 85 is correct — the column is used as a bare symbol at lines 119, 127, 201, and 218. Properly added to the existing binding block. ✓


README.Rmd + README.md — DOI canonicalization

Both files updated consistently: onlinelibrary.wiley.comdoi.org canonical DOI. The README.md diff (+1/-2) is consistent with regeneration from README.Rmd (the old content was split across two lines; the new content fits on one). ✓


NEWS.md

Heading finalized from (development version) to 0.2.0. Dev-tooling entry (reprexes skill docs) correctly removed — it was never user-facing. Remaining entries are accurate and appropriately detailed. ✓


DESCRIPTION

Version bump 0.1.3.90060.2.0 is correct. No new dependencies. ✓


cran-comments.md

Well-structured resubmission note. Archival cause and fix are clearly stated. The two expected URL notes (Wiley 403, CRAN-checks 404) are pre-explained. Test environments cover win-builder, R-hub, and GHA matrix. ✓


Checklist against custom review criteria

Criterion Status
Statistical/numerical logic unchanged ✓ No behavioral changes
No partial argument matching introduced
New exported functions have full roxygen docs N/A — no new exports
Conforms to .lintr settings ✓ (<- NULL NSE pattern is idiomatic)
No unjustified new imports in DESCRIPTION lobstr already present from #11
Behavior changes come with tests N/A — NSE bindings are check-note suppression only
README.md regenerated from README.Rmd
Version bumped + NEWS entry
CI workflows unchanged

Overall: looks ready for devtools::submit_cran() once win-builder and R-hub results are clean. The one minor comment inaccuracy in fit_joint_model.R is not a blocker.

@codecov

codecov Bot commented May 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
R/fit_joint_model.R 81.41% <100.00%> (+0.06%) ⬆️
R/simulate_interval_censoring.R 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

win-builder's build flagged that the package uses the base pipe |> (R
4.1.0+) while declaring Depends: R (>= 4.0.0), and that LazyData: true is
set without a data/ directory. Bump the R dependency to >= 4.1.0 (noted in
NEWS) and remove LazyData.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented May 27, 2026

Copy link
Copy Markdown

Claude finished @d-morrison's task in 1m 51s —— View job


Code Review: PR #32 — Prepare 0.2.0 CRAN resubmission

  • Gather context (CLAUDE.md, diff, changed files)
  • Read all 7 changed files
  • Analyze R code changes
  • Post review feedback

This is a clean, minimal release-prep PR. Changes are purposeful and well-scoped. One minor comment inaccuracy, no blockers.


R/fit_joint_model.R — NSE binding

The binding at line 125 is correct and necessary. One minor inaccuracy in the comment:

# bind the non-standard column name referenced as a bare symbol in the
# bigglm/glm `weight =` formula below, to avoid an R CMD check
# "no visible binding for global variable" note:
`P(S=s|e,l,r,o,y)` <- NULL

The biglm::bigglm() call at line 495 uses weight = ~\P(S=s|e,l,r,o,y)`— a **tilde formula**, not a bare symbol. Only thestats::glm()fallback at line 506 usesweight = `P(S=s|e,l,r,o,y)`as a bare symbol and triggers the note. The comment should saystats::glmrather thanbigglm/glm`. Trivial, not a blocker. Fix this →


R/simulate_interval_censoring.R — NSE binding

`years from study start to seroconversion` <- NULL at line 85 is correct. The symbol is used as a bare symbol at line 218 (elapsed time = ... - `years from study start to seroconversion`) and in .by string at line 201. Properly appended to the existing binding block. ✓


DESCRIPTION

  • Version bump 0.1.3.90060.2.0
  • R (>= 4.1.0): correct — the base pipe |> (R 4.1+) is used throughout the package ✓
  • LazyData: true removed: correct — there is no data/ directory; this was a spurious field that would generate an R CMD check NOTE ✓
  • No new imports ✓

NEWS.md

Heading finalized from (development version) to 0.2.0. New entry for the R (>= 4.1.0) requirement added. The dev-tooling entry for the reprexes skill docs was correctly dropped (never user-facing). Remaining entries are accurate. ✓


README.Rmd + README.md

Both files updated consistently: onlinelibrary.wiley.com/doi/... → canonical doi.org/10.1111/biom.13472 form. The README.md diff is consistent with knitr regeneration from README.Rmd. ✓


cran-comments.md

Well-structured resubmission note. Archival cause (pryr archived) and fix (lobstr) are clearly stated. The two expected URL notes (Wiley 403, CRAN-checks badge 404) are pre-explained with context. Test environments are comprehensive. ✓


Checklist against custom review criteria

Criterion Status
Statistical / numerical logic unchanged ✓ No behavioral changes
No partial argument matching introduced
New exported functions have full roxygen docs N/A — no new exports
Conforms to lintr style (snake_case, line length, object usage) ✓ (<- NULL NSE pattern is idiomatic)
No unjustified new imports in DESCRIPTION lobstr already present from #11
Behavior changes come with testthat tests N/A — NSE bindings are check-note suppression only
README.md regenerated from README.Rmd
Version bumped + NEWS entry
LazyData field consistent with package structure ✓ (spurious field removed)

Overall: looks ready for devtools::submit_cran() once win-builder and R-hub return clean. The one minor comment inaccuracy in fit_joint_model.R is not a blocker.

win-builder's CRAN-incoming NOTE flags "et"/"al" (from the "Morrison et al.
(2021)" citation in Description) as possibly misspelled; document it as a
known false positive alongside the other expected NOTE items.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented May 27, 2026

Copy link
Copy Markdown

Claude finished @d-morrison's task in 2m 1s —— View job


Code Review: PR #32 — Prepare 0.2.0 CRAN resubmission

  • Gather context (diff, changed files)
  • Read all 7 changed files
  • Analyze R code changes
  • Post review feedback

This is a clean, minimal release-prep PR. The most recent commit adds the "et al." false-positive note to cran-comments.md — that's the only change since the previous two review passes.


cran-comments.md — "et al." spelling note (new in this sync)

The note is correct: inst/WORDLIST already contains both et and al, so spelling::spell_check_package() is clean locally. The cran-comments note accurately explains this as a CRAN incoming-feasibility checker quirk (not a local R CMD check issue). ✓


R/fit_joint_model.R — NSE binding comment (carried over from prior reviews)

Still a minor inaccuracy in the comment at lines 122–124:

# bind the non-standard column name referenced as a bare symbol in the
# bigglm/glm `weight =` formula below, to avoid an R CMD check
# "no visible binding for global variable" note:

biglm::bigglm() at line 495 uses weight = ~\P(S=s|e,l,r,o,y)`— a tilde formula, not a bare symbol. Onlystats::glm()at line 506 usesweight = `P(S=s|e,l,r,o,y)`as a bare symbol and triggers the note. The comment should saystats::glmrather thanbigglm/glm`. Not a blocker. Fix this →


All other changes — confirmed clean

File Change Status
DESCRIPTION 0.1.3.90060.2.0; R >= 4.0.04.1.0; LazyData removed ✓ — base pipe |> used 96× confirms 4.1.0; no data/ directory confirms LazyData removal
NEWS.md Heading finalized; R >= 4.1.0 entry added; dev-tooling entry dropped
R/simulate_interval_censoring.R `years from study start to seroconversion` <- NULL ✓ — bare symbol at line 218 confirms binding is necessary
README.Rmd + README.md onlinelibrary.wiley.comdoi.org canonical form; consistent regeneration
cran-comments.md Archival cause/fix, et al. note, two URL notes, test environments, reverse deps

Overall: ready for devtools::submit_cran() once win-builder and R-hub return clean. The one minor comment inaccuracy in fit_joint_model.R is not a blocker.

@claude

claude Bot commented May 27, 2026

Copy link
Copy Markdown

Claude finished @d-morrison's task in 1m 58s —— View job


Code Review: PR #32 — Prepare 0.2.0 CRAN resubmission

  • Gather context (diff, changed files)
  • Read changed files
  • Analyze changes since last review pass
  • Post review feedback

This sync adds one new commit (84cf2d0 add positai files) on top of the previously reviewed state. All prior findings remain unchanged; one new item to note.


New in this sync: .positai ignore entries

.Rbuildignore and .gitignore both get a ^\.positai$ / .positai entry. Both are correct:

  • .gitignore keeps the Posit AI tool config out of version control. ✓
  • .Rbuildignore keeps it out of the package tarball (necessary even for gitignored files that may be present locally during R CMD build). ✓

Carried from prior reviews: R/fit_joint_model.R comment inaccuracy (non-blocker)

The comment at lines 122–124 says "bigglm/glm weight = formula below", but:

  • biglm::bigglm() at line 495 uses weight = ~\P(S=s|e,l,r,o,y)`` — a tilde formula, not a bare symbol; R CMD CHECK does not flag formula contexts.
  • stats::glm() at line 506 uses weight = \P(S=s|e,l,r,o,y)`` as a bare symbol — this is what triggers the note.

The comment should say stats::glm rather than bigglm/glm. Trivial, not a blocker. Fix this →


All other changes — confirmed clean

File Change Status
DESCRIPTION 0.1.3.90060.2.0; R >= 4.0.04.1.0; LazyData removed
NEWS.md Heading finalized; R >= 4.1.0 entry added; dev-tooling entry dropped
R/fit_joint_model.R `` `P(S=s e,l,r,o,y)` <- NULL `` NSE binding
R/simulate_interval_censoring.R `years from study start to seroconversion` <- NULL ✓ — bare symbol at line 218
README.Rmd + README.md onlinelibrary.wiley.comdoi.org canonical DOI; consistent knitr regen
cran-comments.md Archival cause/fix, "et al." note, two URL notes, test envs, reverse deps

Overall: clean and ready for devtools::submit_cran() once win-builder and R-hub return clean. The comment inaccuracy in fit_joint_model.R is the only open finding and is not a blocker.

@claude

claude Bot commented May 29, 2026

Copy link
Copy Markdown

Claude finished @d-morrison's task in 1m 56s —— View job


Code Review: PR #32 — Prepare 0.2.0 CRAN resubmission

  • Gather context (diff, changed files)
  • Read CLAUDE.md and changed files
  • Analyze new commits since last review
  • Post review feedback

The latest commit (087f740) bumps the version to 0.2.0.9000. One new blocker to flag; all other prior findings unchanged.


DESCRIPTION — version bump to 0.2.0.9000 (new — blocker)

Version: 0.2.0.9000 is a development version (the usethis post-release convention). CRAN requires a release version — no fourth component or .9000 suffix. Running devtools::submit_cran() against this DESCRIPTION will warn or fail:

Version: 0.2.0.9000   ← wrong for a CRAN submission

The standard workflow is:

  1. Submit 0.2.0 to CRAN.
  2. After CRAN acceptance, bump to 0.2.0.9000.

If the submission hasn't happened yet, revert to 0.2.0 before running devtools::submit_cran(). If it already happened and this bump is the post-acceptance follow-up, no action needed — but in that case the PR title/description should say so. Fix this →


NEWS.md — empty (development version) section (related)

After the version bump, NEWS.md now begins:

# rwicc (development version)

# rwicc 0.2.0
[entries]

This empty leading section is the standard usethis::use_dev_version() output — correct if this is the post-release bump, but jarring on a CRAN-submission PR. If reverting to 0.2.0, also remove the empty (development version) heading.


R/fit_joint_model.R — comment inaccuracy (carried from prior reviews, non-blocker)

# bind the non-standard column name referenced as a bare symbol in the
# bigglm/glm `weight =` formula below, to avoid an R CMD check

biglm::bigglm() (line 495) uses weight = ~\P(S=s|e,l,r,o,y)`— a tilde formula, not a bare symbol. Onlystats::glm()(line 506) uses it as a bare symbol and triggers the note. Should saystats::glmrather thanbigglm/glm`. Trivial. Fix this →


All other changes — confirmed clean

File Change Status
.Rbuildignore / .gitignore ^\.positai$ / .positai ignore entries
R/simulate_interval_censoring.R `years from study start to seroconversion` <- NULL
README.Rmd + README.md onlinelibrary.wiley.comdoi.org canonical DOI; consistent regen
cran-comments.md Archival cause/fix, "et al." note, two URL notes, test envs, reverse deps

Overall: one blocker — Version: 0.2.0.9000 should not be what goes to CRAN. If the submission already happened externally, this note is moot; if not, revert to 0.2.0 (and remove the empty NEWS section) before devtools::submit_cran().

@d-morrison d-morrison merged commit 0ba6692 into main May 29, 2026
13 of 14 checks passed
@d-morrison d-morrison deleted the prep-cran-release branch May 29, 2026 16:53
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.

1 participant