Skip to content

Write the agreed release-candidate rules into the roadmap - #90

Merged
JUhalt merged 1 commit into
masterfrom
docs/rc-day-rules
Sep 30, 2026
Merged

JUhalt merged 1 commit into
masterfrom
docs/rc-day-rules

Conversation

@JUhalt

@JUhalt JUhalt commented Sep 29, 2026 •

Copy link
Copy Markdown
Owner

Records the release-candidate rules agreed with nomologR on 2026-09-29 (nomologR#53) in the ROADMAP's v1.0.0 section, with the maintainer's three decisions. ROADMAP only: no code, and no user-facing documentation change.

Maintainer decisions (2026-09-29)

  • Candidate versions: DESCRIPTION 0.99.N for tag v1.0.0-rc.(N+1). So 0.99.0 is rc.1 and 0.99.1 is rc.2, and no two candidates share a version or a fixture name.
  • Compatibility table: the "contentvalidR 1.x writes schema 1, nomologR 1.x reads it" wording is used from the release candidate on. Each README states its own column. Ours notes that schema 1 has been written since 0.4.0 and frozen since 0.7.0.
  • README during a candidate: keep the stable-release line and add one line naming 0.99.N as a release candidate. No pkgdown mode change.

Rules agreed with nomologR

A check of the plan before replying found gaps; nomologR accepted these fixes:

  • Where the fixtures come from.
    • They come from the 0.99.0 commit as it sits on origin/master. A squash merge changes the SHA, so they never come from a PR head.
    • That commit must first have green CI (including --as-cran and pkgdown) and pass the release gate.
    • Merges pause until the tag.
    • The manifest's tag column says "untagged" until the tag exists, rather than naming a future tag.
  • If nomologR's suite fails: its fixture PR merges only after the suite passes. A failure that needs a contentvalidR change restarts step 1 on a new commit.
  • Checking the tag: our tags are annotated, so the check is git ls-remote … 'refs/tags/v1.0.0-rc.1^{}'. A plain rev-parse returns the tag object and looks like a mismatch.
  • Tags and releases: candidate tags are never moved or reused, and never get a GitHub release of any kind, pre-releases and drafts included. R-universe publishes releases.
  • After a tag: only README, ROADMAP, and NEWS prose change, with no .9000 bump. Code, data, and tests wait for the next candidate. nomologR moved its stored walkthrough-handoff update into its pre-tag PR because of this.
  • 1.0.0 day: repeats the cycle, with GitHub releases last.
  • Shared example: nomo_screen(nomo_demo_walkthrough, items = h). Our README shows it without running it. It prints nothing that varies with the version or the date.

Verification

  • tools/release-gate.R on this PR's head (fa6bcde), run in a detached worktree: build, smoke, and check all pass; R CMD check 0 errors, 0 warnings, 0 notes. Two earlier runs failed on the environment, not the change: the intermittent pak "Subprocess is busy" startup error, then github.com URLs timing out (GitHub was answering in 3.5-3.8 s against the 5 s limit). ROADMAP.md is build-ignored.

🤖 Generated with Claude Code

On 2026-09-29 nomologR proposed two details for release-candidate day
(nomologR#53), and a check of the plan found gaps it did not cover. The
v1.0.0 section now records what the two packages agreed and what the
maintainer decided:

- Versions: DESCRIPTION 0.99.N for tag v1.0.0-rc.(N+1), so no two
  candidates share a version or a fixture name (maintainer, 2026-09-29).
  Candidate tags are annotated, never moved or reused, and never get a
  GitHub release of any kind, since R-universe publishes releases.
- Step 1: the 0.99.0 commit is merged, then checked as it sits on
  origin/master (a squash merge changes the SHA): green CI including
  --as-cran and pkgdown, and the release gate. Merges pause until the tag.
  Fixtures come from that commit, recorded as "untagged".
- Step 2: nomologR's fixture PR merges only after its suite passes; a
  failure that needs a contentvalidR change restarts step 1.
- Step 3: tag, then nomologR checks the tag with ls-remote ^{} before
  recording it and tagging.
- Step 4: after a tag, only README, ROADMAP, and NEWS prose change; no
  .9000 bump while a candidate is open; the README keeps its stable-release
  line and adds one release-candidate line (maintainer, 2026-09-29).
- 1.0.0 day repeats the cycle, with GitHub releases last.
- The compatibility table uses the "1.x" wording from the release candidate
  on (maintainer, 2026-09-29), each README stating its own column; the
  shared example is named and prints nothing that varies with the version
  or date.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JUhalt
JUhalt merged commit fdd2dbe into master Sep 30, 2026
8 checks passed
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