Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 01:45
· 19 commits to main since this release
d9db7b5

Summary

Compono 1.0 is the first stable release of a source-generated test composition ecosystem for modern .NET — no reflection, no runtime magic, object graphs and test-method parameters built by a real Roslyn incremental generator instead of guessed at runtime. Starting with this release, the public API is under Compono's stable compatibility promise: a breaking change requires a major-version bump, not a 0.x-era judgment call.

The core Compono package composes object graphs deterministically and reproducibly (seeded, pasteable-on-failure), with an explicit registration/rule/profile model and graph-wide value sharing (CompositionBuilder.Share<T>()) instead of ambient customization. Four first-party framework integrations — Compono.XunitV3, Compono.TUnit, Compono.MSTest, and Compono.NUnit — bring the same composed-parameter model to whichever test host a project already uses. Compono.TestDoubles generates AOT-safe interface doubles without a runtime-proxy dependency, and Compono.NSubstitute/Compono.Bogus bring automatic substitute composition and semantic fake data into the same pipeline for projects that want them. Compono.DependencyInjection, Compono.Http, and Compono.Logging round out the ecosystem with a configured-resolution IServiceProvider bridge, a reflection-free HttpClient test double, and structured ILogger/ILogger<T> capture and verification, respectively.

Compono is designed for trimming and Native AOT from the start, not retrofitted for it — every package's exercised public surface is verified against a real PublishAot-published, trimmed consumer, not merely assumed compatible.

1.0 is a compatibility boundary, not a finished feature set. Disposal/lifetime ownership and async composition remain deliberate, evidence-gated post-1.0 work (see RESEARCH-0015/RESEARCH-0016) — nothing in the current API blocks adding either later without a breaking change.

Changes

🚀 Features

🐛 Bug Fixes

📚 Documentation

  • docs: fix stale --prerelease install guidance, document dogfood Docker prerequisite (#131) @ncipollina, @claude
  • docs(skill): refresh engineering-workflow skill to match current repo (#110) @j-d-ha

🔧 Maintenance