Skip to content

Releases: Testably/Awaiten

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 17:25
6657202

What's Changed

  • test: cover runtime types and registration attributes by @vbreuss in #91
  • test: dedicated concurrent-resolution suite with no-double-dispose guarantees by @vbreuss in #92
  • feat!: replace [FromServices] with container-side [ImportService<T>] by @vbreuss in #94
  • feat: add container-side [InjectProperty<T>] property injection by @vbreuss in #93
  • docs: container-side DI idioms as the clean-domain path; pin factory-[FromKey]/[Arg] idioms by @vbreuss in #96
  • feat: add suppressible boundary analyzers AWT134 and AWT135 by @vbreuss in #98
  • docs: teach the composition root and DI anti-patterns by @vbreuss in #97

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 14:33
e6c8637

What's Changed

  • test: add a comprehensive coffee-shop example container by @vbreuss in #62
  • feat: warn (AWT156) when a service is IAsyncDisposable but not IDisposable by @vbreuss in #61
  • fix: AWT156 per-owner filtering, precise report locations and cross-assembly bail-out by @vbreuss in #64
  • feat: inject keyed registrations as IReadOnlyDictionary<string, TService> by @vbreuss in #60
  • feat: [Inject(Optional = true)] leaves a property unset when its dependency is unregistered by @vbreuss in #63
  • refactor: group generated Root/Scope members into #region sections by @vbreuss in #66
  • feat: construct [Singleton(Eager = true)] services at container build time by @vbreuss in #68
  • feat: inject keyed registrations as awaited Task<IReadOnlyDictionary<string, TService>> by @vbreuss in #65
  • feat: pass the requesting type into a factory via [RequestingType] by @vbreuss in #67
  • test: add a native-AOT console sample for the MS.DI bridge by @vbreuss in #69
  • fix: dispose partially-built instances when async wiring or init fails by @vbreuss in #71
  • feat: make the MS.DI bridge's async projection reflection-free and native-AOT clean by @vbreuss in #72
  • feat: run OnActivated/OnRelease lifecycle hooks around a registration's lifetime (AWT162) by @vbreuss in #70
  • feat: diagnose conflicting coalesced lifecycle/eager directives (AWT166) by @vbreuss in #74
  • docs: trim comments to WHY-only and make XML docs concise by @vbreuss in #73
  • feat: replace logo with the async-first Awaiten mark by @vbreuss in #75
  • feat: Contextual binding via WhenInjectedInto by @vbreuss in #76
  • refactor!: rename ScanAs.ImplementedInterfaces to Marker by @vbreuss in #77
  • refactor!: replace Default/TryAdd bool flags with the Fallback enum by @vbreuss in #84
  • docs: add the Awaiten documentation site by @vbreuss in #78
  • feat: support open-generic decorators and composites (#79) by @vbreuss in #85
  • chore: Bump Microsoft.CodeAnalysis.CSharp from 5.3.0 to 5.6.0 by @dependabot[bot] in #88
  • chore: Bump Microsoft.CodeAnalysis.Analyzers and Microsoft.CodeAnalysis.CSharp by @dependabot[bot] in #87
  • feat!: support non-string service keys (enum, Type) by @vbreuss in #86
  • feat!: imperative keyed resolution and IKeyedServiceProvider interop by @vbreuss in #89
  • feat: add name, namespace and exclusion filters to [Scan] by @vbreuss in #90

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 07:54
f7ae7c9

What's Changed

  • chore: Bump SimpleInjector from 5.5.2 to 5.6.0 by @dependabot[bot] in #32
  • feat: add async initialization via IAsyncInitializable with compile-time taint safety (AWT119/AWT120) by @vbreuss in #31
  • fix: dispose factory outputs hidden behind a non-disposable return type by @vbreuss in #33
  • feat: add async factory methods as a Task async-init registration channel by @vbreuss in #34
  • feat: warn (AWT106) when a factory body hides an IAsyncInitializable/IDisposable capability behind its declared return type by @vbreuss in #35
  • feat: Async relationship types and async/owned disposal by @vbreuss in #37
  • fix: report AWT102 for a dependency cycle closed only through a bare Owned<T> or Task<T> by @vbreuss in #38
  • feat: resolve collection dependencies to every registration of a service by @vbreuss in #39
  • feat: wrap registered services in decorator chains via [Decorate<TDecorator, TService>] by @vbreuss in #40
  • feat: support open generic registration by @vbreuss in #41
  • perf: data-driven bucket-hash dispatch for by-type resolution by @vbreuss in #42
  • feat: bridge a generated container to Microsoft.Extensions.DependencyInjection by @vbreuss in #43
  • docs: add ASP.NET Core and standalone examples for the MS.DI bridge by @vbreuss in #45
  • feat: front a service's registrations with a single fan-out façade via [Composite<TComposite, TService>] by @vbreuss in #46
  • feat: resolve async-initialized collection members through IAsyncEnumerable<T> by @vbreuss in #44
  • feat: resolve external dependencies across the MS.DI seam via [FromServices]/[ImportServices] by @vbreuss in #47
  • feat: resolve awaited collection dependencies through Task<C> by @vbreuss in #49
  • feat: satisfy a differently-closed generic interface request through declared variance by @vbreuss in #48
  • feat: fill opt-in [Inject] properties after construction by @vbreuss in #50
  • refactor: restructure the source generator into partial files and document the generated code by @vbreuss in #53
  • feat: assembly scanning via [Scan] by @vbreuss in #52
  • feat: initialize Awaiten containers on host startup via AddAwaitenInitialization by @vbreuss in #54
  • feat: add VerifyAgainst startup safety check for external dependencies by @vbreuss in #55
  • feat: break mutual constructor cycles with [Inject(Deferred = true)] property injection by @vbreuss in #51
  • refactor: hide generated container plumbing from the consumer surface by @vbreuss in #57
  • coverage: cover property-injected awaited collections by @vbreuss in #58
  • feat: Modules: [Module] / [Import] with overridable defaults by @vbreuss in #56
  • refactor: emit per-type resolvers as static methods, hiding them from the container surface by @vbreuss in #59

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Jun 15:19
d9374cb

What's Changed

  • feat: add scopes and disposal with thread-safe singletons by @vbreuss in #12
  • feat: annotate resolver TryResolve with [NotNullWhen] and cover extensions by @vbreuss in #13
  • feat: add lifetime-safety diagnostics (AWT105 captive, AWT106 disposable transient, AWT107 conflicting lifetime) by @vbreuss in #14
  • chore: add GitHub Sponsors funding config by @vbreuss in #15
  • feat: move AWT106 to a DiagnosticAnalyzer so it is suppressible in-source by @vbreuss in #17
  • feat: add resolution/build benchmarks vs other DI containers and report them in CI by @vbreuss in #16
  • fix: resolve benchmark marker types and guard report publishing by @vbreuss in #19
  • perf: dispatch resolution through a static Type table instead of a linear if-chain by @vbreuss in #20
  • refactor: make benchmark classes self-contained and add DryIoc + Simple Injector by @vbreuss in #22
  • feat: add Func<T> and Lazy<T> relationship types by @vbreuss in #21
  • feat: add realistic end-to-end resolution benchmark across DI containers by @vbreuss in #23
  • feat: add factory-method and pre-built instance registrations by @vbreuss in #24
  • refactor(generator): restructure generated container into a facade + Scope/RootScope hierarchy by @vbreuss in #25
  • feat: add runtime arguments via [Arg] and Func<TArg…,T> by @vbreuss in #26
  • refactor: Static [Container] definition with a Root instance by @vbreuss in #27
  • feat: add keyed registration via Key and [FromKey] (AWT116) by @vbreuss in #28
  • feat: leak-free disposal — Owned<T>, flow-based AWT117, and strict-by-default LifetimeSafety by @vbreuss in #29
  • feat: allow scope-bound resolution of disposable transients under strict lifetime safety by @vbreuss in #30

Full Changelog: v0.0.1...v0.1.0

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 27 Jun 11:38
cc0c4e8

What's Changed

  • feat: add MS.DI companion package, generator test harness, and analyzer wiring by @vbreuss in #7
  • coverage: collect coverage from DI and source-generator test projects by @vbreuss in #8
  • feat: implement core resolution (Container, Singleton/Transient/Scoped, AWT101/AWT102) by @vbreuss in #9
  • chore: use NuGet trusted publishing (OIDC) instead of long-lived API key by @vbreuss in #10
  • chore: include DI package in Pack output by @vbreuss in #11

New Contributors

Full Changelog: https://github.com/Testably/Awaiten/commits/v0.0.1