feat: expand shared Python service infrastructure #1

Merged
hayshin merged 27 commits from feat/init into main 2026-07-12 10:45:25 +05:00
Owner
  • add PostgreSQL migrations, transactional outbox delivery, Redis idempotency, HTTP and gRPC transport helpers, and resilience controls
  • reorganize package boundaries and optional integration extras around stable core exports
  • document service setup and expand unit and integration coverage for production safeguards
- add PostgreSQL migrations, transactional outbox delivery, Redis idempotency, HTTP and gRPC transport helpers, and resilience controls - reorganize package boundaries and optional integration extras around stable core exports - document service setup and expand unit and integration coverage for production safeguards
- add transaction-bound repositories and schema-aware Alembic migration runner
- add isolated PostgreSQL integration helper and migration fixture test
- document database conventions and wire integration tests into devenv
- persist and claim transactional events with retry and failure tracking
- publish through NATS JetStream with event ID deduplication headers
- add migration guidance plus unit and PostgreSQL integration coverage
- coordinate reservations with atomic owner-checked Redis Lua transitions
- replay encoded responses through configurable core and protobuf codecs
- add gRPC integration guidance plus Redis concurrency and expiry coverage
- make APP_NAME overridable through lib.mkDefault
- normalize APP_NAME when defining default PG_SCHEMA
- add HTTP health, error, request context, metrics, and tracing support
- expose Prometheus metrics on a dedicated Uvicorn listener
- document service setup and cover HTTP behavior with unit tests
- add retry, timeout, probe, client reconnect, and bounded shutdown controls
- support failed outbox replay, published retention cleanup, and relay metrics
- document operational usage and cover behavior with unit and integration tests
- cover client, migration, gRPC, logging, and tracing behavior
- exercise Redis idempotency and outbox success and failure paths
- raise package coverage with deterministic mocked dependency tests
- add metadata propagation, outbound clients, idempotency, and worker helpers
- add SMTP, S3, Kubernetes, Vault, pagination, and test utilities
- document optional integrations and cover additions with focused tests
- validate reservation and completion TTLs before acquiring ownership
- preserve operation errors when reservation release also fails
- cover invalid TTLs and cleanup failures
- construct asyncpg URLs with SQLAlchemy URL encoding
- cover reserved characters in credentials and database names
- reject invalid polling, batching, retry, and backoff values at startup
- cover each invalid relay policy boundary
- retry idempotent methods by default and require opt-in for unsafe requests
- reuse jittered retry policy and honor numeric Retry-After delays
- cover unsafe defaults and explicit rate-limit retries
- persist request fingerprints in Redis reservations and report conflicts
- fingerprint HTTP and gRPC requests before replaying cached results
- bound HTTP request bodies and preserve safe cached response headers
- keep core installation small and expose integration-specific extras
- add an all extra for full-stack services and development
- document feature extra usage
- lease claimed rows with tokens so database locks end before network I/O
- publish batches with bounded concurrency and persist outcomes separately
- document and test new nullable lease columns
- encode PostgreSQL URL components with standard-library helpers
- keep SQLAlchemy confined to the postgres integration extra
- expose transport-neutral settings, errors, metadata, resilience, and pagination
- document stability boundary between core API and feature integrations
- implement access logging and metadata propagation as pure ASGI middleware
- preserve streaming responses and append request IDs at response start
- verify outbound gRPC metadata and secure channel construction
- verify periodic workers recover from operation failures
- release reservations for event streams and oversized declared responses
- return passthrough responses without buffering or replaying them
- move event contracts, SQLAlchemy schema, and Prometheus collectors into focused modules
- retain existing outbox module exports for consumer compatibility
- move clients, transports, outbox, idempotency, and runtime helpers into focused namespaces
- update imports, tests, and docs to match structure aligned with go-pkg
- default S3 bucket to normalized APP_NAME
- pass devenv S3 credentials into MinIO Compose service
- run locked uv dependency sync on the uv runner
- check formatting, linting, types, builds, and tests
- add publishing metadata and relax speculative dependency upper bounds
- validate lockfile, distributions, and wheel contents in CI and devenv
- document semantic versioning and release checks
feat(release): automate semantic version releases
All checks were successful
CI / test (pull_request) Successful in 55s
066c37954f
- derive package versions from Git tags with Hatch VCS
- calculate release tags from squash-merged conventional commits
- build validated artifacts and create Forgejo releases without modifying main
hayshin deleted branch feat/init 2026-07-12 10:45:26 +05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
platform/py-pkg!1
No description provided.