You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CI: add a bare-install smoke job (pip install ondine, no extras) #189
Two bugs shipped in 1.11.0 (both fixed in #188) were invisible to CI purely because every CI job installs the dev environment, never the published package as a user gets it.
Bug
Why CI couldn't see it
enrich(polars_df, ...) → ModuleNotFoundError: No module named 'pyarrow'
uv sync --all-extras installs pyarrow, so the missing declaration was masked. polars is a core dep; pyarrow is only in parquet/all.
enrich(schema=...) → ValueError: Either dataframe or source_path must be provided
test_enrich.py mocks Pipeline.execute, so the broken code path never ran.
Both were caught in under five minutes by doing what a user does:
Creates a clean venv and installs the built wheel with no extras (--only-binary ondine, no uv sync).
Exercises the public API for real against a cheap provider (or a stub server) — at minimum:
ondine.enrich(pandas_df, ...)
ondine.enrich(polars_df, ...) ← catches the pyarrow class of bug
ondine.enrich(..., schema=Model) ← catches the rebuild class of bug
ondine.enrich(csv_path, ...)
Repeats for the [mcp] and [all] extras so extras-only imports are also checked.
The existing Install Profile jobs install extras and only run import ondine — they verify the package imports, not that it works. This job should call the API.
Related: the enrich() unit tests should also grow at least one test that runs a real pipeline end-to-end with a stub LLM client instead of mocking Pipeline.execute, so the loader stage is actually exercised.
Activity
test(ci): exercise the public API on a bare install (#189) (#211)