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
fix: release-plz, uv, pyvortex; feat: ensure wheels build in CI (#1181)
Here's the exhaustive description of what went wrong for the sake of our
future selves.
Release-plz initially
[failed](https://github.com/spiraldb/vortex/actions/runs/11600956759/job/32302591513)
because I incorrectly elided some object_store features from the
vortex-datafusion crate. We addressed that with #1168 / e5d1275 by
pushing the depending code into pyvortex (where those features *are*
enabled). I also ensured we also tested building with the default
features (instead of `--all-features`).
Release-plz [failed
again](https://github.com/spiraldb/vortex/actions/runs/11615867277/job/32347476714)
after merging PR #1168 because vortex-serde 0.13.0 was present in
crates.io but unbuildable (due to the issue above). We yanked the all
the 0.13.0 crates and released 0.13.1.
Release-plz [failed
again](https://github.com/spiraldb/vortex/actions/runs/11630848959/job/32391375914)
because `pyarrow` was not installed in the environment in which we test
the wheel. This is due to a difference in the behavior of `uv sync` and
`rye sync`. In particular, when we transitioned from `rye` to `uv` we
replaced
```
rye sync --no-lock
```
with:
```
uv sync --all-extras --dev -v
```
Rye sync recursively installs the dependencies of each workspace member.
`uv sync` did successfully build the Rust component of pyvortex in order
to [prepare the metadata of the vortex-array Python
package](https://github.com/spiraldb/vortex/actions/runs/11630848959/job/32391375914#step:3:64),
but it did not install any of the pyvortex dependencies. Every test file
failed to [import the dev and normal
dependencies](https://github.com/spiraldb/vortex/actions/runs/11630848959/job/32391375914#step:6:80).
Moreover, the macOS build step failed because the maturin action tries
to use the Homebrew Python to pip install `cffi`. Homebrew does not
permit this. The Homebrew Python is "externally managed" just like a
system Python on a Linux distro.
---
While the 0.13.1 release was failing, another PR merged and kicked off a
release-plz workflow. Unfortunately, [that second
workflow](https://github.com/spiraldb/vortex/actions/runs/11630955081/job/32390985113)
ran very quickly because the one which was failing had already built and
published many of the packages. Basically this happened:
- ...
- Workflow for 0.13.1: vortex-fsst 0.13.1 is not published yet, I'll
build it.
- Workflow for f83a093: vortex-array 0.13.1 is published already, I'll
do nothing.
- Workflow for f83a093: ... does this very quickly for every package
before vortex-fsst ...
- Workflow for f83a093: vortex-fsst 0.13.1 is not published yet, I'll
build it.
- Workflow for 0.13.1: vortex-fsst is built. I will publish it now.
Success.
- Workflow for f83a093: vortex-fsst is built. I will publish it now. It
already exists?!? PANIC
I will fix this in a follow up PR. This PR only addresses the `uv`
issues.
0 commit comments