ktsu.DelegateTransform 1.1.8

Prefix Reserved
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package ktsu.DelegateTransform --version 1.1.8
                    
NuGet\Install-Package ktsu.DelegateTransform -Version 1.1.8
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ktsu.DelegateTransform" Version="1.1.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ktsu.DelegateTransform" Version="1.1.8" />
                    
Directory.Packages.props
<PackageReference Include="ktsu.DelegateTransform" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ktsu.DelegateTransform --version 1.1.8
                    
#r "nuget: ktsu.DelegateTransform, 1.1.8"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ktsu.DelegateTransform@1.1.8
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ktsu.DelegateTransform&version=1.1.8
                    
Install as a Cake Addin
#tool nuget:?package=ktsu.DelegateTransform&version=1.1.8
                    
Install as a Cake Tool

ktsu.DelegateTransform

A utility library for transforming values using delegates in C#.

License NuGet NuGet Downloads Build Status GitHub Stars

Introduction

DelegateTransform is a utility library that provides methods for transforming values using various delegate types in C#. It offers a clean and efficient way to apply transformations using ActionRef, Func, and FuncRef delegates, making your code more readable and functional.

Important: All With methods return a new transformed value - they never mutate the original input. This provides functional programming semantics even when using reference-based delegates.

Features

  • ActionRef Transformations: Modify copies of values by reference using action delegates
  • Func Transformations: Transform values using function delegates
  • FuncRef Transformations: Transform values by reference using function delegates that return values
  • Copy-on-Transform: Original values are never mutated
  • Generic Implementation: Works with any value or reference type

Supported Frameworks

  • .NET 10.0, 9.0, 8.0, 7.0, 6.0
  • .NET Standard 2.1

Installation

Package Manager Console

Install-Package ktsu.DelegateTransform

.NET CLI

dotnet add package ktsu.DelegateTransform

Package Reference

<PackageReference Include="ktsu.DelegateTransform" Version="x.y.z" />

Usage Examples

With ActionRef

The With method can be used with an ActionRef<T> delegate to apply a transformation by reference and return the result:

using ktsu.DelegateTransform;

int input = 5;
int result = DelegateTransform.With(input, (ref int x) => x *= 2);
// result is 10, input is still 5 (original unchanged)

With Func

The With method can be used with a Func<T, T> delegate to transform the input value:

using ktsu.DelegateTransform;

int input = 5;
int result = DelegateTransform.With(input, x => x * 2);
// result is 10

With FuncRef

The With method can be used with a FuncRef<T> delegate to transform the input value by reference:

using ktsu.DelegateTransform;

int input = 5;
int result = DelegateTransform.With(input, (ref int x) => x * x);
// result is 25, input is still 5 (original unchanged)

Chaining Transformations

You can chain multiple transformations by nesting calls:

using ktsu.DelegateTransform;

// Starting value
string input = "example";

// Chain of transformations
string step1 = DelegateTransform.With(input, s => s.ToUpper());           // "EXAMPLE"
string step2 = DelegateTransform.With(step1, s => s.Replace("EX", "**")); // "**AMPLE"
string result = DelegateTransform.With(step2, s => s + " transformed");   // "**AMPLE transformed"

Console.WriteLine(result); // Outputs: **AMPLE transformed

Complex Object Transformations

using ktsu.DelegateTransform;

var person = new Person { Name = "John", Age = 30 };

// Transform using ActionRef (for reference types, the object is modified)
Person updatedPerson = DelegateTransform.With(person, (ref Person p) => {
    p.Name = p.Name.ToUpper();
    p.Age += 1;
});

Console.WriteLine($"{updatedPerson.Name}, {updatedPerson.Age}"); // Outputs: JOHN, 31

// Transform using Func to create a string description
string description = DelegateTransform.With(person, p =>
    $"{p.Name} is {p.Age} years old");

Console.WriteLine(description); // Outputs: JOHN is 31 years old

API Reference

Delegate Types

// Custom delegate for actions on references
public delegate void ActionRef<T>(ref T item);

// Custom delegate for functions on references
public delegate T FuncRef<T>(ref T item);

DelegateTransform Static Class

The main class providing transformation methods.

Methods
Method Parameters Return Type Description
With<T> T input, ActionRef<T> delegate T Creates a copy, applies the action by reference, returns the modified copy
With<T> T input, Func<T, T> delegate T Applies a function to the input and returns the result
With<T> T input, FuncRef<T> delegate T Passes input by reference to the function and returns the result

All methods throw ArgumentNullException if the delegate is null.

Design Principles

Copy-on-Transform

The library follows a functional programming pattern where the original input is never mutated:

public static T With<T>(T input, ActionRef<T> @delegate)
{
    Ensure.NotNull(@delegate);

    T output = input;  // Creates a copy
    @delegate(ref output);
    return output;
}

This ensures predictable behavior and prevents side effects on the original values.

Performance Considerations

For value types (structs), a copy is made before transformation. For large structs where you want to avoid copying, consider using the FuncRef<T> overload which passes by reference and returns the modified value.

For reference types (classes), the "copy" is actually a copy of the reference, so the underlying object can be modified. If you need true immutability for reference types, create a new instance within your delegate.

Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please make sure to update tests as appropriate and adhere to the existing coding style.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.9-pre.1 31 2/17/2026
1.1.8 47 2/16/2026
1.1.8-pre.1 40 2/16/2026
1.1.7 47 2/14/2026
1.1.6 48 2/14/2026
1.1.6-pre.8 43 2/6/2026
1.1.6-pre.7 47 2/5/2026
1.1.6-pre.6 41 2/3/2026
1.1.6-pre.5 49 2/3/2026
1.1.6-pre.4 48 2/1/2026
1.1.6-pre.3 44 1/31/2026
1.1.6-pre.2 41 1/31/2026
1.1.6-pre.1 47 1/31/2026
1.1.5 86 1/30/2026
1.1.5-pre.2 44 1/28/2026
1.1.5-pre.1 41 1/26/2026
1.1.4 88 1/26/2026
1.1.3 371 5/21/2025
1.1.3-pre.17 151 5/20/2025
1.1.3-pre.15 105 5/17/2025
Loading failed

## v1.1.8 (patch)

Changes since v1.1.7:

- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.8-pre.1 (prerelease)

Changes since v1.1.7:

- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.7 (patch)

Changes since v1.1.6:

- Remove legacy build scripts ([@matt-edmondson](https://github.com/matt-edmondson))

## v1.1.6 (patch)

Changes since v1.1.5:

- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync COPYRIGHT.md ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync COPYRIGHT.md ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.6-pre.8 (prerelease)

Changes since v1.1.6-pre.7:

- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.6-pre.7 (prerelease)

Changes since v1.1.6-pre.6:

- Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.6-pre.6 (prerelease)

Changes since v1.1.6-pre.5:

- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.6-pre.5 (prerelease)

Changes since v1.1.6-pre.4:

- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.6-pre.4 (prerelease)

Changes since v1.1.6-pre.3:

- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.6-pre.3 (prerelease)

Changes since v1.1.6-pre.2:

- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync COPYRIGHT.md ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.6-pre.2 (prerelease)

Changes since v1.1.6-pre.1:

- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.6-pre.1 (prerelease)

No significant changes detected since v1.1.6.

## v1.1.5 (patch)

Changes since v1.1.4:

- Remove .github\workflows\project.yml ([@matt-edmondson](https://github.com/matt-edmondson))
- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\update-winget-manifests.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.5-pre.2 (prerelease)

Changes since v1.1.5-pre.1:

- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync global.json ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.5-pre.1 (prerelease)

No significant changes detected since v1.1.5.

## v1.1.4 (patch)

Changes since v1.1.3:

- Refactor DelegateTransform methods for null checking and update project dependencies ([@matt-edmondson](https://github.com/matt-edmondson))
- Update project SDKs in DelegateTransform and DelegateTransform.Test to MSTest and Microsoft.NET.Sdk ([@matt-edmondson](https://github.com/matt-edmondson))
- Add CLAUDE.md for project guidance and documentation ([@matt-edmondson](https://github.com/matt-edmondson))
- Update project configuration files, add new workflows, and enhance SDK management ([@matt-edmondson](https://github.com/matt-edmondson))
- Update .editorconfig, .gitignore, .runsettings, and PSBuild.psm1 for improved configurations and functionality ([@matt-edmondson](https://github.com/matt-edmondson))

## v1.1.3 (patch)

Changes since v1.1.2:

- Update ktsu.ScopedAction package reference to version 1.1.2 ([@matt-edmondson](https://github.com/matt-edmondson))

## v1.1.3-pre.17 (prerelease)

Changes since v1.1.3-pre.16:

- Merge remote-tracking branch 'refs/remotes/origin/main' ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .gitattributes ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .mailmap ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .runsettings ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.3-pre.16 (prerelease)

Changes since v1.1.3-pre.15:

- Sync scripts\PSBuild.psm1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .gitattributes ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .mailmap ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .runsettings ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.3-pre.15 (prerelease)

Changes since v1.1.3-pre.14:


## v1.1.3-pre.14 (prerelease)

Changes since v1.1.3-pre.13:


## v1.1.3-pre.13 (prerelease)

Changes since v1.1.3-pre.12:


## v1.1.3-pre.12 (prerelease)

Changes since v1.1.3-pre.11:


## v1.1.3-pre.11 (prerelease)

Changes since v1.1.3-pre.10:


## v1.1.3-pre.10 (prerelease)

Changes since v1.1.3-pre.9:


## v1.1.3-pre.9 (prerelease)

Changes since v1.1.3-pre.8:


## v1.1.3-pre.8 (prerelease)

Changes since v1.1.3-pre.7:


## v1.1.3-pre.7 (prerelease)

Changes since v1.1.3-pre.6:


## v1.1.3-pre.6 (prerelease)

Changes since v1.1.3-pre.5:


## v1.1.3-pre.5 (prerelease)

Changes since v1.1.3-pre.4:


## v1.1.3-pre.4 (prerelease)

Changes since v1.1.3-pre.3:


## v1.1.3-pre.3 (prerelease)

Changes since v1.1.3-pre.2:


## v1.1.3-pre.2 (prerelease)

Changes since v1.1.3-pre.1:


## v1.1.3-pre.1 (prerelease)

No significant changes detected since v1.1.3.

## v1.1.2 (patch)

Changes since v1.1.1:

- Remove Directory.Build.props and Directory.Build.targets files; add copyright headers to DelegateTransform and DelegateTransformTests; update variable declarations in tests for consistency; delete unused PowerShell scripts for metadata and version management. ([@matt-edmondson](https://github.com/matt-edmondson))
- Update README with detailed library introduction, features, usage examples, and API reference; change project SDK references in .csproj files to ktsu.Sdk.Lib and ktsu.Sdk.Test. ([@matt-edmondson](https://github.com/matt-edmondson))

## v1.1.2-pre.2 (prerelease)

Changes since v1.1.2-pre.1:

- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .runsettings ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.1.2-pre.1 (prerelease)

No significant changes detected since v1.1.2.

## v1.1.1 (patch)

Changes since v1.1.0:

- Update packages ([@matt-edmondson](https://github.com/matt-edmondson))

## v1.1.0 (minor)

Changes since v1.0.0:

- Add LICENSE template ([@matt-edmondson](https://github.com/matt-edmondson))
- Apply new editorconfig ([@matt-edmondson](https://github.com/matt-edmondson))

## v1.0.2-pre.3 (prerelease)

Changes since v1.0.2-pre.2:

- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.0.2-pre.2 (prerelease)

Changes since v1.0.2-pre.1:

- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .editorconfig ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync .gitignore ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync Directory.Build.targets ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.0.2-pre.1 (prerelease)

Changes since v1.0.1:

- Bump ktsu.ScopedAction from 1.0.14 to 1.0.15 in the ktsu group ([@dependabot[bot]](https://github.com/dependabot[bot]))

## v1.0.1 (patch)

Changes since v1.0.0:

- Apply new editorconfig ([@matt-edmondson](https://github.com/matt-edmondson))

## v1.0.1-pre.16 (prerelease)

Changes since v1.0.1-pre.15:

- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.0.1-pre.15 (prerelease)

Changes since v1.0.1-pre.14:

- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.0.1-pre.14 (prerelease)

Changes since v1.0.1-pre.13:

- Sync scripts\make-version.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))
- Sync scripts\make-changelog.ps1 ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.0.1-pre.13 (prerelease)

Changes since v1.0.1-pre.12:

- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.0.1-pre.12 (prerelease)

Changes since v1.0.1-pre.11:

- Sync .github\workflows\dotnet.yml ([@ktsu[bot]](https://github.com/ktsu[bot]))

## v1.0.1-pre.11 (prerelease)

Changes since v1.0.1-pre.10:


## v1.0.1-pre.10 (prerelease)

Changes since v1.0.1-pre.9:


## v1.0.1-pre.9 (prerelease)

Changes since v1.0.1-pre.8:

- Bump MSTest from 3.7.2 to 3.7.3 ([@dependabot[bot]](https://github.com/dependabot[bot]))

## v1.0.1-pre.8 (prerelease)

Changes since v1.0.1-pre.7:


## v1.0.1-pre.7 (prerelease)

Changes since v1.0.1-pre.6:


## v1.0.1-pre.6 (prerelease)

Changes since v1.0.1-pre.5:

- Bump MSTest from 3.7.1 to 3.7.2 ([@dependabot[bot]](https://github.com/dependabot[bot]))

## v1.0.1-pre.5 (prerelease)

Changes since v1.0.1-pre.4:

- Bump coverlet.collector from 6.0.3 to 6.0.4 ([@dependabot[bot]](https://github.com/dependabot[bot]))

## v1.0.1-pre.4 (prerelease)

Changes since v1.0.1-pre.3:


## v1.0.1-pre.3 (prerelease)

Changes since v1.0.1-pre.2:


## v1.0.1-pre.2 (prerelease)

Changes since v1.0.1-pre.1:

- Bump MSTest from 3.7.0 to 3.7.1 ([@dependabot[bot]](https://github.com/dependabot[bot]))

## v1.0.1-pre.1 (prerelease)

No significant changes detected since v1.0.1.

## v1.0.0 (major)

No significant changes detected since v0.0.1-pre.1.

## v0.0.1-pre.1 (prerelease)

- Add AllowEmptyCollection attribute to SEARCH_TAGS parameter in MakeNotesForRange function ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor tag handling in changelog and version scripts to ensure default values are set correctly when no tags are found ([@matt-edmondson](https://github.com/matt-edmondson))
- Enable debugging trace in changelog and version scripts ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix formatting issues and handle empty tag scenarios in changelog script ([@matt-edmondson](https://github.com/matt-edmondson))
- Set default version to 'v1.0.0-pre.0' if no tags are found ([@matt-edmondson](https://github.com/matt-edmondson))
- Initial commit ([@matt-edmondson](https://github.com/matt-edmondson))