Skip to content
kc@kumarChandrachooda.com:~$ cd /blog/series/six-packages-and-an-empty-test-project && read --section="top" 0%
Series

Six Packages and an Empty Test Project

In reading order.

  • 11 parts
  • ≈ 85 min total
  • 11 published
Part 1 21 Feb 2026 7 min read

Twelve Projects and One Star

Reading a repository one project at a time hides everything that lives in the edges between them - and in this estate the edges are where the interesting failures are.

Part 2 22 Feb 2026 7 min read

Four Members Are the Whole Plugin Contract

Two strings and two void methods buy you six shipping packages - and the list of things the interface never asks for is the more instructive half.

Part 3 23 Feb 2026 7 min read

Discovery That Works by Accident

Nothing in either host references an extension type, so nothing should load one - and the reason six packages are found anyway is a call five steps earlier in a fluent chain.

Part 4 23 Feb 2026 6 min read

Load Order Decides What Your Traces See

An int? sorted into a HashSet, no shipped config that sets it, and two middlewares whose relative position determines whether your production failures appear in Jaeger at all.

Part 5 24 Feb 2026 7 min read

What Does a 202 Actually Promise

One YAML key turns an HTTP route into a message publisher - and between BasicPublish returning and the gateway writing 202 there is nothing at all.

Part 6 25 Feb 2026 7 min read

The AMQP Property the Broker Vetoed

A caller-identity feature added at 21:10, disabled at 22:31 and deleted four days later - and the residue is a gateway that carries no caller identity into a message at all.

Part 7 25 Feb 2026 8 min read

The Rename That Silently Unbound a Signing Key

Of eight JWT keys in the README's flagship example, four bind to nothing, three restate defaults and one has any effect - and the last edit to that README came ten minutes before the commit that invalidated it.

Part 8 26 Feb 2026 8 min read

The Package Identity That Stranded Sixteen Releases

One commit reclaimed a clean package id and deleted the version prefix in the same breath - leaving two identities on the public feed with inverted version ordering and a csproj that cannot build the package it consumes.

Part 9 27 Feb 2026 8 min read

The Empty Test Project Is Load-Bearing

CI builds Release, where six extensions compile against NuGet instead of your working tree - and the only thing that notices is a project with no tests in it.

Part 10 27 Feb 2026 10 min read

The Container You Cannot Configure

A product whose entire interface is a YAML document, shipped in an image that document cannot enter - plus the resilience inventory of a gateway with retries and nothing else.

Part 11 28 Feb 2026 10 min read

Maintained for Fourteen Months, Documented for Two

A Christmas Day commit on an unfinished feature, three years of unactioned dependabot, a final fix by a stranger - and the estate's real lesson, which is about re-reading rather than writing.