Skip to content

Commit 8265aa1

Browse files
authored
Remove public-api lockfiles (#8099)
## Summary This PR removes the public-api lockfile mechanism, we don't actually use it to inform decisions, changes or the changelog. Its often just a chore that needs to be handled in CI/locally. We should hold ourselves to a higher standard in PRs descriptions and when working on public APIs (especially widely used ones), that seems more important than every minor change in the API semantics because of some trait bound change. Signed-off-by: Adam Gutglick <adam@spiraldb.com>
1 parent 76b0ad8 commit 8265aa1

46 files changed

Lines changed: 25 additions & 44843 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/pr-review/SKILL.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,16 @@ network permissions.
6060

6161
## Review Areas
6262

63-
| Area | Focus |
64-
| --- | --- |
65-
| Correctness | Length and dtype invariants, nullability, validity masks, offset math, canonicalization, boundary conditions, empty arrays, scalar vs array behavior |
66-
| Rust soundness | `unsafe` blocks, aliasing, lifetimes, alignment, FFI boundaries, panic safety, ownership of buffers and arrays |
67-
| Compression and IO | Encoding metadata, statistics, layout evolution, file compatibility, scan projection/filter behavior, async IO edge cases |
68-
| Performance | Unnecessary copies, lost zero-copy behavior, avoidable allocations, poor cache locality, quadratic loops, excessive dynamic dispatch in hot paths |
69-
| Error handling | Correct `vortex_err!` and `vortex_bail!` usage, useful messages, no accidental panics on user data |
70-
| API compatibility | Public API docs, public-api lock updates, feature flags, crate boundaries, Python/Java binding impacts |
71-
| Tests | Regression coverage, edge cases, parameterized cases with `rstest`, use of `assert_arrays_eq!`, docs doctests when docs change |
72-
| Verification scope | Avoid requesting or running expensive workspace checks when the PR only changes docs, agent files, symlinks, or metadata |
63+
| Area | Focus |
64+
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
65+
| Correctness | Length and dtype invariants, nullability, validity masks, offset math, canonicalization, boundary conditions, empty arrays, scalar vs array behavior |
66+
| Rust soundness | `unsafe` blocks, aliasing, lifetimes, alignment, FFI boundaries, panic safety, ownership of buffers and arrays |
67+
| Compression and IO | Encoding metadata, statistics, layout evolution, file compatibility, scan projection/filter behavior, async IO edge cases |
68+
| Performance | Unnecessary copies, lost zero-copy behavior, avoidable allocations, poor cache locality, quadratic loops, excessive dynamic dispatch in hot paths |
69+
| Error handling | Correct `vortex_err!` and `vortex_bail!` usage, useful messages, no accidental panics on user data |
70+
| API compatibility | Public API docs, feature flags, crate boundaries, Python/Java binding impacts |
71+
| Tests | Regression coverage, edge cases, parameterized cases with `rstest`, use of `assert_arrays_eq!`, docs doctests when docs change |
72+
| Verification scope | Avoid requesting or running expensive workspace checks when the PR only changes docs, agent files, symlinks, or metadata |
7373

7474
## Output
7575

.github/AGENTS.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ Nightly is required for:
44
- `cargo fmt` (nightly formatting options)
55
- `-Z` flags: sanitizers (`-Zsanitizer=address`), miri (`-Zmiri-*`), publish (`-Zpublish-timeout`)
66
- `cargo-fuzz` (requires nightly)
7-
- `public-api` xtask (nightly rustdoc JSON)
87

98
Everything else (build, clippy, tests, docs, benchmarks, packaging) should use stable.
109

.github/pull_request_template.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ Consider whether the change affects users in one of the following ways:
3939
3. Should some documentation be updated to reflect this change?
4040
4141
If a public API is changed in a breaking manner, make sure to add the
42-
appropriate label. You can run `./scripts/public-api.sh` locally to see if there
43-
are any public API changes (and this also runs in our CI).
42+
appropriate label.
4443
-->
4544

4645
## Testing

.github/workflows/ci.yml

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -294,40 +294,6 @@ jobs:
294294
run: |
295295
cargo hack --no-dev-deps --ignore-private clippy --profile ci --no-default-features -- -D warnings
296296
297-
public-api:
298-
name: "Public API lock files"
299-
timeout-minutes: 30
300-
runs-on: >-
301-
${{ github.repository == 'vortex-data/vortex'
302-
&& format('runs-on={0}/runner=amd64-xsmall/image=ubuntu24-full-x64-pre-v2/tag=public-api', github.run_id)
303-
|| 'ubuntu-latest' }}
304-
steps:
305-
- uses: runs-on/action@v2
306-
if: github.repository == 'vortex-data/vortex'
307-
with:
308-
sccache: s3
309-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
310-
- uses: ./.github/actions/setup-prebuild
311-
- name: Install nightly for public-api
312-
run: rustup toolchain install $NIGHTLY_TOOLCHAIN
313-
- name: Regenerate public API lock files
314-
run: cargo +$NIGHTLY_TOOLCHAIN run --profile ci -p xtask -- public-api
315-
- name: Verify lock files are up to date
316-
run: |
317-
if ! git diff --quiet '**/public-api.lock'; then
318-
git diff -U0 '**/public-api.lock'
319-
echo ""
320-
echo ""
321-
echo "Changed files:"
322-
git diff --name-only '**/public-api.lock'
323-
echo ""
324-
echo ""
325-
echo "Public API lock files are out of date."
326-
echo "Run './scripts/public-api.sh' locally to"
327-
echo "regenerate them, then commit the changes."
328-
exit 1
329-
fi
330-
331297
rust-test-other:
332298
name: "Rust tests (${{ matrix.os }})"
333299
timeout-minutes: 30

AGENTS.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,11 @@ For Rust code, public API, feature flag, or generated-file changes, run these be
110110

111111
```bash
112112
cargo +nightly fmt --all
113-
./scripts/public-api.sh
114113
cargo clippy --all-targets --all-features
115114
```
116115

117116
Notes:
118117

119-
- `./scripts/public-api.sh` regenerates all `public-api.lock` files through the `xtask`
120-
wrapper. Run it when public Rust APIs may have changed, not for docs-only or agent-only edits.
121118
- For `.github/` changes, follow `.github/AGENTS.md` and run
122119
`yamllint --strict -c .yamllint.yaml` on changed workflow files.
123120
- You can try
@@ -173,9 +170,6 @@ Notes:
173170

174171
Check new and modified lines against this list before finishing:
175172

176-
- Public API changes without doc comments or refreshed `public-api.lock` files.
177-
- Running `cargo fmt`, `./scripts/public-api.sh`, or workspace clippy for docs-only, agent-only,
178-
symlink-only, or other metadata-only changes.
179173
- Running broad CI-style commands before trying a narrow local repro.
180174
- Using `unwrap`, `expect`, or panic-oriented assertions in tests where `VortexResult<()>` and
181175
`?` would be clearer.

Cargo.lock

Lines changed: 0 additions & 40 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ proc-macro2 = "1.0.95"
203203
prost = "0.14"
204204
prost-build = "0.14"
205205
prost-types = "0.14"
206-
public-api = { git = "https://github.com/vortex-data/cargo-public-api.git", branch = "main" }
207206
pyo3 = { version = "0.28.0" }
208207
pyo3-bytes = "0.6"
209208
pyo3-log = "0.13.0"

benchmarks-website/migrate/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ path = "src/main.rs"
1616

1717
# Throwaway binary, not part of the vortex-* public API surface.
1818
# Errors use anyhow, and the crate is intentionally outside the
19-
# workspace public-api lockfile set.
19+
# workspace.
2020

2121
[dependencies]
2222
anyhow = { workspace = true }

benchmarks-website/server/Cargo.toml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ path = "src/main.rs"
2020

2121
# This is a leaf binary, not part of the vortex-* public API surface.
2222
# Errors use anyhow / thiserror and the crate is intentionally outside
23-
# the workspace public-api lockfile set.
23+
# the workspace.
2424

2525
[dependencies]
2626
anyhow = { workspace = true }
@@ -39,9 +39,19 @@ serde = { workspace = true, features = ["derive", "rc"] }
3939
serde_json = { workspace = true }
4040
subtle = "2.6"
4141
thiserror = { workspace = true }
42-
tokio = { workspace = true, features = ["rt-multi-thread", "macros", "net", "signal", "sync"] }
42+
tokio = { workspace = true, features = [
43+
"rt-multi-thread",
44+
"macros",
45+
"net",
46+
"signal",
47+
"sync",
48+
] }
4349
tower = "0.5"
44-
tower-http = { version = "0.6", features = ["compression-br", "compression-gzip", "trace"] }
50+
tower-http = { version = "0.6", features = [
51+
"compression-br",
52+
"compression-gzip",
53+
"trace",
54+
] }
4555
tracing = { workspace = true, features = ["std"] }
4656
tracing-subscriber = { workspace = true, features = ["env-filter", "fmt"] }
4757
twox-hash = "2.1"

0 commit comments

Comments
 (0)