Remove platform-specific builds#4465
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
|
@edwardneal - Thanks for progressing this work! It will lead to a much more simplified repo, build system, pipelines, and NuGet package layout. I will review this eagerly :) One ask though - can you benchmark before and after these changes? I'd like to see if there is any significant change we need to be aware of. |
paulmedynski
left a comment
There was a problem hiding this comment.
Love it! Just one comment/question.
|
Initial benchmarks are below. All benchmarks are connecting to a locally-run SQL Server 2025 instance on Windows, with no AppContext switches set. HeaderSummary
Connection open/close
Send strings
|
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4465 +/- ##
==========================================
- Coverage 65.83% 62.45% -3.39%
==========================================
Files 287 283 -4
Lines 43763 66821 +23058
==========================================
+ Hits 28812 41730 +12918
- Misses 14951 25091 +10140
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
benrr101
left a comment
There was a problem hiding this comment.
Fantastic work, thank you so much @edwardneal !! I'm surprised it was so easy!
There's still work to do to rework the nuget package and such, but that's something I'd be happy to take on. And that next step to eliminate the ref and unsupported projects is something I've wanted to do since I joined the team a while ago 😅
Description
This follows up #4207, feeding the same pattern through the SNI layer and removing the logic which sets
_UNIXand_WINDOWS. By the end of this, we've got the SqlClient project building the same code for both Windows and non-Windows platforms, but without any changes to the structure of the NuGet package.We can't move commit-by-commit and see a compiling project, but I've worked upwards from the SNI layer.
cc @benrr101
Issues
Follows up #4207.
Part of #4239.
Testing
Tests continue to pass, and I've checked the output of an application which has been trimmed. All but two types are removed as expected on Linux,
OsConstantsis folded to a constant and the managed SNI is retained.With that being said, I'm running on Windows. I'd definitely appreciate a CI run to ensure that we've got a baseline of a working NuGet package on Linux in an untrimmed configuration.