Skip to content

feat: add asv-codspeed package for airspeed velocity support - #104

Draft
art049 wants to merge 5 commits into
masterfrom
cod-2165-support-airspeed-velocity-asv
Draft

feat: add asv-codspeed package for airspeed velocity support#104
art049 wants to merge 5 commits into
masterfrom
cod-2165-support-airspeed-velocity-asv

Conversation

@art049

Copy link
Copy Markdown
Member

Summary

  • Add a new asv-codspeed workspace package that runs ASV (airspeed velocity) time_* benchmarks with CodSpeed instrumentation
  • Reuses the existing pytest-codspeed instruments (walltime + valgrind) and reports as pytest-codspeed to the CodSpeed platform
  • Includes benchmark discovery, CLI (python -m asv_codspeed run), parameterized benchmark support, and setup/teardown lifecycle
  • 30 tests covering discovery, runner, and CLI

Test plan

  • All 30 asv-codspeed tests pass
  • All 51 existing pytest-codspeed tests pass (no regressions)
  • Verified with codspeed run --mode simulation — results uploaded successfully
  • CI passes

🤖 Generated with Claude Code

Add a new `asv-codspeed` workspace package that enables running ASV
(airspeed velocity) benchmarks with CodSpeed instrumentation. The
package discovers `time_*` benchmarks, runs them through the existing
pytest-codspeed instruments (walltime and valgrind), and reports results
in the same format so the CodSpeed platform treats them identically.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@codspeed-hq

codspeed-hqBot commented Feb 2, 2026

Copy link
Copy Markdown

CodSpeed Performance Report

Merging this PR will create unknown performance changes

Comparing cod-2165-support-airspeed-velocity-asv (47a9500) with master (adee8a1)

Summary

🆕 248 new benchmarks
⏩ 220 skipped benchmarks1

Performance Changes

ModeBenchmarkBASEHEADEfficiency
🆕Simulationtest_mmap_operation[40960]N/A106 µsN/A
🆕Simulationtest_make_bandpassN/A47.7 µsN/A
🆕Simulationtest_fs_write[100]N/A34 µsN/A
🆕Simulationtest_open_close_fd[10]N/A38.5 µsN/A
🆕Simulationtest_multiprocessing_map[100]N/A6.8 msN/A
🆕Simulationtest_word_exists[board0-ABCCED]N/A64.8 µsN/A
🆕Simulationtest_hostname_resolution[1.1.1.1]N/A48.7 µsN/A
🆕Simulationtest_is_safe[board0-1-1]N/A44.6 µsN/A
🆕Simulationtest_noop_passN/A13.8 µsN/A
🆕Simulationtest_noop_ellipsis_decoratedN/A15.9 µsN/A
🆕Simulationtest_make_highshelfN/A46.8 µsN/A
🆕Simulationtest_generate_all_permutations[sequence1]N/A108.1 µsN/A
🆕Simulationtest_threadpool_map[1000]N/A38.8 msN/A
🆕Simulationtest_generate_all_combinations[4-2]N/A37 µsN/A
🆕Simulationtest_tcp_connection[8.8.8.8-53]N/A42 µsN/A
🆕Simulationtest_minimax[scores0]N/A34.4 µsN/A
🆕Simulationtest_fs_write[1000000]N/A1.8 msN/A
🆕Simulationtest_is_complete[board0]N/A25.9 µsN/A
🆕Simulationtest_fs_read[100000]N/A198.5 µsN/A
🆕Simulationtest_sleep[0.001]N/A15.2 µsN/A
..................

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Footnotes

  1. 220 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

art049and others added 4 commits February 2, 2026 22:44
Restructure the repository into a three-package monorepo:
- codspeed: shared core with CFFI/C bindings, instruments (walltime,
valgrind), config, and utilities. Owns the instrument-hooks submodule.
- pytest-codspeed: pure Python pytest plugin, depends on codspeed
- asv-codspeed: ASV benchmark runner, depends on codspeed (no longer
depends on pytest-codspeed or pytest)
Also adds asv-codspeed benchmarks job to the CodSpeed CI workflow.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The TheAlgorithms submodule contains test files that import numpy/requests
which aren't installed in CI, causing collection errors.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add integration_name/integration_version params to Instrument base class
- Move type-only imports to TYPE_CHECKING blocks (TC001/TC003)
- Remove unused variables (F841)
- Fix line length violations (E501)
- Exclude TheAlgorithms submodule from ruff and mypy
- Apply ruff format to all files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Pre-commit naturally skips git submodule files, so explicit
exclude config is not needed.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for freeto 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

@art049