Skip to content

ci: stage push benchmarks + label-driven auto-tag releases#13

Merged
EshwarCVS merged 1 commit into
masterfrom
stage
Apr 9, 2026
Merged

ci: stage push benchmarks + label-driven auto-tag releases#13
EshwarCVS merged 1 commit into
masterfrom
stage

Conversation

@EshwarCVS
Copy link
Copy Markdown
Collaborator

@EshwarCVS EshwarCVS commented Apr 9, 2026

What this adds

  • Run benchmark workflow on direct stage pushes (in addition to PRs).
  • Add auto-tag-release.yml: when a PR is merged into master and has one of these labels:
    • release:patch
    • release:minor
    • release:major
      it creates and pushes the next vX.Y.Z tag automatically.

Why

  • stage gets stronger continuous signal before promotion.
  • master releases remain controlled (label-gated), but no manual tag command is needed.
  • Existing tag-triggered release workflow continues to publish to PyPI/Docker/GitHub Release.

Note

  • No label => no release tag.

- 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.

Made-with: Cursor
@EshwarCVS EshwarCVS merged commit de46df2 into master Apr 9, 2026
9 of 10 checks passed
@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 481/s 506/s 489/s 0.95x
GET /users/{id} 531/s 548/s 539/s 0.97x
POST /users 481/s 488/s 480/s 0.99x

Direct ASGI (no HTTP; 50,000 iterations)

Endpoint FasterAPI FastAPI Speedup vs README ASGI ratio
GET /health 197,652/s 19,516/s 10.13x +47.9%
GET /users/{id} 183,308/s 13,740/s 13.34x +52.8%
POST /users 108,236/s 11,111/s 9.74x +36.2%

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

Router Ops/s Speedup vs README
Radix 954,440 9.7x +27.1%
Regex 98,842 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.

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