Releases: yanpitangui/komento
Release list
v0.2.0-alpha
Breaking changes
KomentoOptions.Experimentsremoved — the static list of experiment IDs is gone. Pass IDs explicitly toUpdateAsync(configs, experimentIds)or useKomentoExperiments.AllIdsfrom the new source generator. Pass an empty set to load all experiments.
New packages
-
Komento.Generators— Roslyn source generator that readskomento.jsonfromAdditionalFilesand emits aKomentoExperimentsclass withAllIds: FrozenSet<string>and a typedIdconstant per experiment. Eliminates magic strings at compile time.{ "Experiments": ["checkout-flow", "dark-mode"] }KomentoExperiments.CheckoutFlow.Id // "checkout-flow" KomentoExperiments.AllIds // FrozenSet with all IDs
-
Komento.Http— genericHttpExperimentSource<TResponse>backed by a namedHttpClient. Supply a mapper from your response type toIEnumerable<ExperimentConfig>; all HTTP concerns (base address, auth, retry) are configured separately via the standardAddHttpClientpattern.builder.Services .AddKomento() .AddHttpSource<ApiResponse>(r => r.Experiments.Select(e => new ExperimentConfig { ... })) .AddPeriodicRefresh(TimeSpan.FromMinutes(5)); builder.Services .AddHttpClient("Komento.Http", c => c.BaseAddress = new Uri("https://flags.internal/experiments")) .AddStandardResilienceHandler();
New features
-
InMemoryExperimentSource— in-process test double for controlling flag state in tests without mockingIExperimentClient. FluentSet/RemoveAPI, same pattern as LaunchDarklyTestDataand UnleashFakeUnleash. -
AddPeriodicRefresh— background service that polls the registeredIExperimentSourceon aPeriodicTimerschedule. ResolvesTimeProviderfrom DI; injectFakeTimeProviderin tests for deterministic time control with noTask.Delay..AddPeriodicRefresh(TimeSpan.FromMinutes(5)) .AddPeriodicRefresh(TimeSpan.FromMinutes(5), KomentoExperiments.AllIds)
-
Auto-discovery —
AppSettingsExperimentSourcenow loads all experiments when an empty set is passed. Small projects no longer need to enumerate IDs anywhere.
CI
- Coveralls integration (replaced
irongut/CodeCoverageSummary) - Coverage scoped to
Komento.*source assemblies only viacoverage.runsettings
v0.1.1-alpha
What's new
- E2E sample — full Aspire-hosted demo with EcommerceApi and AdminApi showcasing NATS JetStream, PostgreSQL BinSet, OpenFeature, and JWT integration
- Integration tests — TUnit + Aspire.Hosting.Testing suite covering all experiment evaluation paths end-to-end (10 tests)
- BinSet public —
BinSet.BuildandBinSet.Containsare now part of the public API - Unified test framework — all unit tests migrated from xunit to TUnit;
dotnet testnow works across the entire solution on .NET 10 SDK viaglobal.jsonMTP runner config - CI updated — workflows bumped to .NET 10 SDK
v0.1-alpha
Initial alpha release of Komento.
Includes the core package, ASP.NET Core integration, and OpenFeature provider.