Skip to content

toolchain: Rust 1.99, lance 13, lancedb 0.40 (+ clippy 1.99 / EdgeFacet fixes) - #156

Merged
AdaWorldAPI merged 4 commits into
mainfrom
ccr-edc85bd9-89tiwe
Oct 10, 2026
Merged

AdaWorldAPI merged 4 commits into
mainfrom
ccr-edc85bd9-89tiwe

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Moves q2 to Rust 1.99, Lance 13 and lancedb 0.40, matching lance-graph main, and fixes everything that bump broke.

Commits

  • 5495210f: version pins.
    • rust-toolchain.toml and the Dockerfile move from 1.98.1 to 1.99.0.
    • In cockpit-server, lance goes from =12.0.0 to =13.0.0 and lancedb from =0.39.0 to =0.40.0; lancedb 0.40 still needs remote.
    • The stub crate q2-ndarray is bumped too. arrow 58 and datafusion 54 are unchanged.
  • f5075c6c: Cargo.lock. Re-resolved: every lance-* crate moves from 12.0.0 to 13.0.0, and Lance 13's new transitive dependencies are added (foyer-*, datasketches, lru, mixtrics).
  • efa42863: the workspace now passes cargo clippy -- -D warnings on 1.99.
    • double_must_use is allowed in [workspace.lints.clippy], because #[async_trait] adds #[must_use] to methods that already return a must-use future.
    • quarto-publish gets the same allow at crate level, since it doesn't inherit [workspace.lints].
    • In pampa's readers/qmd.rs, the stream is now reborrowed (&mut *output_stream) instead of taking &mut of a &mut, so the binding no longer needs mut.
    • In osint-bake and cockpit-server/osint_gotham, lance-graph main removed EdgeBlock's in_family/out_family fields. EdgeBlock is now EdgeFacet, an opaque [u8; 16] (lance-graph ISS-EDGE-BLOCK-WAS-A-SECOND-TYPE-FOR-THE-SAME-FACET).
    • Both crates already treated the block as one flat array of 16 mixin bytes: in_family[0..12] followed by out_family[0..4]. They now write as_bytes_mut()[k] and read as_bytes().iter(). The stored bytes are identical.
  • 1e422e0a: quarto-publish enables url's serde feature. It serializes url::Url, but compiled only inside the full workspace, where another crate turns url/serde on. cargo test -p quarto-publish failed with five E0277 errors. This is also missing on quarto-dev/q2 upstream.

Verified locally

Run on 1.99.0, with debug info off and incremental compilation off, against lance-graph main 7db81de.

cargo xtask verify --skip-hub-build results:

  • Steps 1–3 pass: custom lints plus clippy (-D warnings), the cargo fmt check, and the workspace build with warnings denied.
  • Step 4 (tree-sitter grammars) could not run because the tree-sitter CLI isn't installed in this environment. This PR doesn't touch the grammars.

The full cargo nextest run --workspace could not run either: linking every test binary needs more disk than this container has. I ran the changed crates instead:

crate result
cockpit-server (lance 13) 205 passed, 3 skipped
quarto-publish 101 passed
pampa + osint-bake 4046 passed, 4 failed

The 4 failures are pandoc comparison tests (test_html_writer, test_json_writer, unit_test_corpus_matches_pandoc_{markdown,commonmark}). They panic with "Pandoc version is not suitable for testing"; this container has pandoc 3.1.3.

Upstream note

Compared with quarto-dev/q2: the fork diverged at df029875b (2026-06-29). Since then upstream has 1931 commits and the fork has 431. A trial git merge-tree of upstream into this branch conflicts in 4 files: test-suite.yml, .gitignore, Cargo.lock (regenerable), and pampa/src/readers/qmd.rs. Backups of this branch are at backup/ccr-edc85bd9-89tiwe-{1,2}.

🤖 Generated with Claude Code

https://claude.ai/code/session_017YPZhKpSxN7eSxk7VH2vzB


Generated by Claude Code

…ned)

Non-comment pins only (rust-toolchain.toml, rust-version, CI MSRV, Dockerfile
images); historical comments untouched. lance/lancedb moved in lockstep with
lance-graph (arrow 58 / datafusion 54 unchanged); lancedb 0.40.0 still needs
`remote` to compile. Verification results follow in the PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017YPZhKpSxN7eSxk7VH2vzB
The toolchain commit moved the lance pins to =13.0.0 but left the lock on
12.0.0. Re-resolved by cargo during the verify build: every lance-* crate
12.0.0 -> 13.0.0 (lance-namespace 0.12 -> 0.13) plus lance 13's new
transitive deps (foyer-*, datasketches, lru, mixtrics).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017YPZhKpSxN7eSxk7VH2vzB
- Cargo.toml [workspace.lints.clippy]: allow double_must_use; #[async_trait]
  adds #[must_use] to boxed futures, which clippy 1.99 now flags.
- quarto-publish: same allow at crate level (it does not inherit
  [workspace.lints]).
- pampa readers/qmd.rs: reborrow (&mut *output_stream) instead of
  &mut &mut (mut_mut); the binding no longer needs mut.
- osint-bake, cockpit-server/osint_gotham: lance-graph main retired
  EdgeBlock's in_family/out_family fields (EdgeBlock = EdgeFacet, an opaque
  [u8; 16]; ISS-EDGE-BLOCK-WAS-A-SECOND-TYPE-FOR-THE-SAME-FACET). Both
  crates already treated the block as one flat array of 16 mixin bytes
  (in_family[0..12] then out_family[0..4]), so they now write
  as_bytes_mut()[k] and read as_bytes().iter(): byte-identical, and the
  12/4 split is gone rather than restated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017YPZhKpSxN7eSxk7VH2vzB
quarto-publish serializes url::Url but declared `url = "2.5"` without the
serde feature. It only compiled inside the full workspace, where another
crate turns url/serde on; `cargo test -p quarto-publish` failed with five
E0277 (Url: Serialize/Deserialize). Now builds standalone; 101/101 tests
pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017YPZhKpSxN7eSxk7VH2vzB
@coderabbitai

coderabbitai Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 5cf32cd0-2f5b-472d-bed9-adc8e945e675

📥 Commits

Reviewing files that changed from the base of the PR and between 138ef5a and 1e422e0.


⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock

📒 Files selected for processing (10)
  • Cargo.toml
  • Dockerfile
  • crates/cockpit-server/Cargo.toml
  • crates/cockpit-server/src/osint_gotham.rs
  • crates/osint-bake/src/lib.rs
  • crates/pampa/src/readers/qmd.rs
  • crates/quarto-publish/Cargo.toml
  • crates/quarto-publish/src/lib.rs
  • crates/stubs/q2-ndarray/Cargo.toml
  • rust-toolchain.toml

 ___________________
< Look ma, no bugs! >
 -------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


Comment @coderabbitai help to get the list of available commands.

AdaWorldAPI pushed a commit to AdaWorldAPI/lance-graph that referenced this pull request Oct 10, 2026
Format-only. 13 files in lance-graph-lane-fold and lance-graph-arm-discovery
were not rustfmt-clean on main (landed via #1381). q2's CI runs
`cargo fmt --all -- --check` with lance-graph checked out as a sibling, and
`--all` reaches these sources, so its Rustfmt gate fails on them (seen on
AdaWorldAPI/q2#156).

Formatted with the pinned 1.99.0 rustfmt; no code changes. Both crates
`cargo check --all-targets` and `cargo fmt -- --check` clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017YPZhKpSxN7eSxk7VH2vzB

Copy link
Copy Markdown
Owner Author

Run test suite (ubuntu-latest) fails at the Rustfmt (check) step, but not on q2 code. Every diff it reports is in the lance-graph sibling checkout, in 13 files under lance-graph/crates/lance-graph-lane-fold and lance-graph/crates/lance-graph-arm-discovery. Those files aren't rustfmt-clean on lance-graph main (they came in with #1381). cargo fmt --all reaches them, as the comment above the step in test-suite.yml explains.

I opened a fix in AdaWorldAPI/lance-graph#1451. It only reformats those 13 files, with no code changes. With that branch checked out as the sibling, cargo fmt --all -- --check in q2 exits 0 locally. I can't port it into this PR, because the sibling is checked out from lance-graph main. Once #1451 merges, re-running this job should clear the gate.


Generated by Claude Code

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 10, 2026 14:09
@AdaWorldAPI
AdaWorldAPI merged commit 3a4114a into main Oct 10, 2026
4 of 5 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-10T14:13:07.572527Z 1e422e0 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

AdaWorldAPI pushed a commit that referenced this pull request Oct 10, 2026
PR #156 carried the old `=12.0.0` forward as `=13.0.0`. The lance-graph
pin rule (2026-09-18) is to float the patch within the major and never
pin `.0.0`: our requirement may only be equal to or wider than what
lancedb demands, never narrower. Cargo.lock is unchanged (`cargo
metadata --locked` passes; still resolves lance 13.0.0).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017YPZhKpSxN7eSxk7VH2vzB
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.

2 participants