Skip to content

feat: e2e dataset benchmarks, CI regression job, contributor docs#21

Merged
oleg-koval merged 1 commit into
betafrom
feat/e2e-benchmark-ci-contributing
Apr 17, 2026
Merged

feat: e2e dataset benchmarks, CI regression job, contributor docs#21
oleg-koval merged 1 commit into
betafrom
feat/e2e-benchmark-ci-contributing

Conversation

@oleg-koval
Copy link
Copy Markdown
Owner

@oleg-koval oleg-koval commented Apr 17, 2026

Summary

  • E2E dataset benchmark (Postgres + seeded rows): scripts, Docker Compose services, multi-run aggregate stats + JSON line for tooling.
  • Regression compare script + bench/e2e-dataset-baseline.json template; CI job on ci-release.yml (Postgres service) writes latest JSON and runs compare (baseline enforced: false by default).
  • Docs: docs/benchmark-regression.md (how to read aggregates + baselines); README benchmark section updates; CONTRIBUTING + Integration feedback issue template + config.yml (template chooser).
  • Tooling: tsconfig includes scripts/** for typecheck; tsconfig.build.json excludes scripts from publish build; Prisma shim types where needed; .gitignore for generated GIF + bench/latest-e2e-dataset.json.
  • README GIF generator: clearer captions + tunable speed (QUERYD_GIF_* env vars).

Usage

Run dataset E2E benchmark in Docker:

npm run benchmark:e2e:dataset:docker

Multi-run aggregate (example from package.json):

npm run benchmark:e2e:dataset:10:docker

Compare latest JSON to baseline (non-zero exit if enforced ceilings exceeded):

npm run bench:compare:e2e:dataset

Regenerate README demo GIF (needs magick + ffmpeg):

npm run assets:readme-gif

Contributor checks:

npm ci
npm test
npm run build
npm run typecheck

Open integration feedback (after merge to default branch):
https://github.com/oleg-koval/slow-query-detector/issues/new/chooseIntegration feedback

Notes

  • Local npm test failed here with missing @rolldown/binding-darwin-arm64 (optional dependency); please rely on CI for green tests.
  • Enable strict regression gating by setting enforced: true and filling ceilingMedianPerOpUs in bench/e2e-dataset-baseline.json once you have stable CI medians (see docs/benchmark-regression.md).

Summary by CodeRabbit

  • New Features

    • Added comprehensive benchmarking documentation with local and CI regression testing capabilities.
    • Introduced integration feedback issue template for structured friction reporting.
  • Documentation

    • Reframed product as a "lightweight query observability layer" with updated value proposition.
    • Added 60-second quick start guide with example code.
    • Created contributor guidelines and workflow documentation.
  • Chores

    • Updated dependencies and build configuration.
    • Added Docker Compose setup for local benchmarking.

- Add Docker-backed dataset E2E bench scripts, compose services, multi-run aggregates
- Add baseline compare + template JSON; wire CI job on Postgres
- Document benchmark output/regression in docs/benchmark-regression.md
- Add CONTRIBUTING, issue template + config; README updates; GIF script UX
- Typecheck scripts via tsconfig; exclude scripts from build; Prisma shim types
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 17, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This pull request introduces a comprehensive benchmarking infrastructure for the queryd query observability library. The changes include three benchmark script variants (micro, end-to-end, and dataset-focused), supporting Docker Compose configuration, CI automation, new documentation explaining benchmarking methodology, a Prisma type shim, contributor guidelines, and a README reframe describing queryd as a lightweight query observability layer.

Changes

Cohort / File(s) Summary
GitHub Configuration
.github/ISSUE_TEMPLATE/config.yml, .github/ISSUE_TEMPLATE/integration-feedback.md, .github/workflows/ci-release.yml
Added blank issue support, integration feedback template, and new CI job benchmark-e2e-dataset with PostgreSQL service and benchmark environment variables; updated release-readiness job dependency.
Documentation
README.md, CONTRIBUTING.md, docs/benchmark-regression.md
Reframed queryd as query observability layer with quick-start example; added contributor workflow checklist and security guidelines; added comprehensive benchmark documentation covering output formats, measurement methodology, baseline comparison, and failure criteria.
Benchmark Scripts & Infrastructure
scripts/benchmark.ts, scripts/benchmark-e2e.ts, scripts/benchmark-e2e-dataset.ts, scripts/compare-e2e-dataset-baseline.ts, scripts/generate-readme-demo-gif.sh
Added four benchmark runners with varying complexity (micro-benchmarks, e2e with live DB, dataset-backed with multi-run aggregation) and a regression comparison script; included GIF generation utility for README demonstrations.
Build Configuration
package.json, tsconfig.json, tsconfig.build.json, docker-compose.yml, .gitignore, bench/e2e-dataset-baseline.json
Added benchmark npm scripts with environment variable support; updated TypeScript config to include scripts directory and expand rootDir; added Docker Compose services for PostgreSQL and three benchmark variants; added baseline configuration and updated ignore patterns.
Type Definitions & Tests
src/prisma-client-shim.d.ts, src/__tests__/integration.test.ts, src/__tests__/wrapPrisma.test.ts
Added Prisma module shim declaring $queryRaw, $executeRaw, $transaction APIs; adjusted transaction test callback typing to use intermediate cast for Prisma transaction client.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 Benchmarks blooming in the garden fair,
Scripts that measure queries with care,
Docker compose and baseline stone,
Making observability known,
Regression gates keep performance in flight! 🚀

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly summarizes the main additions: e2e dataset benchmarks, a CI regression job, and contributor documentation. It accurately reflects the primary changes in the changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/e2e-benchmark-ci-contributing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coveralls
Copy link
Copy Markdown

Coverage Report for CI Build 24571840899

Coverage remained the same at 95.97%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 230
Covered Lines: 227
Line Coverage: 98.7%
Relevant Branches: 167
Covered Branches: 154
Branch Coverage: 92.22%
Branches in Coverage %: Yes
Coverage Strength: 23.48 hits per line

💛 - Coveralls

@oleg-koval oleg-koval changed the base branch from main to beta April 17, 2026 15:03
@oleg-koval oleg-koval merged commit aa91d06 into beta Apr 17, 2026
6 of 7 checks passed
@oleg-koval oleg-koval deleted the feat/e2e-benchmark-ci-contributing branch April 17, 2026 15:04
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 1.3.0-beta.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

oleg-koval added a commit that referenced this pull request Apr 17, 2026
- Add Docker-backed dataset E2E bench scripts, compose services, multi-run aggregates
- Add baseline compare + template JSON; wire CI job on Postgres
- Document benchmark output/regression in docs/benchmark-regression.md
- Add CONTRIBUTING, issue template + config; README updates; GIF script UX
- Typecheck scripts via tsconfig; exclude scripts from build; Prisma shim types
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants