Skip to content

feat!: restructure SDK with multi-targeting, test suites and modern HTTP/logging - #8

Open
Renancp01 wants to merge 1 commit into
inter-co:masterfrom
Renancp01:refactor/structure
Open

feat!: restructure SDK with multi-targeting, test suites and modern HTTP/logging#8
Renancp01 wants to merge 1 commit into
inter-co:masterfrom
Renancp01:refactor/structure

Conversation

@Renancp01

@Renancp01 Renancp01 commented Aug 18, 2026

Copy link
Copy Markdown

Summary

  • Multi-target net8.0;net10.0 — existing .NET 8 consumers keep working, new ones get .NET 10
  • Rename projects/solution to .NET naming convention (Inter.Sdk, Inter.Sdk.UnitTests, Inter.Sdk.IntegrationTests, Inter.Sdk.FunctionalTests)
  • Remove orphan netstandard2.0 project (src/, inter-sdk-csharp.csproj) and stop tracking build artifacts (bin/, obj/, .idea/)
  • Add Inter.Sdk.UnitTests (29 tests): enums, config, URL building, error parsing, model serialization, logging
  • Add Inter.Sdk.IntegrationTests (62 tests): every public client method tested end-to-end against a local WireMock server (no credentials needed, CI-ready), plus an optional sandbox suite gated by INTER_* environment variables
  • Migrate HTTP layer from obsolete HttpWebRequest (SYSLIB0014) to pooled HttpClient, preserving public signatures, 429 retry and error parsing behavior
  • Pluggable logging via Microsoft.Extensions.Logging: inject any ILogger (Serilog/Loki, OpenTelemetry, console...); request/response bodies log at Debug level; token responses are never logged; default file logger preserves the historical logs/inter-sdk-{Day}.log behavior
  • Optional Config.BaseUrl override (tests, proxies)
  • English README and NuGet publishing workflow (tag v* → nuget.org, requires NUGET_API_KEY secret)

⚠️ BREAKING CHANGE

Root namespace changed from inter_sdk_library to Inter.Sdk (standard .NET PascalCase naming) and the assembly/package is now Inter.Sdk 2.0.0 instead of inter-sdk-library.

Migration for consumers:

- using inter_sdk_library;
+ using Inter.Sdk;

DLL/package references must point to the new Inter.Sdk name.

Open questions for maintainers

  • NuGet package ID strategy: confirm Inter.Sdk availability / reserved prefix on nuget.org and which org account holds the publish key
  • Release communication plan for the 2.0.0 breaking change

Test evidence

  • dotnet test Inter.Sdk.UnitTests → 29 passed (net8.0 and net10.0)
  • dotnet test Inter.Sdk.IntegrationTests → 62 passed + 1 skipped sandbox (net8.0 and net10.0)
  • dotnet pack Inter.Sdk -c ReleaseInter.Sdk.2.0.0.nupkg builds cleanly

…TTP/logging

- Multi-target net8.0;net10.0 (existing net8 consumers keep working)
- Rename projects/solution to .NET naming convention (Inter.Sdk*)
- Remove orphan netstandard2.0 project (src/, inter-sdk-csharp.csproj)
- Stop tracking build artifacts and IDE folders (bin/, obj/, .idea/)
  with proper .gitignore coverage at every level
- Add Inter.Sdk.UnitTests (29 tests) covering enums, config, URL
  building, error parsing, model serialization and logging
- Add WireMock-based Inter.Sdk.IntegrationTests (62 tests) covering
  every public client method end-to-end without credentials, plus an
  optional sandbox suite gated by environment credentials
- Migrate HTTP layer from obsolete HttpWebRequest (SYSLIB0014) to
  pooled HttpClient, preserving public signatures, 429 retry and
  error parsing behavior
- Add pluggable logging via Microsoft.Extensions.Logging (ILogger
  injection); request/response bodies log at Debug level; token
  responses are never logged; default file logger keeps the
  historical logs/inter-sdk-{Day}.log behavior
- Add optional Config.BaseUrl override (tests, proxies)
- Add English README and NuGet publishing workflow (tag v* -> nuget.org)

BREAKING CHANGE: the root namespace changed from inter_sdk_library to
Inter.Sdk (standard .NET PascalCase naming) and the assembly/package is
now Inter.Sdk (2.0.0) instead of inter-sdk-library. Consumers must
replace 'using inter_sdk_library;' with 'using Inter.Sdk;' and update
DLL/package references to the new name.
@Renancp01
Renancp01 marked this pull request as ready for review August 18, 2026 01:10
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.

1 participant