Skip to content

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

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

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

Conversation

@art049
Copy link
Member

@art049 art049 commented Feb 2, 2026

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
Copy link

codspeed-hq bot commented Feb 2, 2026

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

Mode Benchmark BASE HEAD Efficiency
🆕 Simulation test_mmap_operation[40960] N/A 106 µs N/A
🆕 Simulation test_make_bandpass N/A 47.7 µs N/A
🆕 Simulation test_fs_write[100] N/A 34 µs N/A
🆕 Simulation test_open_close_fd[10] N/A 38.5 µs N/A
🆕 Simulation test_multiprocessing_map[100] N/A 6.8 ms N/A
🆕 Simulation test_word_exists[board0-ABCCED] N/A 64.8 µs N/A
🆕 Simulation test_hostname_resolution[1.1.1.1] N/A 48.7 µs N/A
🆕 Simulation test_is_safe[board0-1-1] N/A 44.6 µs N/A
🆕 Simulation test_noop_pass N/A 13.8 µs N/A
🆕 Simulation test_noop_ellipsis_decorated N/A 15.9 µs N/A
🆕 Simulation test_make_highshelf N/A 46.8 µs N/A
🆕 Simulation test_generate_all_permutations[sequence1] N/A 108.1 µs N/A
🆕 Simulation test_threadpool_map[1000] N/A 38.8 ms N/A
🆕 Simulation test_generate_all_combinations[4-2] N/A 37 µs N/A
🆕 Simulation test_tcp_connection[8.8.8.8-53] N/A 42 µs N/A
🆕 Simulation test_minimax[scores0] N/A 34.4 µs N/A
🆕 Simulation test_fs_write[1000000] N/A 1.8 ms N/A
🆕 Simulation test_is_complete[board0] N/A 25.9 µs N/A
🆕 Simulation test_fs_read[100000] N/A 198.5 µs N/A
🆕 Simulation test_sleep[0.001] N/A 15.2 µs N/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.

art049 and 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 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.

1 participant