Skip to content

Consolidate Shopify patches onto v0.9.30-shopify-patches - #38

Merged
sle-c merged 4 commits into
v0.9.30-shopify-patchesfrom
chore/consolidate-patches
Oct 2, 2026
Merged

sle-c merged 4 commits into
v0.9.30-shopify-patchesfrom
chore/consolidate-patches

Conversation

@sle-c

@sle-c sle-c commented Oct 2, 2026

Copy link
Copy Markdown

Summary

Make v0.9.30-shopify-patches hold every Shopify change. This PR brings in the work that landed elsewhere.

Today the shipped code and main have split:

Commits (cherry-picked with -x, no code changes)

All four apply with no conflicts. git range-diff shows only the added cherry picked from trailer.

Verification

Ran locally on 1.98.1 with RUSTFLAGS="-D warnings --cfg tokio_unstable":

  • cargo fmt --check
  • cargo check --all-targets --all-features
  • cargo check -p libsql --no-default-features --features {core,replication,remote}

All clean.

Merge

Use a merge commit, not squash. Separate commits keep each patch easy to drop or replay on a new upstream base.

After merge

  • Tag the merge commit libsql-rs-v0.9.30+shopify.1.
  • No consumer changes in this PR. Existing tags stay where they are.

Plan: make this branch the default branch and keep main as an upstream mirror.

sle-c and others added 4 commits October 2, 2026 12:24
Intercepts raw HTTP responses before tonic-web gRPC-web framing to capture
the actual response body when the server returns a non-gRPC response. This
helps diagnose 'Invalid header bit N expected 0 or 1' errors by logging the
HTTP status, content-type, and response body preview.

(cherry picked from commit 11e180e)
vectorParseSqliteText stores each vector element in a 1025-byte stack
buffer whose final byte must remain NUL. The length guard used `>`, so a
1025-character element overwrote that terminator before the guard
fired; the following error path then formatted the buffer with `%s`,
reading past the end of the stack buffer.

Reject the element once it reaches MAX_FLOAT_CHAR_SZ characters so the
terminator is preserved, regenerate the bundled amalgamations, and add
boundary regression tests for every vector function that parses TEXT.

(cherry picked from commit 553cb83)
libsql-sqlite3/test/rust_suite has no committed Cargo.lock, so CI resolves
its transitive dependencies fresh on every run. Several of those now
require a newer compiler than the pinned 1.85.0 (icu_* and wasm-encoder/wast
declare rust-version 1.88; yoke-derive 0.8.3 declares none but uses
str::from_utf8 as an inherent method, stabilized in 1.87). This breaks the
Extensions Tests job and the rusttestwasm step of make-sqlite3 on main.

Pin current stable (1.98.1) rather than the minimum that compiles today
(1.88.0, verified green in CI), so crate MSRV bumps do not break CI again
in the near term. Document the constraint next to the unlocked test crate.

(cherry picked from commit e48d754)
CI compiles with RUSTFLAGS="-D warnings", so lints added since 1.85.0
fail the build:

- mismatched_lifetime_syntaxes (new in 1.89): eleven signatures elide a
  lifetime on the input side (&self / &str) but hide it on the output type
  (Vec<Column>, PageHdrIter, CursorStep<S>, Cow<str>). Spell the output
  lifetime as '_ as the compiler suggests. No semantic change; this is the
  lifetime rustc already inferred.
- unused_assignments: `frameno` in bottomless-cli's restore loop was only
  ever copied into BatchReader::new and then incremented, never read.
  BatchReader tracks its own next_frame_no and the function returns the
  separate last_received_frame_no, so the local was dead since it was
  introduced in 4a71b20. Remove it and pass first_frame_no directly.

Verified locally on 1.98.1 with the same flags as CI:
cargo check --all-targets --all-features, cargo fmt --check, and
cargo check -p libsql --no-default-features for core/replication/remote.

(cherry picked from commit c22cc62)
@sle-c
sle-c merged commit cc4e8a6 into v0.9.30-shopify-patches Oct 2, 2026
18 of 19 checks passed
@sle-c
sle-c deleted the chore/consolidate-patches branch October 2, 2026 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants