Migrates eventsourced from gitlab.com/unboundsoftware to codeberg.org/eventsourced (eventsourced v1.24.0, amqp v1.10.1, pg/v2 v2.1.1). No sloth in this service.
The Codeberg amqp publisher is built on go-messaging-amqp, so the service moves off sparetimecoders/goamqp too, following the shiny porting guide (docs/design/codeberg-migration.md):
Routing keys mapped on the eventsourced publisher (newEventPublisher)
Cache consumers are typed handlers (cacheUpdater[T]); Cache.Update(msg any) error
uncancelledPublisher: a stored event is published even if the client left
closeEvents buffered; receiver selects on it and rootCtx.Done()
WithPrefetchLimit dropped (no-op; 20 is the default), UseLogger → WithLogger
amqp091-go v1.15.0 (GO-2026-6372)
Renovate groups codeberg.org/messaging/** with eventsourced
Tests: topology assertion against a literal key list (all consumers transient, publishes on events.topic.exchange), published routing keys, and publish surviving a cancelled context — each verified to fail when the code is broken.
Deploy: the service only has transient (auto-delete) consumer queues and publishes to the existing exchange, so no queue cutover is needed. CloudEvents headers are additive and header-less messages from old pods are consumed, so a rolling deploy is safe.
Migrates `eventsourced` from `gitlab.com/unboundsoftware` to `codeberg.org/eventsourced` (eventsourced v1.24.0, amqp v1.10.1, pg/v2 v2.1.1). No sloth in this service.
The Codeberg `amqp` publisher is built on `go-messaging-amqp`, so the service moves off `sparetimecoders/goamqp` too, following the shiny porting guide (`docs/design/codeberg-migration.md`):
- Routing keys mapped on the eventsourced publisher (`newEventPublisher`)
- Cache consumers are typed handlers (`cacheUpdater[T]`); `Cache.Update(msg any) error`
- `uncancelledPublisher`: a stored event is published even if the client left
- `closeEvents` buffered; receiver selects on it and `rootCtx.Done()`
- `WithPrefetchLimit` dropped (no-op; 20 is the default), `UseLogger` → `WithLogger`
- `amqp091-go` v1.15.0 (GO-2026-6372)
- Renovate groups `codeberg.org/messaging/**` with eventsourced
Tests: topology assertion against a literal key list (all consumers transient, publishes on `events.topic.exchange`), published routing keys, and publish surviving a cancelled context — each verified to fail when the code is broken.
**Deploy:** the service only has transient (auto-delete) consumer queues and publishes to the existing exchange, so no queue cutover is needed. CloudEvents headers are additive and header-less messages from old pods are consumed, so a rolling deploy is safe.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01Dpb7Y47dPz246oY9bCzh7k
Move eventsourced modules from gitlab.com/unboundsoftware to codeberg.org/eventsourced.
The Codeberg amqp publisher is built on go-messaging-amqp, so the service
switches from sparetimecoders/goamqp as well:
- routing keys are mapped on the eventsourced publisher (newEventPublisher)
- cache consumers are typed handlers; Cache.Update drops the goamqp shape
- publishes detach from the request context (uncancelledPublisher)
- closeEvents is buffered and the receiver also watches rootCtx
- WithPrefetchLimit dropped (no-op, 20 is the default)
- amqp091-go v1.15.0 (GO-2026-6372)
- renovate groups codeberg.org/messaging with eventsourced
Only transient consumer queues are used, so no queue cutover is needed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dpb7Y47dPz246oY9bCzh7k
argoyle
merged commit 84b18860b5 into main2026-09-16 16:52:16 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Migrates
eventsourcedfromgitlab.com/unboundsoftwaretocodeberg.org/eventsourced(eventsourced v1.24.0, amqp v1.10.1, pg/v2 v2.1.1). No sloth in this service.The Codeberg
amqppublisher is built ongo-messaging-amqp, so the service moves offsparetimecoders/goamqptoo, following the shiny porting guide (docs/design/codeberg-migration.md):newEventPublisher)cacheUpdater[T]);Cache.Update(msg any) erroruncancelledPublisher: a stored event is published even if the client leftcloseEventsbuffered; receiver selects on it androotCtx.Done()WithPrefetchLimitdropped (no-op; 20 is the default),UseLogger→WithLoggeramqp091-gov1.15.0 (GO-2026-6372)codeberg.org/messaging/**with eventsourcedTests: topology assertion against a literal key list (all consumers transient, publishes on
events.topic.exchange), published routing keys, and publish surviving a cancelled context — each verified to fail when the code is broken.Deploy: the service only has transient (auto-delete) consumer queues and publishes to the existing exchange, so no queue cutover is needed. CloudEvents headers are additive and header-less messages from old pods are consumed, so a rolling deploy is safe.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Dpb7Y47dPz246oY9bCzh7k