Skip to content

Refactor SDK with async client, logging, and CI updates#3

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

Refactor SDK with async client, logging, and CI updates#3
Polliog merged 4 commits intomainfrom
develop

Conversation

@Polliog
Copy link
Contributor

@Polliog Polliog commented Mar 21, 2026

This pull request introduces significant improvements and new features to the LogTide Python SDK, including a new async client, stdlib logging integration, payload size safeguards, and updates to documentation and CI/CD workflows. It also includes several breaking API changes to align with the v1 server contract, and updates the project structure and documentation to reflect the new repository location.

Major new features and breaking changes:

New Features & Enhancements:

  • Added AsyncLogTideClient (asyncio/aiohttp-based), LogTideHandler for stdlib logging integration, PayloadLimitsOptions for payload size control, and Starlette middleware. Also, serialize_exception() is now exported for custom integrations. [1] [2] [3]
  • Expanded documentation in README.md for async usage, logging integration, payload limits, and clarified installation and usage instructions for all supported frameworks. [1] [2] [3] [4] [5] [6] [7] [8]

Breaking API Changes:

  • Updated API paths to match the v1 server contract, changed the auth header to X-API-Key, changed error metadata from "error" to "exception" with a new structure, and made stream() non-blocking. Buffer overflow now drops logs silently instead of raising an error.
  • Improved HTTP connection reuse and switched all timestamps to timezone-aware UTC.

Bug Fixes:

  • Fixed exception serialization in all middleware, resolved a potential deadlock in buffer flushing, and corrected the reported package version.

Project Infrastructure & Documentation:

  • Added GitHub Actions workflows for CI and release automation, including multi-version Python testing and PyPI publishing with tag/version verification. [1] [2]
  • Updated all repository links and badges to the new logtide-python repo and improved changelog formatting. [1] [2] [3]

Most important changes:

1. New Features & Enhancements

  • Added AsyncLogTideClient (async/await, aiohttp), LogTideHandler for stdlib logging, payload size controls (PayloadLimitsOptions), and Starlette middleware. [1] [2] [3]
  • Improved and expanded documentation for async usage, logging integration, and payload limits in README.md. [1] [2] [3] [4] [5] [6] [7] [8]

2. Breaking API Changes

  • Changed API endpoints to /api/v1/..., switched to X-API-Key auth header, replaced "error" with structured "exception" metadata, made stream() non-blocking, and changed buffer overflow behavior.

3. Bug Fixes

  • Fixed exception serialization in middleware, eliminated deadlock in buffer flush, and corrected package version reporting.

4. Project Infrastructure

  • Added CI workflow for multi-version Python testing and a release workflow for building and publishing to PyPI, including tag/version consistency checks. [1] [2]

5. Documentation & Repository Updates

  • Updated all links, badges, and changelog references to the new logtide-python repository and improved changelog formatting. [1] [2] [3]

Polliog added 4 commits March 21, 2026 23:41
…ayload limits, middleware updates, CI workflows

- AsyncLogTideClient (aiohttp), LogTideHandler, PayloadLimitsOptions
- Starlette middleware, FastAPI alias, per-framework __all__ guards
- Breaking: API paths v1, X-API-Key header, exception serialization, stream() stop callable
- 13+ runtime bug fixes (circuit breaker, close/flush ordering, trace ID race, etc.)
- GitHub Actions CI (Python 3.8-3.13) and PyPI release workflow
@Polliog Polliog merged commit a0b0aa4 into main Mar 21, 2026
12 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