Skip to content

kwb.pkgbuild (v0.3.0): Helper functions for automating R package development at KWB to a predefined style

Latest

Choose a tag to compare

@mrustl mrustl released this 07 May 08:04
80354a4

kwb.pkgbuild 0.3.0 2026-05-07

  • Modernise GitHub Actions workflows (both in .github/workflows/ of this
    repo and the templates in inst/templates/ci_github-actions/) so that
    they run on current GitHub-hosted runners again:

    • Bump action versions: actions/checkout@v5, actions/upload-artifact@v4,
      codecov/codecov-action@v5, JamesIves/github-pages-deploy-action@v4.7.3,
      and replace the deprecated r-lib/actions@master references with
      r-lib/actions@v2. The @v5 / @v4.7.3 bumps run on Node.js 24 and
      avoid the GitHub deprecation warning for Node.js 20 actions
      (forced default June 2026, removed September 2026, see
      https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/).

    • Switch from the retired ubuntu-20.04 runner to ubuntu-latest and
      rename the matrix entry oldrel to oldrel-1.

    • Replace the archived r-hub/sysreqs step with
      r-lib/actions/setup-r-dependencies@v2, which also handles dependency
      caching out of the box.

    • Fix a stale if: runner.os == 'Linux (no, try without!)' condition that
      silently disabled the Linux system-dependency step.

    • pkgdown workflow: deploy via JamesIves/github-pages-deploy-action@v4
      on ubuntu-latest, with explicit permissions: contents: write and a
      concurrency group.

    • test-coverage workflow: produce a Cobertura report and upload via the
      new codecov/codecov-action@v4; upload test artefacts on failure.

    • pr-commands workflow: gate /document and /style jobs on
      github.event.issue.pull_request so they no longer fire on plain issue
      comments.

  • Add optional Claude Code GitHub Actions workflows (analogue to
    kwb.raindrop):

    • New templates in inst/templates/ci_github-actions-claude/:
      claude.yaml (responds to @claude mentions in issues and PR reviews)
      and claude-code-review.yaml (automatic PR review on opened /
      synchronize).

    • New exported function use_ghactions_claude() to add only the Claude
      workflows to an existing package.

    • use_ghactions() and use_pkg() gain a claude = FALSE toggle that
      additionally installs the Claude workflows when set to TRUE. The
      workflows expect a CLAUDE_CODE_OAUTH_TOKEN repository secret to be
      configured in GitHub.

  • Documentation cleanup:

    • Remove dead duplicate definitions of git(), construct_commit_message()
      and github_push() in R/deploy_site_github_with_extra_files.R (they
      were silently overwritten by later definitions in the same file).

    • Fix copy/paste errors in @return for use_index_md(),
      use_badge_ghactions_rcmdcheck() and use_badge_runiverse() (which
      referenced "travis" / "codecov" badges instead of the actual return
      value).

    • Mark internal helpers (use_installation(), read_description(),
      kwb_author(), kwb_package()) with @noRd so they no longer create
      public Rd entries.

    • Rewrite the titles / descriptions for use_pkgdown(), use_readme_md()
      and use_index_md() so the man pages describe what the function
      actually does.

    • Fix typos (releveant, directoy, aleady, DESCIPTION,
      (default: KWB-R"), file patern) across roxygen blocks and Rd files.

  • use_pkgdown(): expose the KWB logo as parameters kwb_logo_url
    (default: https://logos.kompetenz-wasser.io/KWB_Logo_M_Blau_RGB.svg)
    and kwb_logo_href (default: https://www.kompetenz-wasser.de) so the
    default logo URL is no longer hardcoded inside the function body and can
    be overridden per package without forking the function.

  • Vignettes:

    • New vignette vignette("github-actions", package = "kwb.pkgbuild")
      describing the default workflows, the optional Claude Code integration,
      the CLAUDE_CODE_OAUTH_TOKEN secret, and how to refresh workflows in
      existing packages.

    • Update vignette("tutorial"): replace stale Travis / AppVeyor
      references with the GitHub Actions workflow set, document the new
      claude = TRUE switch in use_pkg(), and fix the kwb.pkgdown /
      kwb.pkddown typos.