Skip to content

fledge: CRAN release v2.3.4 - #2912

Open
krlmlr wants to merge 19 commits into
mainfrom
cran-2.3.4
Open

krlmlr wants to merge 19 commits into
mainfrom
cran-2.3.4

Conversation

@krlmlr

@krlmlr krlmlr commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

This PR was prepared with Claude Code.

Hotfix release igraph 2.3.4, branched from v2.3.3, the version on CRAN. Release checklist: #2909.

Changes for CRAN

  • structure() calls use dim, dimnames and names instead of the special names that R-devel deprecates (NOTE on all r-devel flavors).
  • The documentation of %>% gets a \usage section (Rd contents NOTE on the Debian r-devel flavors).
  • The layout_with_mds() stress test is skipped with BLIS, where DSYEVR fails to converge. The failure is reproduced in the C core in test: Reproduce BLIS failure seen on CRAN igraph#2933.
  • Version 2.3.4, NEWS and cran-comments.md.

CI on the release branch

Status

  • rcc: all jobs green on 241125d. rcc dev: all 22 jobs green. Sanitizer (R-CMD-check-extra): green.
  • release-gate: hard gates pass. The docs check reports 303 help pages without \value (report only). The --as-cran check with incoming checks gave 1 NOTE for a URL that timed out from the runner; the site is up.
  • R-hub rchk, gcc-asan, clang-asan and valgrind have failed since the first push. The C core is unchanged from 2.3.3, and CRAN reports no sanitizer issues for 2.3.3.
  • win-builder: uploaded to R-devel, results by mail.

Merging

Do not merge main into this branch before CRAN has accepted 2.3.4, because the branch must stay 2.3.3 plus the hotfix. The PR conflicts with main in 22 files: DESCRIPTION, NEWS.md, CITATION.cff, Rd files regenerated on both sides, tests/testthat/test-other.R, and a few CI files. After acceptance, resolve them by merging main into this branch, keeping main's version and development NEWS on top of the 2.3.4 section. Merging then brings the BLIS skip and the \usage fix to main.

  • By submitting this pull request, I assign the copyright of my contribution to The igraph development team.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3

claude and others added 18 commits September 27, 2026 05:53
With BLIS as the BLAS, LAPACK's DSYEVR fails to converge
for some of the random graphs in the stress test,
which is CRAN's BLIS check failure at test-layout.R:284.
The failure is in the C core, skip until it is fixed there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014YgF3fcQBVMa9jWVJ7tg3A
R-devel flags the special names `.Dim`, `.Dimnames` and `.Names` as deprecated in `structure()`.
The replacements set the same attributes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
R-devel's Rd checks note that `pipe.Rd` documents `\arguments` without a `\usage` section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
The workflows of the release branch are several template generations behind.
Take `.github/` verbatim from `main`, where the shared steps are served by the actions of cynkra/cynkratemplate,
and ignore the `.build/` and `.ccache/` directories these actions use, as `main` does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
Add the NEWS entry for the hotfix release and update the CRAN comments.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
Take `R-CMD-check.yaml` from `main`, which now re-renders the README and computes coverage in the smoke test.
Take the custom actions and workflows that #2910 restores after the template sync deleted them:
GLPK on macOS, `_R_CHECK_PKG_SIZES_=FALSE`, the sanitizer, CITATION.cff updates, touchstone and each-rcc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
`tools/generate-migrations.R` does not exist on release branches cut from a tag that predates the registry,
and the step then failed every job that runs the after-install action.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
Port the `Config/gha/extra-packages` pin from `main`.
Without it, pak cannot resolve the dependencies on the R 4.2 and R 4.3 jobs,
because the matching Bioconductor releases of graph are archived.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
The install action writes the ccache wrappers and `MAKEFLAGS` to `~/.R/Makevars`,
and `tee` without `-a` replaced them with the GLPK flags on macOS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
Build the source package in CI and upload it to the win-builder queues chosen when the workflow is run by hand, R-devel by default.
A push to a `cran-*` branch uploads only when the workflow file changes, because every upload mails the maintainer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
Submit with coatless-actions/cran-submission, pinned to v1.0.3, only when run by hand with the input `confirmation` set to CONFIRM.
The push trigger only makes the workflow runnable from a `cran-*` branch, its job is skipped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
Run the release checks proposed in cynkra/cynkratemplate#147 on every push to a `cran-*` branch, using the actions of BristolMyersSquibb/blockr.ci pinned to the commit the issue links to.
The hard gates fail the job, the documentation checks report only, because igraph lacks `\value` in about 300 help pages, and the soft checks never fail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
An empty `extra-packages` input made the install action pass an empty package reference to pak, which stopped with "Cannot parse package".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
igraph/igraph#2933 reproduces the DSYEVR convergence failure of `layout_with_mds()` with BLIS in the C core.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
coatless-actions/cran-submission does not create tags.
After a successful upload, a separate job with `contents: write` tags the submitted commit as `v<version>`,
with the NEWS.md section of that version as the message, in the format fledge uses.
An existing tag is not overwritten.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
#2911 made the same fix on `main`, keep the line identical so that merging back does not conflict there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3
The `tag` job now runs first and reads the version from DESCRIPTION.
It checks the confirmation itself, so that a run without CONFIRM tags nothing.
An existing tag of the same name is printed with its commit and contents, then moved to the submitted commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RobCnYEsXvgBsigxuAwfc3

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants