Repository navigation
docs: explain contribution rationale and benchmark harness - #68
Merged
Merged
Conversation
Rewrite CONTRIBUTING.md around the reasons for a change and a step-by-step harness that benchmarks a branch against main on both suites. Point the README, PR template, agent guidelines and docs page at it.
Deploying lance-csr with
|
| Latest commit: |
a8f81d3
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://2a85e410.lance-csr.pages.dev |
| Branch Preview URL: | https://docs-contributing-benchmark.lance-csr.pages.dev |
prrao87
marked this pull request as ready for review
October 27, 2026 01:15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The contributing notes asked every code change for before-and-after numbers from both benchmark suites, but didn't explain how to get them. The suite runners pin
lance-csrto a PyPI release, so running./run_benchmarks.shas it is times that release, not the contributor's branch. Contributors and their coding agents had nothing to follow, and nothing explained why we ask for a rationale in the first place. This PR turns the contributing guide into one that asks for the reasons behind a change and shows, step by step, how to produce the evidence.What changed
mainand from the branch, and runs each suite's lance-csr runner against each wheel withuv run --with, in bothmemoryandlazymodes. Runs alternate betweenmainand the branch, are saved with pytest-benchmark and compared withpytest-benchmark compare. The run helper stops if it can't find the wheel, so it can't quietly time the pinned release instead.Validation
uv run --frozen --with <wheel>loaded the named wheel even when both wheels had the same version, picked up a wheel rebuilt in place, and a plainuv runstill loaded the pinned 0.2.0.uv. Arguments, storage paths and the missing-wheel guard all behaved the same in both shells.uvx typos@1.26.0 .anduv run --project docs --locked zensical build --strictpassed locally.mainand v0.3.1 as the branch: two release builds, the import check, 16 alternating runs across both suites and modes (all passed their result checks), and the compare step. Two bugs turned up and are fixed:pytest-benchmark comparerejected an absolute glob, so the guide now passes--storagewith a relative glob; and it shortens run names to 12 characters, so runs are now saved asmain-memoryrather thanmemory-main, keepingmainandbranchvisible.🤖 Generated with Claude Code