Skip to content

Conversation

@sfc-gh-mgemra
Copy link
Collaborator

@sfc-gh-mgemra sfc-gh-mgemra commented Nov 5, 2025

Description

Package will not contain dll dedicated to a given OS and platform:

lib/net481/Snowflake.Data.dll
lib/net8.0/Snowflake.Data.dll
lib/net8.0-windows7.0/Snowflake.Data.dll
lib/netstandard2.0/Snowflake.Data.dll

Versions dedicated for Windows do not contain Mono.Unix dependency.
You can verify it by building a package and then veryfing nuspec file, e.g:
unzip -p Snowflake.Data.5.1.0.nupkg Snowflake.Data.nuspec | grep -A 15 "targetFramework=\"net8.0\""

The size of the package increased (multiple dlls), but IMO it's still small and acceptable (still under 1 MB).

More about targetting and precedence is described here: https://github.com/dotnet/designs/blob/main/accepted/2020/net5/net5.md#precedences - tldr; The assets that are closer in version number are chosen over platform-specific assets.

Checklist

  • Code compiles correctly
  • Code is formatted according to Coding Conventions
  • Created tests which fail without the change (if possible)
  • All tests passing (dotnet test)
  • Extended the README / documentation, if necessary
  • Provide JIRA issue id (if possible) or GitHub issue id in PR name

@codecov
Copy link

codecov bot commented Nov 5, 2025

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
3357 1 3356 115
View the full list of 3 ❄️ flaky test(s)
Snowflake.Data.Tests.IntegrationTests.MaxLobSizeIT::TestSelectOnSpecifiedSize_JSON_16777216

Flake rate in main: 16.67% (Passed 25 times, Failed 5 times)

Stack Traces | 121s run time
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at Snowflake.Data.Core.RestRequester.Post[T](IRestRequest request) in .../snowflake-connector-net/snowflake-connector-net/Snowflake.Data/Core/RestRequester.cs:line 51
   at Snowflake.Data.Core.SFStatement.ExecuteHelper[T,U](Int32 timeout, String sql, Dictionary`2 bindings, Boolean describeOnly, Boolean asyncExec) in .../snowflake-connector-net/snowflake-connector-net/Snowflake.Data/Core/SFStatement.cs:line 677
   at Snowflake.Data.Core.SFStatement.ExecuteSqlOtherThanPutGet(Int32 timeout, String sql, Dictionary`2 bindings, Boolean describeOnly, Boolean asyncExec) in .../snowflake-connector-net/snowflake-connector-net/Snowflake.Data/Core/SFStatement.cs:line 552
   at Snowflake.Data.Core.SFStatement.Execute(Int32 timeout, String sql, Dictionary`2 bindings, Boolean describeOnly, Boolean asyncExec) in .../snowflake-connector-net/snowflake-connector-net/Snowflake.Data/Core/SFStatement.cs:line 469
   at Snowflake.Data.Client.SnowflakeDbCommand.ExecuteInternal(Boolean describeOnly, Boolean asyncExec) in .../snowflake-connector-net/snowflake-connector-net/Snowflake.Data/Client/SnowflakeDbCommand.cs:line 453
   at Snowflake.Data.Client.SnowflakeDbCommand.ExecuteDbDataReader(CommandBehavior behavior) in .../snowflake-connector-net/snowflake-connector-net/Snowflake.Data/Client/SnowflakeDbCommand.cs:line 263
   at Snowflake.Data.Tests.IntegrationTests.MaxLobSizeIT.TestPositionalInsert(ResultFormat resultFormat, Int32 lobSize) in .../snowflake-connector-net/snowflake-connector-net/Snowflake.Data.Tests/IntegrationTests/MaxLobSizeIT.cs:line 204
   at InvokeStub_MaxLobSizeIT.TestPositionalInsert(Object, Object, IntPtr*)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
--HttpRequestException
   at System.Net.Http.HttpContent.LoadIntoBufferAsyncCore(Task serializeToStreamTask, MemoryStream tempBuffer)
   at System.Net.Http.HttpContent.WaitAndReturnAsync[TState,TResult](Task waitTask, TState state, Func`2 returnFunc)
   at Snowflake.Data.Core.RestRequester.PostAsync[T](IRestRequest request, CancellationToken cancellationToken) in .../snowflake-connector-net/snowflake-connector-net/Snowflake.Data/Core/RestRequester.cs:line 58
   at Snowflake.Data.Core.RestRequester.<>c__DisplayClass3_0`1.<<Post>b__0>d.MoveNext() in .../snowflake-connector-net/snowflake-connector-net/Snowflake.Data/Core/RestRequester.cs:line 51
--IOException
   at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
   at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](Memory`1 buffer, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
   at System.Net.Http.HttpConnection.FillAsync(Boolean async)
   at System.Net.Http.HttpConnection.ChunkedEncodingReadStream.CopyToAsyncCore(Stream destination, CancellationToken cancellationToken)
   at System.IO.Compression.DeflateStream.CopyToStream.CopyFromSourceToDestinationAsync()
   at System.Net.Http.DecompressionHandler.DecompressedContent.SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken)
   at System.Net.Http.HttpContent.LoadIntoBufferAsyncCore(Task serializeToStreamTask, MemoryStream tempBuffer)
Snowflake.Data.Tests.IntegrationTests.SFDbCommandIT::TestPutArrayBindAsyncMultiThreading

Flake rate in main: 14.29% (Passed 6 times, Failed 1 times)

Stack Traces | 7.65s run time
--TearDown
   at Snowflake.Data.Core.SFStatement.ExecuteHelper[T,U](Int32 timeout, String sql, Dictionary`2 bindings, Boolean describeOnly, Boolean asyncExec) in D:\a\snowflake-connector-net\snowflake-connector-net\Snowflake.Data\Core\SFStatement.cs:line 728
   at Snowflake.Data.Core.SFStatement.ExecuteSqlOtherThanPutGet(Int32 timeout, String sql, Dictionary`2 bindings, Boolean describeOnly, Boolean asyncExec) in D:\a\snowflake-connector-net\snowflake-connector-net\Snowflake.Data\Core\SFStatement.cs:line 569
   at Snowflake.Data.Core.SFStatement.Execute(Int32 timeout, String sql, Dictionary`2 bindings, Boolean describeOnly, Boolean asyncExec) in D:\a\snowflake-connector-net\snowflake-connector-net\Snowflake.Data\Core\SFStatement.cs:line 469
   at Snowflake.Data.Client.SnowflakeDbCommand.ExecuteInternal(Boolean describeOnly, Boolean asyncExec) in D:\a\snowflake-connector-net\snowflake-connector-net\Snowflake.Data\Client\SnowflakeDbCommand.cs:line 453
   at Snowflake.Data.Client.SnowflakeDbCommand.ExecuteNonQuery() in D:\a\snowflake-connector-net\snowflake-connector-net\Snowflake.Data\Client\SnowflakeDbCommand.cs:line 165
   at Snowflake.Data.Tests.SFBaseTestAsync.RemoveTables() in D:\a\snowflake-connector-net\snowflake-connector-net\Snowflake.Data.Tests\SFBaseTest.cs:line 131
   at Snowflake.Data.Tests.SFBaseTestAsync.AfterTest() in D:\a\snowflake-connector-net\snowflake-connector-net\Snowflake.Data.Tests\SFBaseTest.cs:line 114
Snowflake.Data.Tests.UnitTests.Revocation.CrlCacheManagerTest::TestScheduledCleanupRemovesStaleEntries

Flake rate in main: 14.29% (Passed 6 times, Failed 1 times)

Stack Traces | 1.52s run time
at Snowflake.Data.Tests.UnitTests.Revocation.CrlCacheManagerTest.TestScheduledCleanupRemovesStaleEntries() in D:\a\snowflake-connector-net\snowflake-connector-net\Snowflake.Data.Tests\UnitTests\Revocation\CrlCacheManagerTest.cs:line 166

1)    at Snowflake.Data.Tests.UnitTests.Revocation.CrlCacheManagerTest.TestScheduledCleanupRemovesStaleEntries() in D:\a\snowflake-connector-net\snowflake-connector-net\Snowflake.Data.Tests\UnitTests\Revocation\CrlCacheManagerTest.cs:line 166

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@sfc-gh-mgemra sfc-gh-mgemra force-pushed the mgemra/SNOW-2026116-remove-mono-unix branch 2 times, most recently from 8239867 to cc1d724 Compare November 5, 2025 15:38
@sfc-gh-mgemra sfc-gh-mgemra changed the title SNOW-2026116 Test - remove Mono.Unix from Windows dependencies SNOW-2026116 Remove Mono.Unix from Windows dependencies Nov 5, 2025
@sfc-gh-mgemra sfc-gh-mgemra force-pushed the mgemra/SNOW-2026116-remove-mono-unix branch 7 times, most recently from 7797a1b to 13601c4 Compare November 14, 2025 11:08
@sfc-gh-mgemra sfc-gh-mgemra force-pushed the mgemra/SNOW-2026116-remove-mono-unix branch from 13601c4 to e187b82 Compare November 14, 2025 11:18
@sfc-gh-mgemra sfc-gh-mgemra force-pushed the mgemra/SNOW-2026116-remove-mono-unix branch from baa0c1b to 86de02e Compare November 14, 2025 12:46
- Created DirectoryOperationsWindowsTest for Windows-specific tests
- Created DirectoryOperationsUnixTest for Unix-specific tests
- Added RuntimeInformation platform check in Unix test setup
- Added [Platform(Exclude="Win")] to DirectoryUnixInformationTest
- Removed original mixed DirectoryOperationsTest file

This completes the platform-specific test refactoring to fix OneTimeSetUp
errors on Windows for net481 target framework.
@sfc-gh-mgemra sfc-gh-mgemra force-pushed the mgemra/SNOW-2026116-remove-mono-unix branch from 3bb6644 to 3298127 Compare November 14, 2025 13:15
The converter was double-counting permissions by including both individual
flags (UserRead, UserWrite) and their combinations (UserReadWrite).

This caused it to return incorrect values, e.g. expecting 404 but getting 1004.

The fix excludes all combination flags (ReadWrite, ReadExecute, WriteExecute,
AllPermissions, DefaultPermissions, None) so only individual Read/Write/Execute
flags are counted.

All 512 UnixFilePermissionsConverterTest test cases now pass.
@sfc-gh-mgemra sfc-gh-mgemra force-pushed the mgemra/SNOW-2026116-remove-mono-unix branch from 095f338 to 5faeee7 Compare November 14, 2025 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants