Polyglot collection of shared packages for the Neosofia platform.
python/
logenvelope/ # Structured JSON logger (conforms to Neosofia/schemas log-v1.0.0.json)
Each package is independently versioned and published. Languages are top-level directories; packages live under their language.
| Package | Language | Distribution name | Purpose |
|---|---|---|---|
logenvelope |
Python | logenvelope |
Structured JSON logger conforming to the platform log schema |
This repo is a uv workspace for the Python packages.
uv sync # install all workspace deps
uv run --package logenvelope pytest # test a single package
Wheels and GitHub Release assets are CI-only (.github/workflows/publish.yml). Do not upload dist/* manually.
- Bump
versionin the packagepyproject.tomland runuv lockat the repo root. - Commit and push to
main. - Create the tag on that commit (tag name must match package version):
git tag authentication-in-the-middle/v0.9.4 git push origin refs/tags/authentication-in-the-middle/v0.9.4
- Confirm the
publishworkflow succeeds. The tag must point at the commit that contains the version bump; otherwise validation fails with a version mismatch.
Supported tag prefixes: logenvelope/v*, authentication-in-the-middle/v*, authorization-in-the-middle/v*.
Do not upload dist/*, run gh release create locally, or run gh release edit from a laptop. If a release is missing assets or stuck in draft after a tag move, re-run the publish workflow via Actions → workflow_dispatch with the same tag name (CI rebuilds wheels and publishes the release).
Do not delete and re-push release tags to fix signing or CI unless you intend to re-release; moving tags orphans draft releases and breaks consumers until publish runs again.
Apache-2.0 — see LICENSE and NOTICE.
See SECURITY.md.