Actualize benchmark#946
Conversation
There was a problem hiding this comment.
Pull request overview
This PR modernizes the repository’s benchmark projects and documentation to reflect the current toolchain and adds additional mapper library comparisons.
Changes:
- Updated benchmark projects to new namespaces/toolchain and refactored common benchmark parameters via a shared base class.
- Added comparison benchmarks/models for AutoMapper, Facet, and Mapperly alongside Mapster variants (default/Roslyn/FEC/codegen).
- Refreshed README/package docs with an updated benchmark snapshot and performance notes.
Reviewed changes
Copilot reviewed 30 out of 30 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/Benchmark/TestAdaptHelper.cs | Refactors benchmark helper to support AutoMapper/Facet/Mapperly runs and unifies loop logic. |
| src/Benchmark/Program.cs | Updates namespaces/usings for the benchmark entrypoint. |
| src/Benchmark/FooMapper.tt | Updates T4 template namespaces to Mapster.Benchmark. |
| src/Benchmark/FooMapper.g.cs | Regenerated codegen mapper with updated namespace/imports. |
| src/Benchmark/CustomerMapper.tt | Updates T4 template namespaces to Mapster.Benchmark. |
| src/Benchmark/CustomerMapper.g.cs | Regenerated codegen mapper with updated namespace/imports. |
| src/Benchmark/Comparisons/MapperlyModels.cs | Adds Mapperly DTOs + mapping definitions for benchmark comparisons. |
| src/Benchmark/Comparisons/FacetModels.cs | Adds Facet DTOs/attributes for benchmark comparisons. |
| src/Benchmark/Classes/Foo.cs | Moves benchmark model types into Mapster.Benchmark.Classes. |
| src/Benchmark/Classes/Customer.cs | Moves benchmark model types into Mapster.Benchmark.Classes. |
| src/Benchmark/Benchmarks/TestSimpleTypes.cs | Updates benchmark to use shared MapOperations parameter and adds new library runs. |
| src/Benchmark/Benchmarks/TestComplexTypes.cs | Updates benchmark to use shared MapOperations parameter and adds new library runs. |
| src/Benchmark/Benchmarks/TestAll.cs | Updates combined benchmark to use shared MapOperations parameter and adds new library runs. |
| src/Benchmark/Benchmarks/MappingBenchmarkBase.cs | Introduces shared [ParamsSource] for operation counts across benchmarks. |
| src/Benchmark/Benchmarks/Config.cs | Updates benchmark configuration/columns and namespaces. |
| src/Benchmark/Benchmark.csproj | Updates target framework, enables implicit usings, and adds new benchmark dependencies. |
| src/Benchmark.Development/TestAdaptHelper.cs | Updates namespaces for dev benchmarks (but currently breaks Mapster symbol resolution). |
| src/Benchmark.Development/Program.cs | Updates usings for new dev benchmark namespaces. |
| src/Benchmark.Development/MapsterVersion.cs | Updates namespace and refreshes benchmarked Mapster versions list. |
| src/Benchmark.Development/Classes/Foo.cs | Moves dev benchmark model types into new namespace. |
| src/Benchmark.Development/Classes/Customer.cs | Moves dev benchmark model types into new namespace. |
| src/Benchmark.Development/Benchmarks/TestSimpleTypes.cs | Updates namespaces/usings for dev benchmarks. |
| src/Benchmark.Development/Benchmarks/TestComplexTypes.cs | Updates namespaces/usings for dev benchmarks. |
| src/Benchmark.Development/Benchmarks/TestAll.cs | Updates namespaces/usings for dev benchmarks. |
| src/Benchmark.Development/Benchmarks/Config.cs | Updates namespaces (but currently breaks MapsterVersion resolution). |
| src/Benchmark.Development/Benchmark.Development.csproj | Updates root namespace and project settings formatting/structure. |
| src/.editorconfig | Adds formatting rules for csproj/props files. |
| README.md | Updates performance section and benchmark snapshot table. |
| docs/articles/packages/FastExpressionCompiler.md | Updates benchmark snapshot + points to README for full comparison. |
| docs/articles/packages/ExpressionDebugging.md | Replaces outdated Roslyn performance claims with current notes and link to README. |
Comments suppressed due to low confidence (1)
src/Benchmark.Development/Benchmarks/Config.cs:37
MapsterVersionis declared in theMapster.Benchmark.Developmentnamespace, but this file is inMapster.Benchmark.Development.Benchmarksand doesn’t import the parent namespace.foreach (var version in MapsterVersion.Get())will not compile without qualifying the type or addingusing Mapster.Benchmark.Development;.
foreach (var version in MapsterVersion.Get())
{
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Hi @Qyperion. Great work 👍. |
|
@DocSvartz Is there any additional action required from my side for this PR to be merged? |
@Qyperion No action is required at this time. Need to wait for the decision of the other contributors Regarding adding a dependency on Automapper |
|
I updated benchmark scenarios and results.
Furthermore, add new benchmarks.md (linked from toc.yml and _Sidebar.md) with full results. |
|
Interesting results. The speed and allocation is very close across all candidates (except Automapper). |
@andrerav Yeah, on FlatTypes the mapping is just primitive property copies, so every sourcegen/compiled mapper (Mapster, Mapperly, Facet) emits essentially the same straight-line assignments with one DTO allocation. Only AutoMapper’s runtime pipeline adds real overhead. On ComplexTypes and RecursiveTypes, nested objects and collections force each mapper into its own allocation pattern for intermediate arrays/lists and nested DTOs, and that’s where the gaps open up in both Ns/Map and Bytes/Map. |
|
@Qyperion Thanks! |
|
Hi, @Qyperion. Are these benchmark results for code that was on the development branch or did you run it against the v10.0.7 NuGet package? |
For code that was on the development branch. |
|
Great, then I'll just change the version number to v 10.0.8. No retesting required.🙌 |
… 10.0.8 (#37) Updated [Mapster](https://github.com/MapsterMapper/Mapster) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Mapster's releases](https://github.com/MapsterMapper/Mapster/releases)._ ## 10.0.8 ## What's Changed * feat: add Flattening mapping for all source type by @DocSvartz in MapsterMapper/Mapster#916 * fix IsNotSelfCreation detect by @DocSvartz in MapsterMapper/Mapster#919 * fix race condition when mapping to Record used IgnoreNullValues by @DocSvartz in MapsterMapper/Mapster#923 * fix IgnoreNonMapped member collector #924 by @DocSvartz in MapsterMapper/Mapster#929 * Fix: #928 - not creation abstract destination if souce is null by @DocSvartz in MapsterMapper/Mapster#933 * fix: #927 add skip if destination member is not setter by @DocSvartz in MapsterMapper/Mapster#934 * fix: #925 - Compile config with open generic is not throw exception by @DocSvartz in MapsterMapper/Mapster#935 * feat: #938 - Add DirectAssignmentForSameType() by @DocSvartz in MapsterMapper/Mapster#941 * fix: #925 disable Compile check for open generic configs by @DocSvartz in MapsterMapper/Mapster#942 * Refactoring fix #903 and fix #943 by @DocSvartz in MapsterMapper/Mapster#945 * Actualize benchmark by @Qyperion in MapsterMapper/Mapster#946 * Fix docs: split datatype.md to specific types of topics by @DocSvartz in MapsterMapper/Mapster#914 * [Go to v10.0.8] - update Docs by @DocSvartz in MapsterMapper/Mapster#948 * [Go to v10.0.8] - fix mapster version in benchmark result by @DocSvartz in MapsterMapper/Mapster#949 * feat - add Ignored Remove by @DocSvartz in MapsterMapper/Mapster#956 * fix: #954 fix mapping optional ValueType params by @DocSvartz in MapsterMapper/Mapster#957 * test: cover MapToTarget for types with read-only base properties (#918) by @leno23 in MapsterMapper/Mapster#972 * feat: add CustomResolvers support from Custom Source by @DocSvartz in MapsterMapper/Mapster#981 ## New Contributors * @Qyperion made their first contribution in MapsterMapper/Mapster#946 * @leno23 made their first contribution in MapsterMapper/Mapster#972 **Full Changelog**: MapsterMapper/Mapster@10.0.7...v10.0.8 ## 10.0.8-pre07 ## What's Changed * Actualize benchmark by @Qyperion in MapsterMapper/Mapster#946 * Fix docs: split datatype.md to specific types of topics by @DocSvartz in MapsterMapper/Mapster#914 * [Go to v10.0.8] - update Docs by @DocSvartz in MapsterMapper/Mapster#948 * [Go to v10.0.8] - fix mapster version in benchmark result by @DocSvartz in MapsterMapper/Mapster#949 * feat - add Ignored Remove by @DocSvartz in MapsterMapper/Mapster#956 * fix: #954 fix mapping optional ValueType params by @DocSvartz in MapsterMapper/Mapster#957 * test: cover MapToTarget for types with read-only base properties (#918) by @leno23 in MapsterMapper/Mapster#972 * feat: add CustomResolvers support from Custom Source by @DocSvartz in MapsterMapper/Mapster#981 ## New Contributors * @Qyperion made their first contribution in MapsterMapper/Mapster#946 * @leno23 made their first contribution in MapsterMapper/Mapster#972 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre06...v10.0.8-pre07 ## 10.0.8-pre06 ## What's Changed * Refactoring fix #903 and fix #943 by @DocSvartz in MapsterMapper/Mapster#945 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre05...v10.0.8-pre06 ## 10.0.8-pre05 ## What's Changed * feat: #938 - Add DirectAssignmentForSameType() by @DocSvartz in MapsterMapper/Mapster#941 * fix: #925 disable Compile check for open generic configs by @DocSvartz in MapsterMapper/Mapster#942 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre04...v10.0.8-pre05 ## 10.0.8-pre04 ## What's Changed * fix IgnoreNonMapped member collector #924 by @DocSvartz in MapsterMapper/Mapster#929 * Fix: #928 - not creation abstract destination if souce is null by @DocSvartz in MapsterMapper/Mapster#933 * fix: #927 add skip if destination member is not setter by @DocSvartz in MapsterMapper/Mapster#934 * fix: #925 - Compile config with open generic is not throw exception by @DocSvartz in MapsterMapper/Mapster#935 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre03...v10.0.8-pre04 ## 10.0.8-pre03 ## What's Changed * fix race condition when mapping to Record used IgnoreNullValues by @DocSvartz in MapsterMapper/Mapster#923 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre02...v10.0.8-pre03 ## 10.0.8-pre02 ## What's Changed * fix IsNotSelfCreation detect by @DocSvartz in MapsterMapper/Mapster#919 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre01...v10.0.8-pre02 ## 10.0.8-pre01 ## What's Changed * feat: add Flattening mapping for all source type by @DocSvartz in MapsterMapper/Mapster#916 **Full Changelog**: MapsterMapper/Mapster@10.0.7...v10.0.8-pre01 Commits viewable in [compare view](MapsterMapper/Mapster@10.0.7...v10.0.8). </details> Updated [Mapster.DependencyInjection](https://github.com/MapsterMapper/Mapster) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Mapster.DependencyInjection's releases](https://github.com/MapsterMapper/Mapster/releases)._ ## 10.0.8 ## What's Changed * feat: add Flattening mapping for all source type by @DocSvartz in MapsterMapper/Mapster#916 * fix IsNotSelfCreation detect by @DocSvartz in MapsterMapper/Mapster#919 * fix race condition when mapping to Record used IgnoreNullValues by @DocSvartz in MapsterMapper/Mapster#923 * fix IgnoreNonMapped member collector #924 by @DocSvartz in MapsterMapper/Mapster#929 * Fix: #928 - not creation abstract destination if souce is null by @DocSvartz in MapsterMapper/Mapster#933 * fix: #927 add skip if destination member is not setter by @DocSvartz in MapsterMapper/Mapster#934 * fix: #925 - Compile config with open generic is not throw exception by @DocSvartz in MapsterMapper/Mapster#935 * feat: #938 - Add DirectAssignmentForSameType() by @DocSvartz in MapsterMapper/Mapster#941 * fix: #925 disable Compile check for open generic configs by @DocSvartz in MapsterMapper/Mapster#942 * Refactoring fix #903 and fix #943 by @DocSvartz in MapsterMapper/Mapster#945 * Actualize benchmark by @Qyperion in MapsterMapper/Mapster#946 * Fix docs: split datatype.md to specific types of topics by @DocSvartz in MapsterMapper/Mapster#914 * [Go to v10.0.8] - update Docs by @DocSvartz in MapsterMapper/Mapster#948 * [Go to v10.0.8] - fix mapster version in benchmark result by @DocSvartz in MapsterMapper/Mapster#949 * feat - add Ignored Remove by @DocSvartz in MapsterMapper/Mapster#956 * fix: #954 fix mapping optional ValueType params by @DocSvartz in MapsterMapper/Mapster#957 * test: cover MapToTarget for types with read-only base properties (#918) by @leno23 in MapsterMapper/Mapster#972 * feat: add CustomResolvers support from Custom Source by @DocSvartz in MapsterMapper/Mapster#981 ## New Contributors * @Qyperion made their first contribution in MapsterMapper/Mapster#946 * @leno23 made their first contribution in MapsterMapper/Mapster#972 **Full Changelog**: MapsterMapper/Mapster@10.0.7...v10.0.8 ## 10.0.8-pre07 ## What's Changed * Actualize benchmark by @Qyperion in MapsterMapper/Mapster#946 * Fix docs: split datatype.md to specific types of topics by @DocSvartz in MapsterMapper/Mapster#914 * [Go to v10.0.8] - update Docs by @DocSvartz in MapsterMapper/Mapster#948 * [Go to v10.0.8] - fix mapster version in benchmark result by @DocSvartz in MapsterMapper/Mapster#949 * feat - add Ignored Remove by @DocSvartz in MapsterMapper/Mapster#956 * fix: #954 fix mapping optional ValueType params by @DocSvartz in MapsterMapper/Mapster#957 * test: cover MapToTarget for types with read-only base properties (#918) by @leno23 in MapsterMapper/Mapster#972 * feat: add CustomResolvers support from Custom Source by @DocSvartz in MapsterMapper/Mapster#981 ## New Contributors * @Qyperion made their first contribution in MapsterMapper/Mapster#946 * @leno23 made their first contribution in MapsterMapper/Mapster#972 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre06...v10.0.8-pre07 ## 10.0.8-pre06 ## What's Changed * Refactoring fix #903 and fix #943 by @DocSvartz in MapsterMapper/Mapster#945 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre05...v10.0.8-pre06 ## 10.0.8-pre05 ## What's Changed * feat: #938 - Add DirectAssignmentForSameType() by @DocSvartz in MapsterMapper/Mapster#941 * fix: #925 disable Compile check for open generic configs by @DocSvartz in MapsterMapper/Mapster#942 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre04...v10.0.8-pre05 ## 10.0.8-pre04 ## What's Changed * fix IgnoreNonMapped member collector #924 by @DocSvartz in MapsterMapper/Mapster#929 * Fix: #928 - not creation abstract destination if souce is null by @DocSvartz in MapsterMapper/Mapster#933 * fix: #927 add skip if destination member is not setter by @DocSvartz in MapsterMapper/Mapster#934 * fix: #925 - Compile config with open generic is not throw exception by @DocSvartz in MapsterMapper/Mapster#935 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre03...v10.0.8-pre04 ## 10.0.8-pre03 ## What's Changed * fix race condition when mapping to Record used IgnoreNullValues by @DocSvartz in MapsterMapper/Mapster#923 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre02...v10.0.8-pre03 ## 10.0.8-pre02 ## What's Changed * fix IsNotSelfCreation detect by @DocSvartz in MapsterMapper/Mapster#919 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre01...v10.0.8-pre02 ## 10.0.8-pre01 ## What's Changed * feat: add Flattening mapping for all source type by @DocSvartz in MapsterMapper/Mapster#916 **Full Changelog**: MapsterMapper/Mapster@10.0.7...v10.0.8-pre01 Commits viewable in [compare view](MapsterMapper/Mapster@10.0.7...v10.0.8). </details> 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… 10.0.8 (#311) Updated [Mapster](https://github.com/MapsterMapper/Mapster) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Mapster's releases](https://github.com/MapsterMapper/Mapster/releases)._ ## 10.0.8 ## What's Changed * feat: add Flattening mapping for all source type by @DocSvartz in MapsterMapper/Mapster#916 * fix IsNotSelfCreation detect by @DocSvartz in MapsterMapper/Mapster#919 * fix race condition when mapping to Record used IgnoreNullValues by @DocSvartz in MapsterMapper/Mapster#923 * fix IgnoreNonMapped member collector #924 by @DocSvartz in MapsterMapper/Mapster#929 * Fix: #928 - not creation abstract destination if souce is null by @DocSvartz in MapsterMapper/Mapster#933 * fix: #927 add skip if destination member is not setter by @DocSvartz in MapsterMapper/Mapster#934 * fix: #925 - Compile config with open generic is not throw exception by @DocSvartz in MapsterMapper/Mapster#935 * feat: #938 - Add DirectAssignmentForSameType() by @DocSvartz in MapsterMapper/Mapster#941 * fix: #925 disable Compile check for open generic configs by @DocSvartz in MapsterMapper/Mapster#942 * Refactoring fix #903 and fix #943 by @DocSvartz in MapsterMapper/Mapster#945 * Actualize benchmark by @Qyperion in MapsterMapper/Mapster#946 * Fix docs: split datatype.md to specific types of topics by @DocSvartz in MapsterMapper/Mapster#914 * [Go to v10.0.8] - update Docs by @DocSvartz in MapsterMapper/Mapster#948 * [Go to v10.0.8] - fix mapster version in benchmark result by @DocSvartz in MapsterMapper/Mapster#949 * feat - add Ignored Remove by @DocSvartz in MapsterMapper/Mapster#956 * fix: #954 fix mapping optional ValueType params by @DocSvartz in MapsterMapper/Mapster#957 * test: cover MapToTarget for types with read-only base properties (#918) by @leno23 in MapsterMapper/Mapster#972 * feat: add CustomResolvers support from Custom Source by @DocSvartz in MapsterMapper/Mapster#981 ## New Contributors * @Qyperion made their first contribution in MapsterMapper/Mapster#946 * @leno23 made their first contribution in MapsterMapper/Mapster#972 **Full Changelog**: MapsterMapper/Mapster@10.0.7...v10.0.8 ## 10.0.8-pre07 ## What's Changed * Actualize benchmark by @Qyperion in MapsterMapper/Mapster#946 * Fix docs: split datatype.md to specific types of topics by @DocSvartz in MapsterMapper/Mapster#914 * [Go to v10.0.8] - update Docs by @DocSvartz in MapsterMapper/Mapster#948 * [Go to v10.0.8] - fix mapster version in benchmark result by @DocSvartz in MapsterMapper/Mapster#949 * feat - add Ignored Remove by @DocSvartz in MapsterMapper/Mapster#956 * fix: #954 fix mapping optional ValueType params by @DocSvartz in MapsterMapper/Mapster#957 * test: cover MapToTarget for types with read-only base properties (#918) by @leno23 in MapsterMapper/Mapster#972 * feat: add CustomResolvers support from Custom Source by @DocSvartz in MapsterMapper/Mapster#981 ## New Contributors * @Qyperion made their first contribution in MapsterMapper/Mapster#946 * @leno23 made their first contribution in MapsterMapper/Mapster#972 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre06...v10.0.8-pre07 ## 10.0.8-pre06 ## What's Changed * Refactoring fix #903 and fix #943 by @DocSvartz in MapsterMapper/Mapster#945 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre05...v10.0.8-pre06 ## 10.0.8-pre05 ## What's Changed * feat: #938 - Add DirectAssignmentForSameType() by @DocSvartz in MapsterMapper/Mapster#941 * fix: #925 disable Compile check for open generic configs by @DocSvartz in MapsterMapper/Mapster#942 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre04...v10.0.8-pre05 ## 10.0.8-pre04 ## What's Changed * fix IgnoreNonMapped member collector #924 by @DocSvartz in MapsterMapper/Mapster#929 * Fix: #928 - not creation abstract destination if souce is null by @DocSvartz in MapsterMapper/Mapster#933 * fix: #927 add skip if destination member is not setter by @DocSvartz in MapsterMapper/Mapster#934 * fix: #925 - Compile config with open generic is not throw exception by @DocSvartz in MapsterMapper/Mapster#935 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre03...v10.0.8-pre04 ## 10.0.8-pre03 ## What's Changed * fix race condition when mapping to Record used IgnoreNullValues by @DocSvartz in MapsterMapper/Mapster#923 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre02...v10.0.8-pre03 ## 10.0.8-pre02 ## What's Changed * fix IsNotSelfCreation detect by @DocSvartz in MapsterMapper/Mapster#919 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre01...v10.0.8-pre02 ## 10.0.8-pre01 ## What's Changed * feat: add Flattening mapping for all source type by @DocSvartz in MapsterMapper/Mapster#916 **Full Changelog**: MapsterMapper/Mapster@10.0.7...v10.0.8-pre01 Commits viewable in [compare view](MapsterMapper/Mapster@10.0.7...v10.0.8). </details> Updated [Mapster.DependencyInjection](https://github.com/MapsterMapper/Mapster) from 10.0.7 to 10.0.8. <details> <summary>Release notes</summary> _Sourced from [Mapster.DependencyInjection's releases](https://github.com/MapsterMapper/Mapster/releases)._ ## 10.0.8 ## What's Changed * feat: add Flattening mapping for all source type by @DocSvartz in MapsterMapper/Mapster#916 * fix IsNotSelfCreation detect by @DocSvartz in MapsterMapper/Mapster#919 * fix race condition when mapping to Record used IgnoreNullValues by @DocSvartz in MapsterMapper/Mapster#923 * fix IgnoreNonMapped member collector #924 by @DocSvartz in MapsterMapper/Mapster#929 * Fix: #928 - not creation abstract destination if souce is null by @DocSvartz in MapsterMapper/Mapster#933 * fix: #927 add skip if destination member is not setter by @DocSvartz in MapsterMapper/Mapster#934 * fix: #925 - Compile config with open generic is not throw exception by @DocSvartz in MapsterMapper/Mapster#935 * feat: #938 - Add DirectAssignmentForSameType() by @DocSvartz in MapsterMapper/Mapster#941 * fix: #925 disable Compile check for open generic configs by @DocSvartz in MapsterMapper/Mapster#942 * Refactoring fix #903 and fix #943 by @DocSvartz in MapsterMapper/Mapster#945 * Actualize benchmark by @Qyperion in MapsterMapper/Mapster#946 * Fix docs: split datatype.md to specific types of topics by @DocSvartz in MapsterMapper/Mapster#914 * [Go to v10.0.8] - update Docs by @DocSvartz in MapsterMapper/Mapster#948 * [Go to v10.0.8] - fix mapster version in benchmark result by @DocSvartz in MapsterMapper/Mapster#949 * feat - add Ignored Remove by @DocSvartz in MapsterMapper/Mapster#956 * fix: #954 fix mapping optional ValueType params by @DocSvartz in MapsterMapper/Mapster#957 * test: cover MapToTarget for types with read-only base properties (#918) by @leno23 in MapsterMapper/Mapster#972 * feat: add CustomResolvers support from Custom Source by @DocSvartz in MapsterMapper/Mapster#981 ## New Contributors * @Qyperion made their first contribution in MapsterMapper/Mapster#946 * @leno23 made their first contribution in MapsterMapper/Mapster#972 **Full Changelog**: MapsterMapper/Mapster@10.0.7...v10.0.8 ## 10.0.8-pre07 ## What's Changed * Actualize benchmark by @Qyperion in MapsterMapper/Mapster#946 * Fix docs: split datatype.md to specific types of topics by @DocSvartz in MapsterMapper/Mapster#914 * [Go to v10.0.8] - update Docs by @DocSvartz in MapsterMapper/Mapster#948 * [Go to v10.0.8] - fix mapster version in benchmark result by @DocSvartz in MapsterMapper/Mapster#949 * feat - add Ignored Remove by @DocSvartz in MapsterMapper/Mapster#956 * fix: #954 fix mapping optional ValueType params by @DocSvartz in MapsterMapper/Mapster#957 * test: cover MapToTarget for types with read-only base properties (#918) by @leno23 in MapsterMapper/Mapster#972 * feat: add CustomResolvers support from Custom Source by @DocSvartz in MapsterMapper/Mapster#981 ## New Contributors * @Qyperion made their first contribution in MapsterMapper/Mapster#946 * @leno23 made their first contribution in MapsterMapper/Mapster#972 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre06...v10.0.8-pre07 ## 10.0.8-pre06 ## What's Changed * Refactoring fix #903 and fix #943 by @DocSvartz in MapsterMapper/Mapster#945 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre05...v10.0.8-pre06 ## 10.0.8-pre05 ## What's Changed * feat: #938 - Add DirectAssignmentForSameType() by @DocSvartz in MapsterMapper/Mapster#941 * fix: #925 disable Compile check for open generic configs by @DocSvartz in MapsterMapper/Mapster#942 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre04...v10.0.8-pre05 ## 10.0.8-pre04 ## What's Changed * fix IgnoreNonMapped member collector #924 by @DocSvartz in MapsterMapper/Mapster#929 * Fix: #928 - not creation abstract destination if souce is null by @DocSvartz in MapsterMapper/Mapster#933 * fix: #927 add skip if destination member is not setter by @DocSvartz in MapsterMapper/Mapster#934 * fix: #925 - Compile config with open generic is not throw exception by @DocSvartz in MapsterMapper/Mapster#935 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre03...v10.0.8-pre04 ## 10.0.8-pre03 ## What's Changed * fix race condition when mapping to Record used IgnoreNullValues by @DocSvartz in MapsterMapper/Mapster#923 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre02...v10.0.8-pre03 ## 10.0.8-pre02 ## What's Changed * fix IsNotSelfCreation detect by @DocSvartz in MapsterMapper/Mapster#919 **Full Changelog**: MapsterMapper/Mapster@v10.0.8-pre01...v10.0.8-pre02 ## 10.0.8-pre01 ## What's Changed * feat: add Flattening mapping for all source type by @DocSvartz in MapsterMapper/Mapster#916 **Full Changelog**: MapsterMapper/Mapster@10.0.7...v10.0.8-pre01 Commits viewable in [compare view](MapsterMapper/Mapster@10.0.7...v10.0.8). </details> 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-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> 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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Summary