Skip to content

Auto-update and release against new Chronicle versions#2324

Open
woksin wants to merge 2 commits into
mainfrom
chore/chronicle-published-auto-update
Open

Auto-update and release against new Chronicle versions#2324
woksin wants to merge 2 commits into
mainfrom
chore/chronicle-published-auto-update

Conversation

@woksin

@woksin woksin commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Added

  • New Chronicle Published workflow that reacts to a Chronicle release, updates the Cratis.Chronicle, Cratis.Chronicle.AspNetCore and Cratis.Chronicle.Testing package versions, verifies the update against the full spec suite, and opens a pull request — auto-merging (and thereby releasing Arc) when the specs pass on a non-major bump.

Summary

Today, keeping Arc's Chronicle dependency current is manual. Because Arc publishes with an open-ended >= x dependency, consumers can pull a Chronicle newer than anything Arc has tested — and a breaking Chronicle change then surfaces in their build, not ours.

This workflow closes that gap. When Chronicle publishes, it dispatches chronicle-published to Arc (see the companion Chronicle PR). Arc waits for the new version to be available on NuGet, bumps the three pins, and runs every *.Specs project as a gate:

  • Green + patch/minor → auto-merge is enabled; the existing publish flow releases Arc against a verified-compatible Chronicle.
  • Failing specs, or a major Chronicle bump → the PR is left open with a comment for a human to review.

The net effect: the day Chronicle publishes, Arc either ships a verified release automatically or hands us a red PR — downstream consumers are never ahead of a Chronicle version Arc has actually tested.

Prerequisites (repo settings, not code): "Allow auto-merge" must be enabled, and the existing PAT_WORKFLOWS secret is used so the bump PR triggers CI and can be auto-merged.

React to a Chronicle release via repository_dispatch (chronicle-published):
bump the Cratis.Chronicle, Cratis.Chronicle.AspNetCore and
Cratis.Chronicle.Testing pins, run the full spec suite as a gate, and open a
PR. On a green non-major bump auto-merge is enabled so the existing publish
flow releases Arc against a verified-compatible Chronicle — turning silent
downstream breakage into an Arc-side red build instead.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the single-package flat-container poll with a restore-retry loop:
dotnet restore is the actual operation that must succeed, so retrying it
covers all three Chronicle packages, isn't fooled by CDN edge-node cache
divergence, and clears the HTTP cache between attempts to defeat cached
negative lookups. Build now runs with --no-restore.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant