Skip to content

Refactor SDK with W3C tracing, CI setup, and NuGet release workflow#1

Merged
Polliog merged 4 commits intomainfrom
develop
Mar 23, 2026
Merged

Refactor SDK with W3C tracing, CI setup, and NuGet release workflow#1
Polliog merged 4 commits intomainfrom
develop

Conversation

@Polliog
Copy link
Copy Markdown
Contributor

@Polliog Polliog commented Mar 23, 2026

This pull request introduces major new features and improvements to the LogTide SDK, focusing on distributed tracing, ambient context propagation, extensibility, and reliability. It adds support for W3C trace context, a new breadcrumb system, a composable transport layer, and a robust integration system. The CI/CD pipeline is also enhanced with new workflows for continuous integration and automated NuGet releases.

Key changes:

Distributed Tracing and Context Propagation

  • Added W3C traceparent distributed tracing support, replacing the legacy X-Trace-Id header. Introduced LogTideScope using AsyncLocal for ambient trace context across async flows, and span tracking with StartSpan/FinishSpan methods, including OpenTelemetry-compatible OTLP export. (CHANGELOG.md [1] Core/LogTideScope.cs [2] Core/ILogTideClient.cs [3] Core/LogTideClient.cs [4]

Breadcrumb System

  • Introduced a new Breadcrumb model and a thread-safe ring-buffer BreadcrumbBuffer for capturing and attaching breadcrumbs to scopes and log entries. (Breadcrumbs/Breadcrumb.cs [1] Breadcrumbs/BreadcrumbBuffer.cs [2] Core/LogTideScope.cs [3] Core/ILogTideClient.cs [4] Core/LogTideClient.cs [5]

Extensibility and Integration

  • Added a composable transport layer with ILogTransport, ISpanTransport, BatchTransport, LogTideHttpTransport, and OtlpHttpTransport for flexible log and span delivery. Introduced the ILogTideClient interface for DI/testability, and a new integration system with IIntegration and a GlobalErrorIntegration for capturing unhandled exceptions. (Core/ILogTideClient.cs [1] Core/LogTideClient.cs [2] Integrations/IIntegration.cs [3] Integrations/GlobalErrorIntegration.cs [4]

CI/CD and Release Automation

  • Added GitHub Actions workflows for CI (testing on .NET 8 and 9, vulnerability scanning) and for automated NuGet releases triggered by tags. (.github/workflows/ci.yml [1] .github/workflows/release.yml [2]

Documentation and Changelog

  • Updated CHANGELOG.md with detailed entries for all new features, changes, and fixes in version 0.8.3, and added a comparison link for releases. (CHANGELOG.md [1] [2]

Polliog added 4 commits March 23, 2026 11:42
…, transport layer, Serilog sink

- W3C traceparent distributed tracing with AsyncLocal LogTideScope
- Span tracking with OTLP export (StartSpan/FinishSpan)
- Breadcrumbs ring buffer attached to scopes
- Composable transport layer (ILogTransport, ISpanTransport, BatchTransport)
- ILogTideClient interface for DI and testability
- Integration system with GlobalErrorIntegration
- Serilog sink project (LogTide.SDK.Serilog)
- DSN connection string support
- Sensitive header filtering in middleware
- LogTideErrorHandlerMiddleware for unhandled exceptions
- Target frameworks updated to net8.0/net9.0, LangVersion 13
- Fixed 17 bugs including circuit breaker, dispose data loss, race conditions,
  W3C spec compliance, resource leaks, and sync-over-async deadlocks
- 93 tests, 0 warnings, 0 vulnerabilities
Build + test matrix on .NET 8 and 9, vulnerability check.
Triggers on push and pull_request to main and develop.
Push a tag like v0.8.3 to build, test, pack, and publish
both LogTide.SDK and LogTide.SDK.Serilog to NuGet.
Also creates a GitHub Release with the .nupkg artifacts.
Requires NUGET_API_KEY secret configured in repository settings.
@Polliog Polliog merged commit d000f1b into main Mar 23, 2026
6 checks passed
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