Migrate benchmarks/ code to pyg-bench; pygraphistry keeps results + data contracts

Aperta
#1,932 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
tooling

Direzione di ricerca

Start by reviewing the benchmark paths listed in the issue, the CI path filters in ci.yml, and the in-repo tests under graphistry/tests/benchmarks/gfql/. Coordinate the move with pyg-bench and wait until after the release and the open stack PRs have cleared. Done means benchmark code is moved, the residual-triage exception and tests are resolved, results consumed by docs remain available, and obsolete CI filters are removed.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Why

Standing convention (pyg-bench docs/measurement-rules.md, applied all release): benchmark CODE lives in pyg-bench (private); pygraphistry carries only RESULTS for docs plus the data contracts both sides share. benchmarks/ in this repo violates that: 43 files / ~7.8k lines.

Two concrete harms already realized from having it public-side:

  • bench_ladybug_cypher.py carried a hardcoded LADYBUG = {...} competitor literal with no provenance, which became published ratios that a later audit had to withdraw (CHANGELOG 2026-07-28).
  • Competitor-benchmark runners (kuzu_bench.py, bench_ladybug*.py, index_vs_dbs.py) in a public repo invite out-of-context quoting and disclose methodology we deliberately keep in the private measurement repo.

What moves

  • benchmarks/gfql/* (~20 measurement scripts + RESULTS.md) → pyg-bench
  • benchmarks/dgx/* (safe_run.sh, preflight, sitecustomize, local_run — the shared-box safety harness; #1929 hardens it) → pyg-bench, which owns the run protocol the harness enforces. Nothing in it is pygraphistry-library-specific (RLIMIT_AS/RMM caps/watchdog are generic), but note the container mount convention (`/opt/pygraphistry/benchmarks/...") needs a path update in pyg-bench run docs.
  • benchmarks/layout/treemap.py → pyg-bench

What stays

  • Committed RESULTS consumed by docs (e.g. docs/source/gfql/_static/graphframes/results.json) and the docs pages that read them
  • graphistry/tests/benchmarks/ (in-repo test suites)
  • Decision needed: benchmarks/gfql/benchmark_residual_triage.py has in-repo tests (graphistry/tests/benchmarks/gfql/) and parses pyg-bench artifacts for issue drafting — either move it with its tests or document it as the one exception.
  • CI cleanup: drop the benchmarks/benchmarks_only path-filter keys from ci.yml once the dir is gone.

When

Post-release, alongside the other structural moves (.agents/ #1925, bin/ci_guards). Not before: 10+ open stack PRs would conflict with a directory move today.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AjbKuKheqDu78oapRT5AYm

Lingua principale
Python
Stelle
2.6k
Fork
229
Merge medio
1g 5h
PR unite (30g)
99

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di graphistry/pygraphistry

Tutte le issue di graphistry/pygraphistry

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.