diff --git a/NEWS.md b/NEWS.md index a9e3801..61433f2 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,12 @@ # contentvalidR 0.9.0.9000 (development version) +## On CRAN + +* **contentvalidR 0.4.0 was published on CRAN on 2026-09-28.** The README now + gives `install.packages("contentvalidR")` first, carries a CRAN badge, and + explains why CRAN's version can trail the newest release on R-universe: + CRAN asks packages to update no more than every one to two months. + ## Figures for papers, posters, and teaching (in development) No computed value changes. Each new figure draws what the fits and handoffs diff --git a/README.Rmd b/README.Rmd index 72c836d..e69f340 100644 --- a/README.Rmd +++ b/README.Rmd @@ -20,12 +20,14 @@ if (!requireNamespace("contentvalidR", quietly = TRUE)) { # contentvalidR +[![CRAN status](https://www.r-pkg.org/badges/version/contentvalidR)](https://CRAN.R-project.org/package=contentvalidR) [![R-CMD-check](https://github.com/JUhalt/contentvalidR/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/JUhalt/contentvalidR/actions/workflows/R-CMD-check.yaml) [![License: GPL v3 only](https://img.shields.io/badge/License-GPL--3.0--only-blue.svg)](https://github.com/JUhalt/contentvalidR/blob/master/LICENSE.md) [![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html) -**Current stable release: 0.9.0.** +**Current stable release: 0.9.0** (on R-universe; CRAN has 0.4.0, see +[Installation](#installation)). Development plans: [Roadmap](https://github.com/JUhalt/contentvalidR/blob/master/ROADMAP.md) · [Future research](https://github.com/JUhalt/contentvalidR/milestone/3) · [Open issues](https://github.com/JUhalt/contentvalidR/issues). Documentation: [Package website](https://juhalt.github.io/contentvalidR/) · [Changelog](https://juhalt.github.io/contentvalidR/news/index.html). @@ -36,7 +38,15 @@ Documentation: [Package website](https://juhalt.github.io/contentvalidR/) · [Ch ## Installation -Install the current stable release from the JUhalt R-universe: +Install from CRAN: + +```{r installation-cran, eval=FALSE} +install.packages("contentvalidR") +``` + +CRAN is updated less often than GitHub, because it asks packages to update no +more than every one to two months, so its version can trail the newest +release. To install the newest stable release, use the JUhalt R-universe: ```{r installation-stable, eval=FALSE} install.packages( diff --git a/README.md b/README.md index d38e985..0f39a83 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ +[![CRAN +status](https://www.r-pkg.org/badges/version/contentvalidR)](https://CRAN.R-project.org/package=contentvalidR) [![R-CMD-check](https://github.com/JUhalt/contentvalidR/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/JUhalt/contentvalidR/actions/workflows/R-CMD-check.yaml) [![License: GPL v3 only](https://img.shields.io/badge/License-GPL--3.0--only-blue.svg)](https://github.com/JUhalt/contentvalidR/blob/master/LICENSE.md) @@ -12,7 +14,8 @@ only](https://img.shields.io/badge/License-GPL--3.0--only-blue.svg)](https://git experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html) -**Current stable release: 0.9.0.** +**Current stable release: 0.9.0** (on R-universe; CRAN has 0.4.0, see +[Installation](#installation)). Development plans: [Roadmap](https://github.com/JUhalt/contentvalidR/blob/master/ROADMAP.md) @@ -39,7 +42,16 @@ papers. ## Installation -Install the current stable release from the JUhalt R-universe: +Install from CRAN: + +``` r +install.packages("contentvalidR") +``` + +CRAN is updated less often than GitHub, because it asks packages to +update no more than every one to two months, so its version can trail +the newest release. To install the newest stable release, use the JUhalt +R-universe: ``` r install.packages( diff --git a/ROADMAP.md b/ROADMAP.md index 5dd5226..540e8f8 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -781,7 +781,9 @@ tag. ## v1.0.0 - Joint stable release with nomologR (proposed) -**Status:** Proposed by the maintainer on 2026-09-19. Not scheduled. +**Status:** Proposed by the maintainer on 2026-09-19. Release candidate on +2026-10-17, the date the maintainer chose; CRAN submission after that, as the +timeline below explains. **Criteria:** agreed jointly on [nomologR#53](https://github.com/JUhalt/nomologR/issues/53), which is the single list. This section only mirrors it, with this package's progress. @@ -806,12 +808,13 @@ reads no handoffs and takes no part in the joint 1.0. from more than one producer version. The producer shipped in 0.4.0; nomologR's reader ([nomologR#46](https://github.com/JUhalt/nomologR/issues/46), closed) - is tested against stored producer output from contentvalidR 0.6.0 and - 0.7.0. + is tested against stored producer output from contentvalidR 0.6.0 + through 0.9.0. - [x] schema version 1 is frozen and becomes a compatibility promise (0.7.0). - - [ ] both packages are on CRAN. Waiting on CRAN's review of 0.4.0, which - has been in the `newbies` queue since 2026-09-18, and of nomologR - 0.3.0, submitted on 2026-09-26. + - [ ] both packages are on CRAN. contentvalidR 0.4.0 was accepted and + published on 2026-09-28 + ([#14](https://github.com/JUhalt/contentvalidR/issues/14), closed). + Waiting on CRAN's review of nomologR 0.3.0, submitted on 2026-09-26. - [x] both public APIs are stable, under a written deprecation policy, as far as this package goes (0.7.0). `anova_content()`'s `posthoc_pass` column was removed in 0.8.0. `agreement_summary()`, the one function @@ -820,6 +823,21 @@ reads no handoffs and takes no part in the joint 1.0. - [x] there is a joint walkthrough from content review to empirical validation (0.7.0). - [ ] the two releases go out on the same day, each linking the other. +- The timeline, as the maintainer set it on 2026-09-28: + - **Release candidates.** Both packages use one scheme: `DESCRIPTION` says + 0.99.0, and the candidate is a git tag, `v1.0.0-rc.1` (then `rc.2` if + another round is needed). It is a tag only, never a GitHub release, + because R-universe publishes GitHub releases to users. Handoff fixtures + from a candidate are named `handoff--v0.99.0.rds`. + - **2026-10-17, release-candidate day.** `agreement_summary()` is removed, + the version becomes 0.99.0, and `v1.0.0-rc.1` is tagged. Then the round + below runs: the fixture set goes to nomologR, and the compatibility + table, the shared handoff example, and the release notes are drafted. + - **CRAN submission, after that.** CRAN asks for updates to an established + package no more often than every one to two months. So the joint 1.0 goes + to CRAN no sooner than about a month after the later of the two + acceptances (contentvalidR's was 2026-09-28; nomologR's is pending), and + only on the maintainer's go-ahead. Both are released the same day. - The release-candidate checklist, proposed by nomologR and approved by the maintainer on 2026-09-27. It adds to #53's criteria rather than replacing them: