-
Notifications
You must be signed in to change notification settings - Fork 0
Bump Microsoft.Data.SqlClient from 5.1.5 to 6.1.2 #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Adding impelmentation of leader election for Azure Blob Storage, Consul, FileSystem, InMemory, PostgreSQL, Redis, SqlServer and ZooKeeper. Adding tests. Adding Github Action for build and running tests. Adding MinVer versioning. Adding .eidtorconfig file, .gitattributes and .gitignore. Fixes #1
…s workflow Replace docker-compose with docker compose in Github Actions workflow since Github Action runners no longer have the docker-compose command installed by default. Fixes #1
Adding health checks in docker-compose.yml file, renaming container names, added timeouts for running tests in the Github Action workflow Fixes #1
Ensure the directorypath exists in the tests, and create it if it does not exist Fixes #1
Resolving possible race condition in the FileSystem provider, consecutive await using statements could cause disposal problems and could cause hangs Fixes #1
…topAsync is called before disposal IHost instance is not being properly disposed when StopAsync is called before disposal, leaving background services running and causing tests to hang. Changed the entire approach in the IsZooKeeperAvailableAsync() method to create an instance of the ZooKeeperLeaderElectionProvider class and calling the health check method to check whether ZooKeeper is available. Fixes #1
…ed when StopAsync is called before disposal Similar to the issue for ZooKeeper. IHost instance is not being properly disposed when StopAsync is called before disposal, leaving background services running and causing tests to hang. Changed the entire approach in the IsPostgreSqlAvailableAsync() and IsSqlServerAvailableAsync() methods to create an instance of the LeaderElextion provider classes and calling the health check method to check whether PostgreSQL and SqlServer are available. Fixes #1
…nto the tests Changed a GetAwaiter().GetResult() call that had snuck into the tests, and created a version of the WaitForConditionAsync method which takes a Func<Task<bool>> instead of just Func<bool> to properly handle async conditions without blocking. Removed properties not used in Is*AvailableAsync() methods Fixes #1
Correct Github Action workflow permissions: - added contents:read for the workflow to read repository contents - added checks:write for the workflow to create check runs (required by dorny/test-reporter) - added pull-requests:write for the workflow to comment on pull requests with test results Fixes #1
Collections were still being modified by background tasks(s) when test assertions were enumerating the collection, causing trouble. A total of four tests were fixed. Fixes #3
…fied Even after awaiting eventTask the collection could still be modified, correcting this by taking a thread-safe snapshot of the collection before making assertions Fixes #3
Apply thread-safe snapshot pattern to all tests that access the shared events collection to prevent "Collection was modified; enumeration operation may not execute" errors in Github Actions. Changes: - Take array snapshot of events collection while holding lock before making assertions in 6 tests: Where_ShouldFilterEvents, Take_ShouldLimitNumberOfEvents, Skip_ShouldSkipEvents, DistinctUntilChanged_ShouldFilterConsecutiveDuplicates, Throttle_ShouldLimitEventRate, and Debounce_ShouldDelayEvents - Reorder cleanup and assertions to ensure background tasks complete before accessing the collection - Use .Length property instead of .Count for array assertions - Add explanatory comments for exception handling during cleanup This ensures complete thread-safety by creating immutable snapshots of the collection while holding the lock, eliminating any possibility of race conditions during enumeration. All 16 tests now pass reliably in both local and GitHub Actions environments. Fixes #3
Implemented IAsyncDisposable to prevent ObjectDisposedException when timer callbacks execute during disposal. Added active callback tracking with atomic operations and wait mechanism to ensure safe shutdown. Includes 8 new tests covering concurrent disposal scenarios.
Add centralized parameter validation to prevent invalid inputs across all provider implementations and service extensions. Changes: - Created ParameterValidation helper class with validation methods for election groups, participant IDs, metadata, and lock timeouts - Added validation to all 8 provider implementations (PostgreSQL, SQL Server, Redis, FileSystem, InMemory, Consul, ZooKeeper, Azure Blob Storage) - Added null checks to LeaderElectionServiceExtensions methods - Updated ILeaderElectionProvider XML documentation with validation requirements and exception details - Added 108 comprehensive validation tests covering all scenarios Validation enforces: - Non-null, non-empty, non-whitespace identifiers - Alphanumeric characters, underscores, hyphens, and periods only - Maximum length limits (255 chars for identifiers, 4000 for metadata values) - Positive lock timeouts not exceeding 1 day - Metadata entry limits (max 100 entries)
Improve disposal patterns across all provider implementations to ensure consistent, safe, and non-blocking resource cleanup. Changes: - Implemented IAsyncDisposable for Consul and ZooKeeper providers to properly handle async cleanup operations without blocking threads - Standardized disposal pattern across all 8 providers to use early return pattern for consistency - Added 11 comprehensive disposal tests covering basic disposal, double disposal safety, and ObjectDisposedException after disposal - Added detailed XML documentation for DisposeAsync() and Dispose() methods in providers with async cleanup Providers modified: - ConsulLeaderElectionProvider: Added IAsyncDisposable, replaced blocking .Wait() with proper async disposal of Consul sessions - ZooKeeperLeaderElectionProvider: Added IAsyncDisposable, replaced blocking .Wait() with proper async disposal of ZooKeeper connection - SqlServerLeaderElectionProvider: Standardized disposal pattern - RedisLeaderElectionProvider: Standardized disposal pattern Test coverage: - All providers now have disposal tests ensuring idempotent disposal - All providers verify methods throw ObjectDisposedException after disposal - Async-disposable providers have dedicated DisposeAsync() tests - Total: 217 tests
…y descriptions Add comprehensive concurrent scenario tests validating thread-safety and race condition handling across multiple participants. - Add ConcurrentScenarioTests.cs with tests for: - Multiple participants competing for leadership - Rapid acquire/release cycles - Concurrent heartbeat updates - Leader failover scenarios - Update README.md: - Rename all "LeaderElection.Net" references to "MultiLock" - Add "Concurrency and Thread-Safety" documentation section - Update package names, namespaces, and project paths - Enhance disposal patterns in provider tests
…Drafter Implement comprehensive CI/CD infrastructure for automated NuGet package publishing and release management to prepare MultiLock for production deployment. ### NuGet Publishing Workflow - Add automated NuGet publishing workflow with manual and tag-based triggers - Configure package validation using dotnet-validate tool - Implement selective publishing to exclude core MultiLock package (embedded in providers) - Add dry-run mode for testing without actual publication - Include symbol package (.snupkg) publishing for debugging support - Integrate with Release Drafter for automatic changelog updates ### Package Configuration & Standardization - Centralize package metadata in Directory.Build.props - Implement MinVer for semantic versioning from Git tags (v-prefix, 1.0 minimum) - Enable SourceLink for source code debugging support - Configure deterministic builds for reproducibility - Add XML documentation generation for all packages - Standardize package metadata (authors, license, repository, tags) - Optimize package logo to NuGet standards (128x128px, 27.65 KB) ### Release Automation - Add Release Drafter for PR-based automatic changelog generation - Configure 9 changelog categories (Breaking Changes, Features, Bug Fixes, etc.) - Implement auto-labeling based on files, branches, and PR titles - Create comprehensive label definitions (215 labels across all categories) - Add PR template to guide contributors on proper labeling ### Project Structure Improvements - Clean up all .csproj files by removing redundant properties - Standardize provider package configuration across all 8 providers - Update .gitignore to exclude build artifacts and temporary files ### Documentation - Add comprehensive Release Drafter usage guide - Document GitHub Actions workflows and their purposes - Create label setup automation script This implementation provides a production-ready CI/CD pipeline that ensures consistent versioning, automated changelog generation, and reliable package publishing to NuGet.org for all 8 MultiLock provider packages.
Adding CONTRIBUTING.ms and CODE_OF_CONDUCT.md file, correcting minor issue in the setup-labels.ps1 powershell file
Fixes validation error when updating draft releases. The pull_request_target event provides valid commit references instead of PR merge refs.
Correcting minor language issue in the CODE_OF_CONDUCT.md file, and correcting sample code in the CONTRIBUTING.md file
Setting up Dependabot for version updates
…oft.Extensions.Logging.Abstractions Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 8.0.0 to 9.0.10 Bumps Microsoft.Extensions.Logging.Abstractions from 8.0.0 to 9.0.10 --- updated-dependencies: - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 9.0.10 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 9.0.10 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
--- updated-dependencies: - dependency-name: Microsoft.Data.SqlClient dependency-version: 6.1.2 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
52ab3dd to
351a7e2
Compare
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
Updated Microsoft.Data.SqlClient from 5.1.5 to 6.1.2.
Release notes
Sourced from Microsoft.Data.SqlClient's releases.
6.1.2
This update brings the below changes over the previous stable release:
Fixed
System.InvalidOperationException#36296.1.1
This update includes the following changes since the 6.1.0 release:
Fixed
SqlVector<T>.NullAPI signature in Reference assembly. #3521Changed
Azure.Identityand other dependencies to newer versions. (#3538) (#3552)6.1.0
Release Notes
Stable Release 6.1.0 - 2025-07-25
This update brings the following changes since the 6.0.2 stable release:
Added
Added dedicated SQL Server vector datatype support
What Changed:
Who Benefits:
Impact:
Revived .NET Standard 2.0 target support
What Changed:
Who Benefits:
... (truncated)
6.1.0-preview2
Preview Release 6.1.0-preview2.25178.5 - 2025-06-27
This update brings the following changes since the 6.1.0-preview1 release:
Added
Added dedicated SQL Server vector datatype support
What Changed:
Who Benefits:
Impact:
Revived .NET Standard 2.0 target support
What Changed:
Who Benefits:
Impact:
... (truncated)
6.1.0-preview1
This update brings the following changes over the previous release:
Added
Fixed
Data Sourceparameter begins with a comma. #3250.Changed
SqlBulkCopyto explicitly identify mismatched column names. #3183.IBufferWriter<byte>. #2452.byte[]withstringfor SNI to improve efficiency. #2790.New Contributors
DockerLinuxTest/Program.csreference dotnet/SqlClient#30416.0.3
This update brings the below changes over the previous stable release:
Fixed
Changed
SqlDecimalimplementation to improve code compliance #34666.0.2
This update brings the below changes over the previous release:
Fixed
NullPointerExceptionduring socket receive #3283Changed
6.0.1
Released to NuGet.org on 2025-01-23
Breaking Changes
Added
JSON Support
JSON data type support is now available in Microsoft.Data.SqlClient v6.0. This release introduces
SqlJsontype available as an extension toSystem.Data.SqlDbTypes: