Skip to content

chore: Bump Pure.DI from 2.4.3 to 2.5.0#104

Merged
vbreuss merged 1 commit into
mainfrom
dependabot/nuget/Pure.DI-2.5.0
Jul 13, 2026
Merged

chore: Bump Pure.DI from 2.4.3 to 2.5.0#104
vbreuss merged 1 commit into
mainfrom
dependabot/nuget/Pure.DI-2.5.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 13, 2026

Copy link
Copy Markdown
Contributor

Updated Pure.DI from 2.4.3 to 2.5.0.

Release notes

Sourced from Pure.DI's releases.

2.5.0

❗ Breaking Changes

  • [Bind] Member Exports Renamed to [Export] — The attribute used to expose fields, properties, and methods as bindings is now ExportAttribute.
    • Replace member-level [Bind] usage with [Export].
    • BindAttribute now represents implementation-level bindings.
    • Related terminology was aligned from “exposed roots” to “exported roots”; use RootKinds.Exported instead of RootKinds.Exposed.

🚀 New Features

  • Implementation-Level Binding Attributes — Pure.DI can now discover bindings declared directly on implementation types.

    • Use [Bind(typeof(IContract), Lifetime.Singleton, "tag")] to declare contract, lifetime, and tags on a class or struct.
    • Built-in Type, Tag, and new Lifetime attributes can now participate in implementation binding metadata.
    • Multiple contracts and tags in the same attribute group are merged into one binding.
    • Separate Bind attribute groups on the same implementation create separate bindings.
    • Generic marker contracts such as typeof(IBox<TT>) are supported for generic implementations.
    • See readme/bind-attribute.md.
  • Custom Binding Attributes

    • Custom attributes can now be registered as implementation-level binding metadata.
    • TypeAttribute<T>(), TagAttribute<T>(), and the new LifetimeAttribute<T>() allow Pure.DI to read contract, tag, and lifetime metadata from custom attribute constructor arguments.
    • This enables implementation assemblies to describe their DI role while keeping composition setup concise.
    • See readme/custom-bind-attribute.md.
  • Export Attribute for Member-Based Bindings

    • New ExportAttribute replaces member-level BindAttribute for fields, properties, and methods.
    • Supports exported members with explicit contract type, lifetime, and tags.
    • Generic exported members remain supported.
    • See readme/export-attribute.md.

🛠 Improvements

  • Binding Metadata Validation

    • Added diagnostics for invalid implementation-level binding metadata.
    • Pure.DI now reports an error when an implementation type has multiple lifetime attributes inside the same binding group.
  • Documentation and Usage Scenarios

    • Added new examples for bind type attributes, tag attributes, lifetime attributes, metadata merging, generic contracts, multiple contracts, custom bind attributes, and exported members.

Full Changelog: DevTeam/Pure.DI@2.4.3...2.5.0

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: Pure.DI
  dependency-version: 2.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Jul 13, 2026
@github-actions

Copy link
Copy Markdown

Test Results

   18 files  ±0     18 suites  ±0   7m 31s ⏱️ +21s
1 038 tests ±0  1 037 ✅ ±0  1 💤 ±0  0 ❌ ±0 
5 160 runs  ±0  5 159 ✅ ±0  1 💤 ±0  0 ❌ ±0 

Results for commit b350d3f. ± Comparison against base commit fe678a9.

@github-actions

Copy link
Copy Markdown

🚀 Benchmark Results

Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 9V74 2.60GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.301
[Host] : .NET 10.0.9 (10.0.9, 10.0.926.27113), X64 RyuJIT x86-64-v4

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Resolve Size Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 8 8.099 ns 0.0158 ns 0.0132 ns 1.25 - NA
Awaiten 8 6.477 ns 0.1386 ns 0.1228 ns 1.00 - NA
MsDI 8 6.730 ns 0.0146 ns 0.0130 ns 1.04 - NA
Autofac 8 85.569 ns 1.8122 ns 1.6951 ns 13.22 656 B NA
Jab 8 2.115 ns 0.1356 ns 0.1268 ns 0.33 - NA
PureDI 8 4.506 ns 0.0091 ns 0.0085 ns 0.70 - NA
DryIoc 8 6.227 ns 0.1344 ns 0.1192 ns 0.96 - NA
SimpleInjector 8 8.993 ns 0.0881 ns 0.0736 ns 1.39 - NA
baseline* 256 8.925 ns 0.0062 ns 0.0049 ns 1.38 - NA
Awaiten 256 6.472 ns 0.1442 ns 0.1349 ns 1.00 - NA
MsDI 256 6.433 ns 0.0158 ns 0.0147 ns 0.99 - NA
Autofac 256 83.112 ns 0.5318 ns 0.4974 ns 12.85 656 B NA
Jab 256 36.146 ns 0.0135 ns 0.0126 ns 5.59 - NA
PureDI 256 6.677 ns 0.0058 ns 0.0054 ns 1.03 - NA
DryIoc 256 6.219 ns 0.1431 ns 0.1339 ns 0.96 - NA
SimpleInjector 256 8.759 ns 0.0205 ns 0.0160 ns 1.35 - NA
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 9V45 2.60GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.301
[Host] : .NET 10.0.9 (10.0.9, 10.0.926.27113), X64 RyuJIT x86-64-v4

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Realistic Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 243.5 ns 2.71 ns 2.41 ns 1.68 568 B 1.00
Awaiten 145.06 ns 1.031 ns 0.965 ns 1.00 568 B 1.00
MsDI 360.31 ns 0.659 ns 0.550 ns 2.48 1104 B 1.94
Autofac 3,892.46 ns 11.714 ns 10.957 ns 26.83 13696 B 24.11
Jab 110.18 ns 0.110 ns 0.086 ns 0.76 432 B 0.76
DryIoc 226.73 ns 2.713 ns 2.538 ns 1.56 944 B 1.66
SimpleInjector 356.14 ns 1.557 ns 1.301 ns 2.46 1096 B 1.93
PureDI 96.46 ns 1.094 ns 1.024 ns 0.67 632 B 1.11
Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 9V74 2.60GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.301
[Host] : .NET 10.0.9 (10.0.9, 10.0.926.27113), X64 RyuJIT x86-64-v3

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Build Size Mean Error StdDev Ratio Allocated Alloc Ratio
baseline* 8 20.45 ns 0.967 ns 0.905 ns 1.16 144 B 1.00
Awaiten 8 17.559 ns 0.1193 ns 0.1116 ns 1.00 144 B 1.00
MsDI 8 1,495.134 ns 16.1757 ns 15.1308 ns 85.15 5688 B 39.50
Autofac 8 34,116.385 ns 261.7863 ns 244.8750 ns 1,943.08 33098 B 229.85
Jab 8 8.941 ns 0.1276 ns 0.1065 ns 0.51 96 B 0.67
PureDI 8 16.147 ns 0.3584 ns 0.3177 ns 0.92 128 B 0.89
DryIoc 8 746.638 ns 8.9165 ns 8.3405 ns 42.52 1528 B 10.61
SimpleInjector 8 11,614.318 ns 328.0099 ns 306.8207 ns 661.49 24760 B 171.94
baseline* 256 94.80 ns 3.493 ns 3.267 ns 1.18 2128 B 1.00
Awaiten 256 80.185 ns 0.2417 ns 0.2142 ns 1.00 2128 B 1.00
MsDI 256 14,205.415 ns 164.5927 ns 153.9601 ns 177.16 61016 B 28.67
Autofac 256 815,201.086 ns 3,404.0193 ns 3,017.5744 ns 10,166.56 738960 B 347.26
Jab 256 66.695 ns 0.6042 ns 0.5045 ns 0.83 2080 B 0.98
PureDI 256 74.591 ns 0.4796 ns 0.4251 ns 0.93 2112 B 0.99
DryIoc 256 45,886.538 ns 393.5775 ns 348.8962 ns 572.26 80645 B 37.90
SimpleInjector 256 349,230.242 ns 8,245.3826 ns 7,309.3169 ns 4,355.33 572978 B 269.26

baseline* rows show the corresponding Awaiten benchmark from the most recent successful main branch build with results, for regression comparison.

@vbreuss vbreuss merged commit 7f16291 into main Jul 13, 2026
12 checks passed
@vbreuss vbreuss deleted the dependabot/nuget/Pure.DI-2.5.0 branch July 13, 2026 08:37
github-actions Bot added a commit that referenced this pull request Jul 13, 2026
github-actions Bot added a commit that referenced this pull request Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant