feat: initial scaffold + JobStore (v0.1.0)
Some checks failed
ci / lint-type-test (3.12) (push) Failing after 43s
ci / lint-type-test (3.13) (push) Failing after 42s
ci / publish (push) Has been skipped

This commit is contained in:
2026-06-09 17:32:17 +01:00
commit 53c22232fd
10 changed files with 886 additions and 0 deletions

24
CHANGELOG.md Normal file
View File

@@ -0,0 +1,24 @@
# Changelog
All notable changes to `platform-common` are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Planned
- `platform_common.checkpoint.make_checkpointer()` — LangGraph checkpointer factory (Redis + Postgres backends).
- `platform_common.blob.BlobStore` — Azure Blob wrapper.
- `platform_common.lease.LeaderLease` — Kubernetes Lease-based singleton coordination.
## [0.1.0] — 2026-06-09
### Added
- Initial package skeleton with `src/` layout, `py.typed` marker, ruff + mypy + pytest config.
- `platform_common.jobs.JobStore` — async protocol for TTL-bounded, replica-safe key/value job state.
- `platform_common.jobs.InMemoryJobStore` — reference / testing backend (LRU + TTL, asyncio-safe).
- `platform_common.jobs.JobRecord` — typed record shape (`id`, `status`, `payload`, `result`, `error`, `created_at`, `updated_at`).
- `platform_common.jobs.JobStatus``pending` / `running` / `succeeded` / `failed` / `cancelled`.
- `platform_common.jobs.make_job_store()` — env-driven factory (`JOB_STORE_URL`); defaults to in-memory.
- Gitea Actions CI: ruff, mypy, pytest on every push; build + publish to Gitea PyPI on tag.
- Design doc at `docs/jobstore-design.md`.