Skip to content

ci(release): fix ghcr lowercase tags and make publish idempotent#14

Merged
EshwarCVS merged 17 commits into
masterfrom
stage
Apr 9, 2026
Merged

ci(release): fix ghcr lowercase tags and make publish idempotent#14
EshwarCVS merged 17 commits into
masterfrom
stage

Conversation

@EshwarCVS
Copy link
Copy Markdown
Collaborator

@EshwarCVS EshwarCVS commented Apr 9, 2026

What this fixes

  • publish-docker: normalize both owner and repository names to lowercase so GHCR tags are valid.
  • publish-testpypi and publish-pypi: add skip-existing: true to make reruns safe.

Why

  • Fixes repository name must be lowercase in Docker publish.
  • Prevents publish reruns from failing when the same distributions were already uploaded.

EshwarCVS added 16 commits April 8, 2026 23:41
Drop Contributor Covenant file to keep community expectations lightweight.
Ship MkDocs site, SECURITY.md, CITATION.cff, Python 3.13-focused guides,
Fiber three-way benchmarks, coverage and regression gates, hatch-vcs
versioning, expanded tests, and lazy TestClient import.
Remove Code of Conduct; docs, benchmarks, CI, release automation
- Deploy docs via Pages artifact (configure/upload/deploy) with .nojekyll; document Settings requirement.

- MkDocs: site_author, social links, Material repo icon; strict build verified.

- README: PyPI/GitHub release badges, docs workflow + branch, website liveness, GitHub Pages link.

- CI: ruff/mypy alignment; library typing (ASGIApp), tests override; tox; benchmark compare tweaks.
docs: GitHub Pages via Actions, MkDocs and README badges
Updating the docs workflow.
- Docs: detect whether Pages is enabled and fail with clear instructions instead of integration errors.

- Release: publish dev builds to TestPyPI on master merges; keep real PyPI + Docker + GitHub Release on v* tags.
The Pages API check can fail under token restrictions even when Pages is configured; rely on configure-pages/deploy-pages instead.
Trusted publishing requires PyPI/TestPyPI 'publisher' configuration; use TEST_PYPI_API_TOKEN for TestPyPI dev publishes while keeping OIDC trusted publishing for real PyPI tags.
Avoid fallback to OIDC trusted publishing when the token secret isn't configured.
Disable local version identifiers (+g<hash>) for hatch-vcs so dev builds can be uploaded to TestPyPI.
- Benchmark workflow now runs on stage pushes as well as PRs.

- New auto-tag workflow creates vX.Y.Z tags on merged master PRs with release:patch|minor|major labels.

- CONTRIBUTING documents release label behavior.
normalize both owner and repo to lowercase for ghcr tags.
use skip-existing for TestPyPI and PyPI publishes to avoid rerun failures.

Made-with: Cursor
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 9, 2026

Benchmark results

Ubuntu runner, Python 3.13. HTTP table uses the same httpx load against uvicorn (Python) and Fiber (Go). Direct ASGI (below) is Python-only and excludes network I/O.

HTTP throughput (FasterAPI vs FastAPI vs Fiber)

Endpoint FasterAPI FastAPI Fiber (Go) F / Fast
GET /health 546/s 550/s 541/s 0.99x
GET /users/{id} 589/s 592/s 603/s 1.00x
POST /users 512/s 524/s 514/s 0.98x

Direct ASGI (no HTTP; 50,000 iterations)

Endpoint FasterAPI FastAPI Speedup vs README ASGI ratio
GET /health 202,712/s 28,823/s 7.03x +2.7%
GET /users/{id} 173,216/s 20,635/s 8.39x -3.8%
POST /users 104,415/s 17,814/s 5.86x -18.0%

Routing (radix vs regex, 1,500,000 lookups)

Router Ops/s Speedup vs README
Radix 955,382 9.5x +25.2%
Regex 100,377 1.0x
How to read this
  • F / Fast = FasterAPI req/s ÷ FastAPI req/s on the same HTTP harness (higher is better).
  • Fiber uses the Go app in benchmarks/fiber (same routes). Go is often several times faster than Python here; the important guard for regressions is check_regressions.py (ASGI + routing floors), which must pass in this workflow.
  • vs README compares combined speedups to documented reference numbers (local machine); CI absolute req/s differs by hardware.

Avoid calling the Issues comments API on stage push runs where no PR number exists.

Made-with: Cursor
@EshwarCVS EshwarCVS merged commit abfb82a into master Apr 9, 2026
11 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