Changes since v2.0.3:
- Validate the delay before writing in DelayLine.Process [patch] (Claude)
- Make IndexOf return the element Remove removes [patch] (Claude)
- Grow ContiguousSet before touching its index instead of rolling back (Claude)
- Clamp contiguous container growth to Array.MaxLength [patch] (Claude)
- Reject ring buffer sizes above 2^30 with ArgumentOutOfRangeException [patch] (Claude)
Changes since v2.0.2:
- fix: spread RingBuffer.Resample repeats evenly and document nearest-neighbour [patch] (Claude)
Changes since v2.0.2:
- Bump MSTest.Sdk from 4.4.1 to 4.5.1 (dependabot[bot])
Changes since v2.0.1:
- fix: build OrderedSet/OrderedCollection/OrderedMap in O(n log n) and stop OrderedSet set operations going quadratic [patch] (Claude)
Changes since v2.0.0:
- Merge remote-tracking branch 'origin/main' into perf/83-set-compaction (Claude)
- fix: make ContiguousSet and InsertionOrderSet IntersectWith/SymmetricExceptWith linear [patch] (Claude)
Changes since v1.0.0:
- fix: make ContiguousSet/ContiguousMap.AsSpan read-only and add GetValueRefOrNullRef [major] (Claude)
- fix: release removed and cleared slots on netstandard builds [patch] (Claude)
- fix: throw when a RingBuffer is modified during enumeration [patch] (Claude)
- fix: release RingBuffer elements as PushBack evicts them [patch] (Claude)
- Move CI onto the shared ci-shared.yml pipeline (Claude)
- fix: stop SpscRingBuffer.Count reporting a count the buffer never held [patch] (Claude)
- fix: keep elements that compare equal in insertion order in OrderedCollection [patch] (Claude)
- Share the map enumerators through IVersionedEntries (Claude)
- Tighten the versioned enumerators and share the map tests (Claude)
- fix: throw when an array-backed container is modified during enumeration [patch] (Claude)
- fix: accept Nullable element types in the ordered containers without a comparer [patch] (Claude)
- fix: stop RingBuffer.Resample's index mapping overflowing for large buffers [patch] (Claude)
- fix: keep the stored key when ContiguousMap's indexer updates a value [patch] (Claude)
- fix: release cleared elements in RingBuffer.Clear [patch] (Claude)
- fix: stop GetRange's range check overflowing for large counts [patch] (Claude)
- fix: empty a set when ExceptWith is passed the set itself [patch] (Claude)
- Rename test locals that shadow the expected field (Claude)
- fix: make OrderedCollection.IndexOf and Remove find the first occurrence [patch] (Claude)
- fix: remove set items from storage using the set's comparer [patch] (Claude)
- fix: let OrderedCollection.GetRange take a zero-length range at the end [patch] (Claude)
- fix: reject non-positive lengths in RingBuffer<T> [patch] (Claude)
- fix: honor OrderedSet's own comparer in the set operations [patch] (Claude)
- Gate Dependabot auto-merge on CI actually being green (Claude)
- test: simplify the nullable-bool return in ImportsKtsuSdk [patch] (Claude)
- fix: unblock the test build by replacing the range indexer CA1832 rejects [patch] (Claude)
- test: guard that every project imports ktsu.Sdk and derives its identity [patch] (Claude)
- build: derive Containers.Benchmarks identity from ktsu.Sdk [patch] (Claude)
- ci: adopt the consolidated .NET workflow [patch] (Claude)
- ci: make the SonarQube quality gate opt in [patch] (matt-edmondson)
- ci: adopt the unified dotnet workflow [patch] (matt-edmondson)
- chore: store icon.png in LFS as .gitattributes declares (matt-edmondson)
- docs: scope build badge to the default branch (matt-edmondson)
- docs: correct README, DESCRIPTION and TAGS metadata (matt-edmondson)
- Stop Update SDKs failing when there is nothing to update (matt-edmondson)
- Fix KTSU0001: add direct System.Threading.Tasks.Extensions reference for netstandard2.0 [patch] (matt-edmondson)
- [patch] Cover ContiguousMap.Entry equality and exclude benchmarks from Sonar (matt-edmondson)
- [patch] Fix SonarCloud issues in library and benchmark code (matt-edmondson)
- [patch] Fix SonarCloud MSTest issues and unblock the build (matt-edmondson)
- Sync .github\workflows\dotnet.yml (KtsuTools)
- Sync .editorconfig (KtsuTools)
- Sync global.json (KtsuTools)
- Sync .github\workflows\dotnet.yml (KtsuTools)
- Delete .github/workflows/claude-code-review.yml (matt-edmondson)
- Delete .github/workflows/claude.yml (matt-edmondson)
- chore: update ktsu.Sdk to 2.21.1 [patch] (matt-edmondson)
- chore: remove unused SourceLink package versions (matt-edmondson)
- Remove unused SourceLink package references from Containers.csproj (matt-edmondson)
- Remove unused package references from Directory.Packages.props (matt-edmondson)
- Remove serena/cursor files (matt-edmondson)
- Add compatibility suppressions for package validation (matt-edmondson)
- Update code coverage package and fix nullability issues (matt-edmondson)
- Add real-time-safe SPSC ring buffer and denormal-aware delay line (Claude)
- Sync .github\workflows\dotnet.yml (KtsuTools)
- Remove legacy build scripts (matt-edmondson)
- Refactor exception handling in container classes to use ArgumentOutOfRangeException and Ensure.NotNull (matt-edmondson)
- Refactor assertions in unit tests for improved clarity and consistency (matt-edmondson)
- Update .NET workflow and package configurations (matt-edmondson)
- Add AssemblyInfo, update test assertions, and enhance project configuration (matt-edmondson)
- Add CLAUDE.md for project guidance and update target frameworks to net10.0 (matt-edmondson)
- "Claude Code Review workflow" (matt-edmondson)
- "Claude PR Assistant workflow" (matt-edmondson)
- Fix multi-targeting build errors and add framework polyfills (matt-edmondson)
- Enhance project configuration and workflows (matt-edmondson)
- Update project configuration and dependencies (matt-edmondson)
- Add script to automate winget manifest updates (matt-edmondson)
- Update project configuration and dependencies (matt-edmondson)
- Fix IDE0052 errors by removing unused private members in derived cursor rules (matt-edmondson)
- Fix compilation errors in ContiguousSetBenchmarks and improve collection initialization (matt-edmondson)
- Fix compilation errors and improve tests in collection classes (matt-edmondson)
- Implement equality logic and XML documentation for ContiguousMap.Entry (matt-edmondson)
- Refactor collection classes to use properties for Count (matt-edmondson)
- Enhance ktsu.Containers with new benchmarks and tests (matt-edmondson)
- Add new collection types and update documentation (matt-edmondson)
- Add OrderedMap and its benchmarks to ktsu.Containers (matt-edmondson)
- Add OrderedSet and benchmarking framework for ktsu.Containers (matt-edmondson)
- Refactor RingBuffer to improve efficiency and documentation (matt-edmondson)
- Add configuration files and implement new features (matt-edmondson)
- Add Clear method to RingBuffer and update documentation (matt-edmondson)
Changes since v1.1.30:
- fix: release removed and cleared slots on netstandard builds [patch] (Claude)
- fix: throw when a RingBuffer is modified during enumeration [patch] (Claude)
- fix: release RingBuffer elements as PushBack evicts them [patch] (Claude)
Changes since v1.1.30:
- Bump Polyfill from 11.4.1 to 11.4.3 (dependabot[bot])
Changes since v1.1.29:
- Move CI onto the shared ci-shared.yml pipeline (Claude)
Changes since v1.1.28:
- fix: stop SpscRingBuffer.Count reporting a count the buffer never held [patch] (Claude)
- fix: keep elements that compare equal in insertion order in OrderedCollection [patch] (Claude)
Changes since v1.1.28:
- Bump Polyfill from 11.4.0 to 11.4.1 (dependabot[bot])
Changes since v1.1.27:
- Share the map enumerators through IVersionedEntries (Claude)
- Tighten the versioned enumerators and share the map tests (Claude)
- fix: throw when an array-backed container is modified during enumeration [patch] (Claude)
Changes since v1.1.26:
- fix: accept Nullable element types in the ordered containers without a comparer [patch] (Claude)
- fix: stop RingBuffer.Resample's index mapping overflowing for large buffers [patch] (Claude)
- fix: keep the stored key when ContiguousMap's indexer updates a value [patch] (Claude)
- fix: release cleared elements in RingBuffer.Clear [patch] (Claude)
Changes since v1.1.25:
- fix: stop GetRange's range check overflowing for large counts [patch] (Claude)
- fix: empty a set when ExceptWith is passed the set itself [patch] (Claude)
- Rename test locals that shadow the expected field (Claude)
- fix: make OrderedCollection.IndexOf and Remove find the first occurrence [patch] (Claude)
- fix: remove set items from storage using the set's comparer [patch] (Claude)
Changes since v1.1.24:
- fix: let OrderedCollection.GetRange take a zero-length range at the end [patch] (Claude)
Changes since v1.1.23:
- Bump the ktsu group with 9 updates (dependabot[bot])
Changes since v1.1.22:
- Bump Polyfill from 11.3.0 to 11.4.0 (dependabot[bot])
- Bump the ktsu group with 9 updates (dependabot[bot])
Changes since v1.1.21:
- Bump the ktsu group with 9 updates (dependabot[bot])
Changes since v1.1.20:
- Bump MSTest.Sdk from 4.4.0 to 4.4.1 (dependabot[bot])
Changes since v1.1.19:
- fix: reject non-positive lengths in RingBuffer<T> [patch] (Claude)
- fix: honor OrderedSet's own comparer in the set operations [patch] (Claude)
Changes since v1.1.18:
- Bump the ktsu group with 9 updates (dependabot[bot])
Changes since v1.1.17:
- Gate Dependabot auto-merge on CI actually being green (Claude)
Changes since v1.1.16:
- test: simplify the nullable-bool return in ImportsKtsuSdk [patch] (Claude)
- fix: unblock the test build by replacing the range indexer CA1832 rejects [patch] (Claude)
- test: guard that every project imports ktsu.Sdk and derives its identity [patch] (Claude)
- build: derive Containers.Benchmarks identity from ktsu.Sdk [patch] (Claude)
- ci: adopt the consolidated .NET workflow [patch] (Claude)
Changes since v1.1.15:
- ci: make the SonarQube quality gate opt in [patch] (matt-edmondson)
- ci: adopt the unified dotnet workflow [patch] (matt-edmondson)
No significant changes detected since v1.1.14.
Changes since v1.1.13:
- Bump the ktsu group with 9 updates (dependabot[bot])
Changes since v1.1.12:
- Bump the ktsu group with 9 updates (dependabot[bot])
Changes since v1.1.11:
- chore: store icon.png in LFS as .gitattributes declares (matt-edmondson)
- docs: scope build badge to the default branch (matt-edmondson)
- docs: correct README, DESCRIPTION and TAGS metadata (matt-edmondson)
Changes since v1.1.10:
- Stop Update SDKs failing when there is nothing to update (matt-edmondson)
Changes since v1.1.9:
- Fix KTSU0001: add direct System.Threading.Tasks.Extensions reference for netstandard2.0 [patch] (matt-edmondson)
Changes since v1.1.8:
- [patch] Cover ContiguousMap.Entry equality and exclude benchmarks from Sonar (matt-edmondson)
- [patch] Fix SonarCloud issues in library and benchmark code (matt-edmondson)
- [patch] Fix SonarCloud MSTest issues and unblock the build (matt-edmondson)
- Sync .github\workflows\dotnet.yml (KtsuTools)
- Sync .editorconfig (KtsuTools)
- Sync global.json (KtsuTools)
- Sync .github\workflows\dotnet.yml (KtsuTools)
Changes since v1.1.7:
- Delete .github/workflows/claude-code-review.yml (matt-edmondson)
- Delete .github/workflows/claude.yml (matt-edmondson)
- chore: update ktsu.Sdk to 2.21.1 [patch] (matt-edmondson)
Changes since v1.1.6:
- Bump the ktsu group with 8 updates (dependabot[bot])
Changes since v1.1.5:
- Bump Polyfill from 10.11.1 to 10.11.2 (dependabot[bot])
- Bump the ktsu group with 8 updates (dependabot[bot])
Changes since v1.1.4:
- Bump Polyfill from 10.11.0 to 10.11.1 (dependabot[bot])
Changes since v1.1.3:
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync .github\workflows\dotnet.yml (ktsu[bot])
- Sync global.json (ktsu[bot])
Changes since v1.1.2:
- chore: remove unused SourceLink package versions (matt-edmondson)
- Remove unused SourceLink package references from Containers.csproj (matt-edmondson)
- Remove unused package references from Directory.Packages.props (matt-edmondson)
- Remove serena/cursor files (matt-edmondson)
Changes since v1.1.1:
- Sync .github\workflows\update-sdks.yml (ktsu[bot])
- Sync .github\workflows\dotnet.yml (ktsu[bot])
- Sync .github\dependabot.yml (ktsu[bot])
- Sync .gitignore (ktsu[bot])
- Sync .gitattributes (ktsu[bot])
- Sync global.json (ktsu[bot])
Changes since v1.1.0:
- Add compatibility suppressions for package validation (matt-edmondson)
Changes since v1.0.0:
- Update code coverage package and fix nullability issues (matt-edmondson)
- Add real-time-safe SPSC ring buffer and denormal-aware delay line (Claude)
- Sync .github\workflows\dotnet.yml (KtsuTools)
- Remove legacy build scripts (matt-edmondson)
- Refactor exception handling in container classes to use ArgumentOutOfRangeException and Ensure.NotNull (matt-edmondson)
- Refactor assertions in unit tests for improved clarity and consistency (matt-edmondson)
- Update .NET workflow and package configurations (matt-edmondson)
- Add AssemblyInfo, update test assertions, and enhance project configuration (matt-edmondson)
- Add CLAUDE.md for project guidance and update target frameworks to net10.0 (matt-edmondson)
- "Claude Code Review workflow" (matt-edmondson)
- "Claude PR Assistant workflow" (matt-edmondson)
- Fix multi-targeting build errors and add framework polyfills (matt-edmondson)
- Enhance project configuration and workflows (matt-edmondson)
- Update project configuration and dependencies (matt-edmondson)
- Add script to automate winget manifest updates (matt-edmondson)
- Update project configuration and dependencies (matt-edmondson)
- Fix IDE0052 errors by removing unused private members in derived cursor rules (matt-edmondson)
- Fix compilation errors in ContiguousSetBenchmarks and improve collection initialization (matt-edmondson)
- Fix compilation errors and improve tests in collection classes (matt-edmondson)
- Implement equality logic and XML documentation for ContiguousMap.Entry (matt-edmondson)
- Refactor collection classes to use properties for Count (matt-edmondson)
- Enhance ktsu.Containers with new benchmarks and tests (matt-edmondson)
- Add new collection types and update documentation (matt-edmondson)
- Add OrderedMap and its benchmarks to ktsu.Containers (matt-edmondson)
- Add OrderedSet and benchmarking framework for ktsu.Containers (matt-edmondson)
- Refactor RingBuffer to improve efficiency and documentation (matt-edmondson)
- Add configuration files and implement new features (matt-edmondson)
- Add Clear method to RingBuffer and update documentation (matt-edmondson)
Changes since v1.0.12:
- Sync .github\workflows\dotnet.yml (KtsuTools)
Changes since v1.0.11:
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync .github\workflows\dotnet.yml (ktsu[bot])
- Sync .github\workflows\dotnet.yml (ktsu[bot])
- Sync .github\workflows\dotnet.yml (ktsu[bot])
- Sync .github\workflows\dotnet.yml (ktsu[bot])
Changes since v1.0.11:
- Sync .github\workflows\dotnet.yml (ktsu[bot])
- Sync .github\workflows\dotnet.yml (ktsu[bot])
- Sync .github\workflows\dotnet.yml (ktsu[bot])
Changes since v1.0.10:
- Remove legacy build scripts (matt-edmondson)
Changes since v1.0.9:
- Sync .github\workflows\dotnet.yml (ktsu[bot])
- Sync global.json (ktsu[bot])
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync scripts\update-winget-manifests.ps1 (ktsu[bot])
- Sync scripts\update-winget-manifests.ps1 (ktsu[bot])
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync global.json (ktsu[bot])
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync global.json (ktsu[bot])
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync global.json (ktsu[bot])
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync global.json (ktsu[bot])
- Sync COPYRIGHT.md (ktsu[bot])
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync scripts\update-winget-manifests.ps1 (ktsu[bot])
- Sync COPYRIGHT.md (ktsu[bot])
Changes since v1.0.10-pre.6:
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync scripts\update-winget-manifests.ps1 (ktsu[bot])
Changes since v1.0.10-pre.5:
- Sync scripts\update-winget-manifests.ps1 (ktsu[bot])
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync global.json (ktsu[bot])
Changes since v1.0.10-pre.4:
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync global.json (ktsu[bot])
Changes since v1.0.10-pre.3:
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync global.json (ktsu[bot])
Changes since v1.0.10-pre.2:
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync global.json (ktsu[bot])
- Sync COPYRIGHT.md (ktsu[bot])
Changes since v1.0.10-pre.1:
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync scripts\PSBuild.psm1 (ktsu[bot])
Changes since v1.0.9:
- Sync scripts\update-winget-manifests.ps1 (ktsu[bot])
- Sync COPYRIGHT.md (ktsu[bot])
Changes since v1.0.8:
- Refactor exception handling in container classes to use ArgumentOutOfRangeException and Ensure.NotNull (matt-edmondson)
- Refactor assertions in unit tests for improved clarity and consistency (matt-edmondson)
- Update .NET workflow and package configurations (matt-edmondson)
Changes since v1.0.8:
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync scripts\update-winget-manifests.ps1 (ktsu[bot])
Changes since v1.0.7:
- Add AssemblyInfo, update test assertions, and enhance project configuration (matt-edmondson)
- Add CLAUDE.md for project guidance and update target frameworks to net10.0 (matt-edmondson)
Changes since v1.0.8-pre.2:
- Sync scripts\update-winget-manifests.ps1 (ktsu[bot])
Changes since v1.0.8-pre.1:
- Sync .github\workflows\dotnet.yml (ktsu[bot])
Changes since v1.0.7:
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync .github\workflows\dotnet.yml (ktsu[bot])
Changes since v1.0.6:
- "Claude Code Review workflow" (matt-edmondson)
- "Claude PR Assistant workflow" (matt-edmondson)
Changes since v1.0.6:
- Sync .specstory.gitignore (ktsu[bot])
Changes since v1.0.5:
- Fix multi-targeting build errors and add framework polyfills (matt-edmondson)
- Enhance project configuration and workflows (matt-edmondson)
- Update project configuration and dependencies (matt-edmondson)
Changes since v1.0.4:
- Add script to automate winget manifest updates (matt-edmondson)
Changes since v1.0.3:
- Update project configuration and dependencies (matt-edmondson)
Changes since v1.0.2:
- Fix IDE0052 errors by removing unused private members in derived cursor rules (matt-edmondson)
- Fix compilation errors in ContiguousSetBenchmarks and improve collection initialization (matt-edmondson)
- Fix compilation errors and improve tests in collection classes (matt-edmondson)
- Implement equality logic and XML documentation for ContiguousMap.Entry (matt-edmondson)
- Refactor collection classes to use properties for Count (matt-edmondson)
- Enhance ktsu.Containers with new benchmarks and tests (matt-edmondson)
- Add new collection types and update documentation (matt-edmondson)
- Add OrderedMap and its benchmarks to ktsu.Containers (matt-edmondson)
- Add OrderedSet and benchmarking framework for ktsu.Containers (matt-edmondson)
- Refactor RingBuffer to improve efficiency and documentation (matt-edmondson)
Changes since v1.0.1:
- Add configuration files and implement new features (matt-edmondson)
Changes since v1.0.2-pre.1:
- Merge remote-tracking branch 'refs/remotes/origin/main' (ktsu[bot])
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync .editorconfig (ktsu[bot])
- Sync .gitattributes (ktsu[bot])
- Sync .gitignore (ktsu[bot])
- Sync .mailmap (ktsu[bot])
- Sync .runsettings (ktsu[bot])
Changes since v1.0.1:
- Sync scripts\PSBuild.psm1 (ktsu[bot])
- Sync .editorconfig (ktsu[bot])
- Sync .gitattributes (ktsu[bot])
- Sync .gitignore (ktsu[bot])
- Sync .mailmap (ktsu[bot])
- Sync .runsettings (ktsu[bot])
Changes since v1.0.0:
- Add Clear method to RingBuffer and update documentation (matt-edmondson)
- Refactor PSBuild.psm1 to improve array handling (matt-edmondson)
- Code chaneg to force a build (matt-edmondson)
- Reset licence file (matt-edmondson)
- Enhance versioning logic in PSBuild.psm1 (matt-edmondson)
- Refactor tag handling and error management in PSBuild.psm1 (matt-edmondson)
- Improve tag handling in Get-VersionInfoFromGit function (matt-edmondson)
- Enhance documentation and update project files (matt-edmondson)
- Update SDK versions and enhance documentation tags (matt-edmondson)
- Rename library from ktsu.Collections to ktsu.Containers (matt-edmondson)
- Rename from collections to containers, and implement standard interfaces (matt-edmondson)
- Add tests and constructors for RingBuffer functionality (matt-edmondson)
- Refactor RingBuffer class and add unit tests (matt-edmondson)
- Remove locking to simplify, I can make a concurrent one if I need that (matt-edmondson)
- Refactor locking mechanism in RingBuffer class (matt-edmondson)
- Initial Commit (matt-edmondson)