Skip to content

washr 1.1.1: setup_ci() and use_brand() fixes - #124

Merged
larnsce merged 4 commits into
mainfrom
dev
Sep 9, 2026
Merged

larnsce merged 4 commits into
mainfrom
dev

Conversation

@larnsce

@larnsce larnsce commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Patch release. Two fixes, both of which stopped a scaffolded package from building or checking.

Closes #123. Closes #130.

setup_ci() wrote a workflow that never ran (#130)

setup_ci() wrote the template through usethis::use_template(), which renders with whisker. whisker reads {{ }} as its own delimiters, so it consumed the inner braces of every ${{ ... }} GitHub Actions expression and left a bare $:

    runs-on: $
    name: $ ($)
          r-version: $

runs-on: $ matches no runner, so each matrix job queued until the 24 hour limit and then failed. Seen on openwashdata/owdata#17, where all five jobs failed at 24h0m1s. This also made the review floor claim in #86 false, since the workflow a scaffolded package shipped never ran.

The template carries no variables, so it is now copied instead of rendered. A regression test asserts the expressions survive and that no key is left with a bare $ as its value; the existing test did not catch this because a corrupted file still parses as YAML.

Scope: only packages scaffolded with 1.1.0, when setup_ci() shipped. A scan of the R-CMD-check workflow on the default branch of every non-archived repository in the organisation found no affected published package.

use_brand() failed on brand 1.0.0 logo entries (#123)

brand_logo_paths() reads the path of a logo entry written as a list of path and alt text, the form openwashdata/brand uses since 1.0.0. Before, unlist() turned the alt text into a second path and the call failed after it had already written _brand.yml.

Test plan

  • devtools::test(): 190 pass, 0 fail
  • devtools::check(): 0 errors, 0 warnings, 0 notes
  • A scaffolded throwaway package gets a workflow with intact ${{ }} expressions
  • The regression test fails against the previous implementation (verified by reverting it)
  • washr::use_brand(ref = "v1.0.0") writes the four new logos (Refresh the brand to openwashdata/brand 1.0.0 fslogisticskampala#17)
  • R-CMD-check green on this pull request

larnsce and others added 2 commits September 3, 2026 10:14
One paragraph in the vignette after use_brand() and a seealso entry:
branded PDF and Word reports use the openwashdata Quarto extension,
installed with quarto add in the package root, reading the _brand.yml
that use_brand() installed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZGMkJRUtmXRukGv5PLhEx
Since openwashdata/brand 1.0.0 a logo image entry is a list with path
and alt. brand_logo_paths() flattened the entries with unlist() and
treated the alt text as a second path, so use_brand(ref = "v1.0.0")
failed after writing _brand.yml. The helper now takes the path of a
list entry, for named images and size entries alike. A test covers
object-style entries.

Assisted-by: Claude claude-fable-5-1
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ouAd1vCAj75yYpUNZJw3F
@larnsce larnsce self-assigned this Sep 3, 2026
washr 1.1.0 reached CRAN on 2026-09-02 and is tagged v1.1.0 at 3a3eeba.
Dev moves to the next development version, with a fresh heading in
NEWS.md for the changes that follow.

Refs #78
Assisted-by: Claude claude-fable-5-1
Claude-Session: https://claude.ai/code/session_011SQ621ToQFmGWRnbGaLMkA
setup_ci() wrote the template through usethis::use_template(), which
renders with whisker. whisker reads {{ }} as its own delimiters, so it
consumed the inner braces of every ${{ ... }} GitHub Actions expression
and left a bare $ behind. The written workflow read "runs-on: $", which
matches no runner, so each matrix job queued until the 24 hour limit and
then failed. A package scaffolded with 1.1.0 shipped a workflow that
never ran, which made the review floor claim in #86 false.

The template carries no variables, so it is copied instead of rendered.

The regression test asserts the expressions survive and that no key is
left with a bare $ as its value. A corrupted file still parses as YAML,
which is why the existing test did not catch this.

Version 1.1.1, with the use_brand() alt text fix already on dev (#123).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KniirkTyC9pRpXrCA1JeF3
@larnsce larnsce changed the title Read the path of brand logo entries that carry an alt text washr 1.1.1: setup_ci() and use_brand() fixes Sep 9, 2026
@larnsce
larnsce merged commit e67591d into main Sep 9, 2026
13 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.

setup_ci() writes a broken R-CMD-check workflow: whisker eats the ${{ }} expressions use_brand() fails on brand 1.0.0 logo entries with alt text

1 participant