All notable changes to DesignAlgorithmsKit will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- N/A
- N/A
- N/A
- N/A
- N/A
- N/A
UUIDv5Generatorfor deterministic UUID generation from namespace and name
- Fixed compiler warnings in
JobManager.swift(removed unnecessaryawait)
- Improved test coverage for
Singleton,Merger,TaskOrchestrator, andHashAlgorithmProtocol
ThreadSafeArrayandThreadSafeDictionary
- Boosted unit test coverage across multiple patterns (Builder, Factory, Adapter, Facade, Observer, Strategy)
- Added
AGENTS.mdrelease/tagging guideline documentation
Dataextensions for convenient SHA256 hashing (sha256,sha256Hex)
- Improved error handling in
HashComputationto useLocalizedErrorwith descriptive messages
- Fixed compiler warnings in
MergerTestsregardingSendableconformance and unnecessaryawait - Fixed type mismatch errors in
HashComputationTests
- Bumped version to 1.3.0
Codableconformance toHashAlgorithm
- Restructured
HashComputationto root level for proper exports
- HashComputation feature
- Queue Processing Pattern - Concurrent queue management with status tracking, progress monitoring, and retry support
QueueItemprotocol for items that can be processed in a queueQueueProcessorprotocol for processing queue itemsProcessingQueueactor for managing concurrent processing with configurable limits- Features: status tracking (pending, processing, completed, failed), progress monitoring (0.0 to 1.0), retry support, pause/resume functionality, cancellation, deduplication
- Comprehensive unit tests (15 tests)
- Merging/Upsert Pattern - Configurable merge strategies for conflict resolution
Mergeableprotocol for types that can be mergedMergeStrategyenum with strategies: preferExisting, preferNew, combine, customMergerprotocol for merging items with configurable strategiesDefaultMergerbase class with default implementations- Comprehensive unit tests (32 tests)
- Added comprehensive unit tests for new patterns
- Queue Processing Pattern: 15 tests covering all features and edge cases
- Merging/Upsert Pattern: 32 tests covering all strategies, edge cases, and protocol conformance
- Total: 153 tests (was 123) ➕ +30 new tests
- Updated README.md with usage examples for Queue Processing Pattern and Merging/Upsert Pattern
- Improved code coverage:
- Overall: 96.15% lines (up from 96.06%)
- Queue.swift: 89.23% regions, 91.50% lines
- Merger.swift: 83.33% regions, 84.62% lines
- Enhanced documentation with comprehensive examples for new patterns
- N/A
- Added comprehensive unit tests for Builder pattern (12 tests total)
- Test for BaseBuilder default implementation (notImplemented error)
- Tests for BuilderError localizedDescription for all error cases
- Test for fluent API chaining with multiple method calls
- Test for optional properties handling
- Test for multiple independent builder instances
- Test for ValidatingBuilderProtocol default implementation
- Comprehensive validation tests with multiple rules
- Test for error pattern matching
- Test for builder reuse scenarios
- Added comprehensive unit tests to improve code coverage
- Added tests for Singleton createShared() path and init()
- Added tests for BaseStrategy and StrategyContext edge cases
- Added tests for Factory error handling, thread safety, and edge cases
- Added tests for Registry protocol method, default keys, and thread safety
- Added tests for HashAlgorithm extension fallback behavior
- Added test for HashAlgorithm string extension consistency
- Added SingletonError enum for better error handling in Singleton pattern
- Refactored Singleton.createShared() to throw SingletonError instead of fatalError
- Makes the error path testable while maintaining fatalError for production use
- Improved Singleton function coverage from 50% to 80%
- Refactored HashAlgorithm extension to improve testability
- Added documentation explaining UTF-8 conversion fallback behavior
- Documented fallback hash path as conditionally untestable
- Improved overall code coverage:
- Regions: 87.31% → 87.75%
- Functions: 88.24% → 90.29%
- Lines: 90.91% → 91.38%
- Fixed compiler warning in SingletonTests about 'is' test always being true
- Fixed Builder pattern testability - improved coverage to 100% (from 66.67%)
- Fixed test for StrategyContext with same strategy type
- Added documentation explaining why fatalError path in Singleton.shared cannot be tested
- Added documentation to HashAlgorithm fallback implementation explaining conditional testability
- Improved code documentation for testability throughout codebase
- Fixed duplicate
import Foundationstatement inMerkleTree.swift - Fixed compiler warnings in
BuilderTests.swiftabout unused mutable variables- Changed
var newBuilder = selfpattern to directselfmutation - Since
BaseBuilderis a class (reference type), we can mutateselfdirectly
- Changed
- Fixed workflow YAML syntax errors that prevented execution
- Renamed workflow file to
publish-github-pages.ymlfor consistency with project standards - Refactored workflow to use shell script approach matching the 'me' project pattern
- Added
publish-docc-to-github-pages.shscript for documentation generation and publishing - Updated permissions to use
contents:writeinstead ofpages:write - Added Git configuration step for GitHub Actions
- Added support for
GH_PATtoken fallback for cross-repository access
- Initial release with core design patterns and algorithms
- Registry Pattern implementation
- Factory Pattern implementation
- Builder Pattern implementation
- Singleton Pattern implementation
- Strategy Pattern implementation
- Observer Pattern implementation
- Facade Pattern implementation
- Adapter Pattern implementation
- Merkle Tree data structure
- Bloom Filter data structure
- Counting Bloom Filter variant
- SHA-256 hash algorithm
- Comprehensive unit test suite (67 tests)
- DocC documentation
- GitHub Actions CI/CD workflows
- Code coverage reporting