Skip to content

Releases: lofcz/FastCloner

Release v3.5.5

Choose a tag to compare

@github-actions github-actions released this 12 May 22:05

Chores

  • Improved the release workflow with expanded automation and reliability improvements.

Release v3.5.4

Choose a tag to compare

@github-actions github-actions released this 10 May 15:35

Features

  • Source generator now supports excluding members by visibility.
  • Added FastClonerVisibilityAttribute to control member visibility handling at the type level for both runtime and source-generator paths.
  • Added FastClonerStableHashAttribute to improve stable hash detection for cloner caching.
  • Introduced NonPublicAccessorEmitter and BridgeProxyEmitter in the source generator to enable safe access to non-public members without reflection at runtime.
  • Added FastClonerSourceGeneratorBridge and associated contract attributes to support tighter integration between the runtime cloner and source-generated cloners.

Fixes

  • Fixed a race condition in the cloner state management.
  • Fixed cloning of private and protected fields in source-generated cloners.
  • Resolved an edge case that could cause incorrect cloning behaviour in certain type graphs.
  • Improved cycle tracking to correctly handle complex object graphs.
  • Improved stable hash detection to reduce false cache misses.
  • Fixed nullability warnings across the codebase.

Chores

  • Updated README with revised documentation and usage guidance.
  • Expanded test coverage with new test classes covering bridge proxy emission, non-public accessor generation, struct boxing via the runtime bridge, visibility attribute behaviour, and source generator edge cases.

Release v3.5.3

Choose a tag to compare

@github-actions github-actions released this 28 Mar 22:50

Fixes

  • Fixed issue #35 by hoisting a branch in the expression generator, correcting incorrect cloning behaviour in affected scenarios
  • Fixed source generator emitting unqualified Type references, which caused compilation errors when user code defined a conflicting Type symbol in scope

Chores

  • Added TypeNameConflictTests to guard against regressions when user-defined types conflict with BCL type names
  • Expanded CollectionTests with additional coverage for collection cloning edge cases

Release v3.5.2

Choose a tag to compare

@github-actions github-actions released this 10 Mar 04:06

Fixes

  • Resolved thread safety edge cases that could cause incorrect behavior under concurrent cloning workloads
  • Fixed source generator handling of cross-namespace and generic type scenarios in generated collection helpers and member clone output

Chores

  • Migrated test suite from previous framework to TUnit
  • Added --fqn knob to the internalization builder tool for fully-qualified name control
  • Expanded test coverage across concurrent, source generator, shallow clone, and special case scenarios

Release v3.5.1

Choose a tag to compare

@github-actions github-actions released this 06 Mar 21:18

What's Changed

  • get version back in sync
  • Update release.yml

Updated Projects

FastCloner.csproj -> 3.5.1

Release v3.5.0

Choose a tag to compare

@github-actions github-actions released this 06 Mar 21:03
7279709

What's Changed

  • cleanup
  • faster shallow cloning, cleanup
  • speed up arrays cloning
  • simplify
  • simplify
  • fix
  • reduce lookups per type
  • Update BenchmarkDiffReporter.cs
  • ups
  • Fix safe-type shortcut to exclude boxed value types in Clone1DimArrayClassInternal
  • fix
  • Update benchmark.yml
  • run benchmarks on ci
  • sg: relax deps for analyzers & code fixes
  • move internalization builder to net10
  • specialize rank 1, 2 abstract arrays, hoist more branches
  • mac fix
  • exclude db tests from running on macos
  • ci: run on macos too
  • speed up warm-up when encountering new types
  • improve lru cache
  • runtime: reduce allocations per type, improve locality usage when cloning 2d arrays
  • Update production projects and download count in README
  • more benchmark links
  • Increase test count to 800 in README
  • runtime: perf, internalization builder
  • Update project versions to v3.4.7

Updated Projects

FastCloner.Profiling.csproj -> 0.1.0
FastCloner.Internalization.Builder.csproj -> 0.1.0
FastCloner.csproj -> 3.5.0
FastCloner.SourceGenerator.csproj -> 1.2.0
FastCloner.Tests.csproj -> 0.1.0
FastCloner.SourceGenerator.CodeFixes.csproj -> 0.1.0
FastCloner.SourceGenerator.Analyzers.csproj -> 0.1.0
FastCloner.Benchmark.CI.csproj -> 0.1.0
FastCloner.Benchmark.csproj -> 0.1.0

Release v3.4.7

Choose a tag to compare

@github-actions github-actions released this 26 Feb 17:58

What's Changed

  • sg: fix remaining nullability warnings
  • sg: nullable warnings
  • Update project versions to v3.4.6

Updated Projects

FastCloner.csproj -> 3.4.7
FastCloner.SourceGenerator.csproj -> 1.1.7
FastCloner.Tests.csproj -> 0.0.1

Release v3.4.6

Choose a tag to compare

@github-actions github-actions released this 25 Feb 20:26

What's Changed

  • harden fqns
  • sg: handle collections without count/indexer
  • Update project versions to v3.4.5

Updated Projects

FastCloner.csproj -> 3.4.6
FastCloner.SourceGenerator.csproj -> 1.1.6
FastCloner.Tests.csproj -> 0.0.1
FastCloner.Benchmark.csproj -> 0.0.1

Release v3.4.5

Choose a tag to compare

@github-actions github-actions released this 23 Feb 10:54

What's Changed

  • work on #27
  • Update project versions to v3.4.4

Updated Projects

FastCloner.SourceGenerator.csproj -> 1.1.5
FastCloner.Tests.csproj -> 0.0.1
FastCloner.csproj -> 3.4.5

Release v3.4.4

Choose a tag to compare

@github-actions github-actions released this 27 Jan 08:58

What's Changed

  • sg: prefer RuntimeHelpers.GetUninitializedObject on modern targets
  • metadata
  • Update project versions to v3.4.3

Updated Projects

FastCloner.SourceGenerator.csproj -> 1.1.4
FastCloner.Contrib.csproj -> 0.0.1
FastCloner.csproj -> 3.4.4