Upgrade and Modernize#2
Merged
Merged
Conversation
7f553c3 to
6539e48
Compare
There was a problem hiding this comment.
Pull request overview
This PR modernizes the project’s build, CI, and test setup while upgrading both the Elixir and .NET dependency stacks for the SQL Server driver (Netler-backed .NET worker + DBConnection protocol).
Changes:
- Replace hardcoded SQL Server test connection strings with a Testcontainers-provisioned container started in
test/test_helper.exs. - Upgrade the .NET worker to .NET 8 +
Microsoft.Data.SqlClient, and update Netler integration (including a custom Mix compiler task). - Add benchmarking + a new GitHub Actions workflow for build/test/release automation.
Reviewed changes
Copilot reviewed 20 out of 21 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
test/transaction_test.exs |
Switches tests to use shared connection string from app env. |
test/query_test.exs |
Switches tests to use shared connection string from app env. |
test/prepared_statement_test.exs |
Switches tests to use shared connection string from app env. |
test/data_type_test.exs |
Switches tests to use shared connection string from app env. |
test/test_helper.exs |
Starts SQL Server container via Testcontainers and publishes connection string. |
mix.exs |
Updates project versioning/build compilers and adds/updates dependencies (Netler/Testcontainers/Benchee/etc.). |
mix.lock |
Locks upgraded dependency set. |
mise.toml |
Pins toolchain versions for Erlang/Elixir/.NET via mise. |
lib/mix/tasks/compile/dotnet_build.ex |
Adds custom Mix compiler to build .NET worker reliably with Netler 0.4.x. |
lib/ex_sql_client/protocol.ex |
Refines DBConnection protocol behaviors (connect error handling, cursor errors, status, etc.). |
dotnet/dotnet_sql_client/SqlAdapter.cs |
Migrates to Microsoft.Data.SqlClient, typed RPC surface, and improved parameter handling. |
dotnet/dotnet_sql_client/Program.cs |
Updates Netler.NET server bootstrap to typed routes (+ logger, NoOp route). |
dotnet/dotnet_sql_client/ElixirLogger.cs |
Adds stderr logger to surface .NET logs in Elixir console/CI. |
dotnet/dotnet_sql_client/DotnetSqlClient.csproj |
Upgrades to net8.0 and updates package references. |
docker-compose.yml |
Removes docker-compose-based SQL Server test setup. |
bench/benchmarks.exs |
Adds benchmarks for query/transaction/prepared-statement + raw IPC overhead. |
VERSION |
Adds base version file used by release workflow. |
AGENTS.md |
Adds contributor/agent guidance and repository documentation. |
.travis.yml |
Removes Travis CI configuration. |
.testcontainers.properties |
Disables Ryuk for rootless Podman compatibility. |
.github/workflows/build-test-publish.yml |
Adds GitHub Actions pipeline for matrix testing + benchmarking + publishing. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR modernizes the project’s build, CI, and test setup while upgrading both the Elixir and .NET dependency stacks for the SQL Server driver (Netler-backed .NET worker + DBConnection protocol).
Changes:
test/test_helper.exs.Microsoft.Data.SqlClient, and update Netler integration (including a custom Mix compiler task).