cog
93c55690 - ci: enforce stub freshness in CI, fix existing stub drift (#2912)

Commit
3 days ago
ci: enforce stub freshness in CI, fix existing stub drift (#2912) * ci: add stub freshness check to CI The generate:stubs mise task and stub:check already exist but weren't enforced in CI, so .pyi stubs could drift when Rust source changed. Adds a check-stubs job that runs `mise run --force stub:check` on Rust changes, using --force to bypass sources/outputs mtime freshness (which would skip regeneration in CI's fresh checkout). * chore: regenerate coglet Python stubs Stubs drifted after the BuildInfo.dirty field was added in #2829 and docstring updates in recent PRs. Regenerated with `mise run generate:stubs`. * fix(ci): set LD_LIBRARY_PATH for stub_gen in check-stubs stub_gen is a PyO3 binary that dynamically links libpython. setup-uv installs Python to a non-standard path, so the shared library isn't on LD_LIBRARY_PATH by default. Query sysconfig for the correct LIBDIR. * fix: restore dict[str, str] return type for Scope.context stub Regression from #2853: the context property returns Py<PyDict> which pyo3-stub-gen infers as bare `dict`. Add an override_return_type annotation so the generated stub preserves the intended dict[str, str] contract. * fix(ci): use setup-python for shared libpython in check-stubs stub_gen needs libpython3.x.so at runtime (PyO3 auto-initialize). setup-uv's python-build-standalone is statically linked and doesn't ship the .so, causing 'cannot open shared object file' at runtime.
Author
Parents
Loading