Eliminate double towncrier run in release workflow #199

Merged
eblume merged 2 commits from eliminate-double-towncrier into main 2026-02-16 21:24:35 -08:00
Owner

Summary

  • Added a new build_quartz Dagger function that builds the Quartz site from a pre-processed source tree (no towncrier)
  • Reordered the release workflow so towncrier runs once on the runner, then passes the updated working tree to build-quartz
  • build_docs and build_changelog are preserved for standalone use — build_docs now delegates to build_quartz internally

Motivation

Previously towncrier ran twice per release: once inside a Dagger container (via build_docsbuild_changelog) and once on the runner to capture CHANGELOG.md changes for the git commit. This was wasteful and fragile — if towncrier behavior changed, the two runs could produce different results.

Test plan

  • Review diff to confirm workflow step ordering is correct
  • Trigger a release and confirm towncrier runs only once
  • Verify the docs tarball contains the updated CHANGELOG.md
  • dagger call build-quartz --src=. --version=vX.Y.Z should work standalone
## Summary - Added a new `build_quartz` Dagger function that builds the Quartz site from a pre-processed source tree (no towncrier) - Reordered the release workflow so towncrier runs **once** on the runner, then passes the updated working tree to `build-quartz` - `build_docs` and `build_changelog` are preserved for standalone use — `build_docs` now delegates to `build_quartz` internally ## Motivation Previously towncrier ran twice per release: once inside a Dagger container (via `build_docs` → `build_changelog`) and once on the runner to capture CHANGELOG.md changes for the git commit. This was wasteful and fragile — if towncrier behavior changed, the two runs could produce different results. ## Test plan - [ ] Review diff to confirm workflow step ordering is correct - [ ] Trigger a release and confirm towncrier runs only once - [ ] Verify the docs tarball contains the updated CHANGELOG.md - [ ] `dagger call build-quartz --src=. --version=vX.Y.Z` should work standalone
Add build_quartz Dagger function that builds the Quartz site without
running towncrier, and reorder the workflow so towncrier runs once on
the runner before passing the updated source tree to Dagger.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
build_changelog is no longer needed — towncrier now runs on the runner
before Dagger. build_docs becomes the direct Quartz build (no towncrier
delegation). Update docs to match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
eblume merged commit 779b7d6709 into main 2026-02-16 21:24:35 -08:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eblume/blumeops!199
No description provided.