Tags: lduchosal/ipnetwork
Tags
feat: re-enable netstandard2.0 with Windows/net48 CI gate (#412) * feat: re-enable netstandard2.0 target on IPNetwork library ns2.0 lets the library be consumed by .NET Framework 4.6.1+ and other ns2.0-compatible runtimes. Source compat changes: - Polyfills.cs: internal NotNullWhenAttribute shim under #if NETSTANDARD2_0 - UniqueLocalAddress: SHA256.HashData is .NET 5+; widen the ComputeHash fallback from #if NETSTANDARD2_1 to #if NETSTANDARD - IPNetwork2WideSubnet: replace nnin[^1] with nnin[Length-1] (System.Index is ns2.1+) - CidrNetworkAware: Contains(char) is .NET Core 2.1+; use IndexOf and add null-forgive since string.IsNullOrWhiteSpace lacks [NotNullWhen] annotation on ns2.0 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ci: add Windows net48 job to gate netstandard2.0 build Multi-target TestProject to net10.0;net48 so the net48 build links against the library's ns2.0 output. This is the only CI path that actually loads the ns2.0 DLL — without it, the new ns2.0 target ships untested. - TestProject.csproj: net10.0;net48; ConsoleApplication ref is net10.0-only (the CLI only targets net10.0); ArchitectureTest, ConsoleUnitTest, ConsoleJsonOutputTest excluded from net48 (they test the CLI, not the library) - IPAddressExtensionTests: SHA256.HashData fallback for non-.NET 5+ - dotnet.yml: new windows-net48 job runs TestProject.exe under net48 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ci: use dotnet test for net48 job EnableMSTestRunner=true doesn't emit a TestProject.exe on net48, so the previous invocation path didn't exist. dotnet test handles both VSTest hosting on .NET Framework and the platform bridge. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ci: emit TestProject.exe for net48 and run directly dotnet test no longer bridges to VSTest under Microsoft.Testing.Platform on .NET 10 SDK. Easiest path: explicit OutputType=Exe so net48 produces TestProject.exe (net10.0 still produces TestProject.dll, unaffected). Workflow runs the exe via the pwsh call operator. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix: NullReferenceException on IPv6 /128 networks in CLI output Removed redundant .ToString() calls on nullable properties (Broadcast, FirstUsable, LastUsable, Network, Netmask). string.Format handles null safely, .ToString() on null does not. Also fixed release workflow: macos-13 runner retired, --skip-duplicate for NuGet push. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix: use macos-latest for osx-x64 build, add --skip-duplicate to nuge… …t push macos-13 runners are no longer available. AOT cross-compiles to osx-x64 from ARM64 runners via --runtime flag. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
PreviousNext