Repository navigation
ci: integrate shared Python benchmark reports - #1135
dustinbyrne wants to merge 8 commits into
Conversation
There was a problem hiding this comment.
Not approved — this change needs a human reviewer.
Re-adding the stamphog label gives the same result unless the changed files change.
stamphog can't auto-review this pull request because two policy gates refused it. The deny-list gate flagged it as infra/CI/CD, since it adds .github/workflows/benchmark-report.yml and changes .github/workflows/benchmarks.yml. The tier gate classified it as T2-never (47 lines, 3 files, two areas, CI), a category that is never handled automatically. The size gate passed, so splitting the change wouldn't clear the refusal. Workflow changes need a human reviewer, so please ask a maintainer or the owners of the CI configuration to review it.
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✗ | matches: infra_cicd |
| size | ✓ | 41L, 2F substantive, 47L/3F incl. docs/generated/snapshots — within ceiling |
| tier | ✗ | classified as T2-never: T2-never (47L, 3F, two-areas, ci) |
| stamphog 2.6.1 | .stamphog/policy.yml @ unknown · reviewed head 9d5ad57 |
There was a problem hiding this comment.
PostHog Review · Standard · reviewed 9d5ad57: 1 Should fix.
See this review and its findings in PostHog Review. Comment @posthog review --deep for a Deep review. A Deep review takes longer and looks deeper than a Standard review.
| contents: read | ||
| actions: read | ||
| pull-requests: write | ||
| uses: PostHog/.github/.github/workflows/sdk-benchmark-report.yml@ced4b9694b90c9221bc277b1c8d9f013eafe56c5 # SDK benchmark workflow (PostHog/.github PR #84) |
There was a problem hiding this comment.
P2 · Isolate publisher concurrency across pull requests
When three PR benchmark runs finish while a publisher remains active, the pinned workflow puts all reports in the same repository-wide concurrency group. GitHub replaces the pending job even with cancel-in-progress: false, so an unrelated PR loses its comment without a retry. Update the shared workflow pin after scoping concurrency per PR with a fork-safe fallback.
posthog-python Compliance ReportDate: 2026-10-29T17:00:03.011581+00:00 ✅ All Tests Passed!121/121 tests passed Capture_V1 Tests✅ 95/95 tests passed View Details
Capture_Ai Tests✅ 5/5 tests passed View Details
Feature_Flags Tests✅ 17/17 tests passed View Details
Feature_Flags_Local_Evaluation Tests✅ 4/4 tests passed View Details
|
| mode: collect | ||
| source-status: ${{ needs.benchmark.result }} | ||
| shard-manifest: benchmarks/shards.json | ||
| shard-directory: ${{ runner.temp }}/python-benchmark-shards |
There was a problem hiding this comment.
P2 · Preserve failure reporting for incomplete shards
When two workers time out early, run.py exits with only visited workloads saved. The new collect mode requires exact manifest coverage, so it rejects those partial results without writing bundle.json. The publisher then skips the failed run, leaving any older PR report unchanged. Emit complete failure records or support a failure-only report.
marandaneto
left a comment
There was a problem hiding this comment.
The code looks good; no qualifying findings. Verdict: correct.
Changes
Stacked on the Python benchmark producer PR #1134.
workflow_runconsumer using the shared trusted publishing workflow. No SDK/PR code executes in the writable job.Dependencies:
a558711336bd3b81be4a820ed10f26372fc568ed)ced4b9694b90c9221bc277b1c8d9f013eafe56c5)Both shared components and this caller configuration need normal review. Automatic PR comments activate only after the
workflow_runcaller lands on the default branch; summaries can render on this PR already.Validation
CI/tooling only; no SDK runtime, workload, or release changes in this layer. Performance differences remain informational.
Agent context
Autonomy: Human-driven (agent-assisted).
Implemented with Pi and reviewed independently. The stack keeps producer measurements separate from shared reporting integration.