Skip to content

fix(ci): treat missing merge_insert base tag as not generated - #8177

Merged
Xuanwo merged 5 commits into
mainfrom
xuanwo/fix-merge-insert-datagen-missing-tag
Aug 3, 2026
Merged

fix(ci): treat missing merge_insert base tag as not generated#8177
Xuanwo merged 5 commits into
mainfrom
xuanwo/fix-merge-insert-datagen-missing-tag

Conversation

@Xuanwo

@Xuanwo Xuanwo commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Why

Run Regression Benchmarks on main has failed on every push since #8052 landed. The failing step is Generate datasets:

ValueError: Ref not found: Ref not found error: tag merge_insert_base does not exist

Example: https://github.com/lance-format/lance/actions/runs/30790358210/job/91612371208

Root cause

_already_generated treated a missing merge_insert_base tag as None from Tags.get_version. That API raises ValueError instead. A shared GCS dataset that exists without the tag therefore aborts datagen and never reaches the overwrite path that would repair it.

The Python docstring for get_version incorrectly documented Optional[int] / None.

Fix

  • Check tag presence via tags.list() in datagen and the merge_insert benchmark fixture.
  • Correct Tags.get_version docs/signature to match the raising behavior.

No extra unit-test wiring for ci_benchmarks in the main Python suite: that package is not installed with the wheel, and importing it from PR CI needs path hacks that break multiprocessing spawn tests.

After this merges, the next bench_regress run should overwrite the incomplete GCS datasets and retag them.

bench_regress has failed on every main push since #8052 because
_already_generated assumed Tags.get_version returns None for a missing
tag, while the API raises ValueError. Shared GCS datasets left without
merge_insert_base then crash datagen before overwrite can recover.

Use tags.list() for presence checks and correct the get_version docs.
@github-actions github-actions Bot added A-python Python bindings bug Something isn't working labels Aug 3, 2026
Wire python/ci_benchmarks/datagen into make test so PR Python CI
catches readiness-check regressions. Run the same suite before
gen_all in bench_regress so pure-Python failures do not wait on
shared GCS generation.
@github-actions github-actions Bot added the A-ci CI / build workflows label Aug 3, 2026
Xuanwo added 3 commits August 3, 2026 17:03
Collecting python/ci_benchmarks/datagen in make test put the source tree
on sys.path ahead of the installed wheel, so import lance resolved to
pure-Python sources without the native extension and macOS CI failed
with BlobDescriptor ImportError.

Move the readiness-check unit tests into python/tests, load the installed
lance package first, then import ci_benchmarks helpers.
Leaving the source tree on sys.path was inherited by multiprocessing
spawn children (fragment progress and torch DataLoader workers), which
then imported pure-Python lance without the native extension.
ci_benchmarks is not part of the installed wheel, so PR-suite coverage
needed sys.path hacks that broke multiprocessing spawn. The readiness
check fix itself is sufficient; skip the non-essential test wiring.
@Xuanwo
Xuanwo merged commit 7fb56dc into main Aug 3, 2026
17 of 21 checks passed
@Xuanwo
Xuanwo deleted the xuanwo/fix-merge-insert-datagen-missing-tag branch August 3, 2026 10:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-ci CI / build workflows A-python Python bindings bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants