Skip to content

add logo to readme and docs, update actions to node 24 - #12

Merged
vgreg merged 4 commits into
mainfrom
logo-and-runner-updates
Aug 22, 2026
Merged

add logo to readme and docs, update actions to node 24#12
vgreg merged 4 commits into
mainfrom
logo-and-runner-updates

Conversation

@vgreg

@vgreg vgreg commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Logo

iolaus.webp moved from the repo root to docs/assets/ so MkDocs copies it into the built site, then added:

  • Above the title on the docs home page (docs/index.md), as requested
  • Above the title in the README
  • As the Material header logo and favicon in mkdocs.yml

The README references the image by absolute raw.githubusercontent.com URL rather than a repo-relative path. PyPI does not rewrite relative links, so docs/assets/iolaus.webp would render as a broken image on the project page. Verified by rendering the README through readme_renderer (the same library twine check uses): the <img> survives sanitization with src, alt, and width intact, and align="center" is preserved.

Alt text describes the character rather than saying "logo", since the illustration is Iolaus, the companion who helped Heracles defeat the Hydra.

Action runtimes

The v0.1.0 publish run warned that actions/checkout@v4 and astral-sh/setup-uv@v5 target Node 20. Every action is now on its latest major, across all three workflows:

Action Before After Runtime
actions/checkout v4 v7 node24
astral-sh/setup-uv v5 v10.0.1 node24
codecov/codecov-action v4 v7 composite
actions/upload-pages-artifact v3 v4 composite
actions/deploy-pages v4 v5 node24

setup-uv is pinned to an exact patch version because the project stopped publishing floating major tags after v7, so @v10 does not resolve. The two composite actions delegate to SHA-pinned upload-artifact@v7.0.0 and github-script@v8.0.0, both Node 24 era.

pypa/gh-action-pypi-publish is a Docker action and is unaffected.

These are large major-version jumps, so I checked that each input still exists in the new majors: python-version on setup-uv, token on codecov-action, and path on upload-pages-artifact.

Verification

  • All three workflow files parse as valid YAML
  • mkdocs build --strict clean; asset copied to site/assets/, logo renders above the <h1>
  • README renders through PyPI's sanitizer with the image intact

Note that the publish workflow change is only exercised on the next version tag.

🤖 Generated with Claude Code

vgreg and others added 4 commits August 22, 2026 12:32
image lives under docs/assets so mkdocs copies it into the built site. the
readme references it by absolute raw.githubusercontent url because pypi does
not resolve relative paths, so a repo-relative src would render broken there.
also set it as the material header logo and favicon.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
actions/checkout v4 and setup-uv v5 target node 20, which the runners now
force onto node 24 with a deprecation warning. bump every action to its
latest major. setup-uv stopped publishing floating major tags after v7, so
v10 is pinned to the exact v10.0.1 release.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
merged.set() was called without tomlfy, so every cli override arrived as a
string: --set model__lr=0.01 gave '0.01' rather than 0.01, silently changing
the type of a key that came from the config file as a float. values that are
not valid toml still fall back to str.

the existing tests coerced with float(merged.model.lr), which hid this; they
now assert on the value directly and three of them fail without the fix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
the examples registered a single command but documented invocations as
python cli.py <command>. typer collapses a single-command app, so the name
is rejected with 'got unexpected extra argument(s)'. each example now
registers two commands, and a note explains the collapse.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vgreg

vgreg commented Aug 22, 2026

Copy link
Copy Markdown
Owner Author

Folded in the two bugs found while verifying the 0.1.0 release.

--set overrides were always strings

build_settings called merged.set(...) without Dynaconf's tomlfy flag, so every CLI override arrived as a string. With lr = 0.001 in the config file, --set model__lr=0.01 produced '0.01' rather than 0.01, silently changing the type of a key that came from the file as a float. Downstream, lr * 2 gives '0.010.01'.

Fixed by passing tomlfy=True. Verified that non-TOML values still degrade to strings rather than erroring:

Override Before After
model__lr=0.01 '0.01' str 0.01 float
model__epochs=50 '50' str 50 int
debug=true 'true' str True bool
db__host=remote 'remote' str 'remote' str
path=/tmp/data.csv str '/tmp/data.csv' str
note=a=b str 'a=b' str

The existing tests asserted float(merged.model.lr) == pytest.approx(...), and that coercion is exactly what hid the bug. They now assert on the value directly, and two new tests cover type preservation and the string fallback. Confirmed these are real regression tests: reverting the one-line fix fails 3 of them.

Quick-start examples could not run as written

Both the README and docs/index.md showed python cli.py analyze data.csv, but the example registered only one command. Typer collapses a single-command app, so the command name is rejected:

Error: Got unexpected extra argument(s) (data.csv)

docs/getting-started.md had the same problem with python cli.py train. Each example now registers a second command, which makes every documented invocation valid, plus a note explaining the collapse for anyone who does write exactly one command.

I extracted both examples verbatim into a scratch project and ran the documented commands to confirm they work, rather than only reasoning about it.

Verification

  • 17 tests pass; ruff check, ruff format --check, and mypy --strict clean
  • mkdocs build --strict clean
  • Documented examples executed end to end, producing correctly typed config snapshots

Changelog entries added under [Unreleased].

@vgreg
vgreg merged commit 0e3ff74 into main Aug 22, 2026
4 checks passed
@vgreg
vgreg deleted the logo-and-runner-updates branch August 22, 2026 17:05
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