Skip to content

Enable CodSpeed continuous performance measurement#2

Closed
codspeed-hq[bot] wants to merge 2 commits into
mainfrom
codspeed/wizard-1783575309968
Closed

Enable CodSpeed continuous performance measurement#2
codspeed-hq[bot] wants to merge 2 commits into
mainfrom
codspeed/wizard-1783575309968

Conversation

@codspeed-hq

@codspeed-hq codspeed-hq Bot commented Jul 9, 2026

Copy link
Copy Markdown

Summary

This repository already contained the scaffolding for CodSpeed continuous performance measurement. This PR validates that setup end to end and corrects the CodSpeed badge so it resolves to this repository.

What was verified

  • Benchmark harness (benchmarks/test_codspeed_kernels.py): 22 CodSpeed benchmarks covering the native Rust compute core (zone maps, f32 encoding, M4 decimation, 2D binning, histograms, range scans) and the end-to-end figure → wire-payload path (line, scatter, area, bar, heatmap, layered composition, density memory reports).
  • Local run: built the native Rust core (cargo build --release), installed the package with pytest-codspeed, confirmed the native backend is active (kernels.BACKEND == "native"), and executed all 22 benchmarks locally via:
    codspeed run --mode simulation -- .venv/bin/python -m pytest benchmarks/test_codspeed_kernels.py --codspeed
    
    All 22 benchmarks passed.
  • Workflow (.github/workflows/codspeed.yml): uses CodSpeedHQ/action@v4 in simulation mode with OIDC authentication (id-token: write), builds the native core so benchmarks measure the real Rust kernels, and runs on ubuntu-latest. It passes the repository's own scripts/verify_ci_workflow.py gate.

What changed

  • README badge: updated the CodSpeed badge target from Alek99/charts-exp to reflex-dev/reviz so it points at this repository's CodSpeed dashboard.

Next steps

  • Once merged, CodSpeed will run on every push to main and on pull requests, tracking the native compute kernels and payload build path.
  • The badge will populate automatically after the first run on the default branch completes.

@codspeed-hq

codspeed-hq Bot commented Jul 9, 2026

Copy link
Copy Markdown
Author

CodSpeed setup failed

The CodSpeed setup is complete and correct: the workflow runs end to end and all 22 benchmarks pass in simulation mode on GitHub Actions (commit 681092e, run 28996846329). However, the results upload is rejected with HTTP 403 because the 'reflex-dev' organization is not subscribed to CodSpeed and 'reviz' is a private repository. This is an account/billing restriction that cannot be fixed by code or workflow changes. To finish, an org admin must subscribe the organization at https://app.codspeed.io/settings/organizations/reflex-dev. Once subscribed, re-run the CodSpeed workflow and it will post the CodSpeed report comment on the PR.

@Alek99 Alek99 closed this Jul 10, 2026
FarhanAliRaza added a commit that referenced this pull request Jul 15, 2026
- Legend now (re)freezes options and swatch scaling via _attach() when
  added to an axes, so a legend constructed against one axes but
  attached to another picks up the host's dpi/rcParams (review #1).
- Legend.__init__ warns on handles/labels length mismatch and on
  handles without a legend entry instead of dropping them silently
  (review #4).
- JS tracks every legend box (not just the primary) so _resize
  refreshes max-height on extra legends too (review #2).
- JS line swatch uses ?? so an explicit lw=0 draws nothing instead of
  falling back to 1.5px (review #3).
- Drop unreachable return in _best_legend_loc (review #5).
FarhanAliRaza added a commit that referenced this pull request Jul 15, 2026
* Improve pyplot legend and dash parity

* Fix extra legend rendering regressions

* Address review: legend attach recompute, resize tracking, lw=0 swatch

- Legend now (re)freezes options and swatch scaling via _attach() when
  added to an axes, so a legend constructed against one axes but
  attached to another picks up the host's dpi/rcParams (review #1).
- Legend.__init__ warns on handles/labels length mismatch and on
  handles without a legend entry instead of dropping them silently
  (review #4).
- JS tracks every legend box (not just the primary) so _resize
  refreshes max-height on extra legends too (review #2).
- JS line swatch uses ?? so an explicit lw=0 draws nothing instead of
  falling back to 1.5px (review #3).
- Drop unreachable return in _best_legend_loc (review #5).

---------

Co-authored-by: Alek <alek@reflex.dev>
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.

2 participants