Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
7fa2b32
fix(deps): upgrade vitest 2.1.9 → 4.0.18, fix breaking changes
flyingrobots Mar 4, 2026
63dd929
docs(changelog): add vitest 4 upgrade to [Unreleased]
flyingrobots Mar 4, 2026
cbd1b01
fix(test): externalize roaring in vitest config for Bun compatibility
flyingrobots Mar 4, 2026
d43472c
fix(test): move roaring externalization to test.server.deps.external
flyingrobots Mar 4, 2026
aee350d
fix(test): add ssr.external for roaring native module under Bun
flyingrobots Mar 4, 2026
4393a6c
fix(test): use createRequire fallback for roaring native module under…
flyingrobots Mar 4, 2026
6c70e0d
fix(docker): build roaring native module in Bun container
flyingrobots Mar 4, 2026
3c525b7
fix(docker): use multi-stage build for roaring native module
flyingrobots Mar 4, 2026
15bbcd8
fix(docker): exclude bitmap tests from Bun suite (V8 API incompatibil…
flyingrobots Mar 4, 2026
4b425ba
fix: preserve both load failures in roaring fallback (CodeRabbit)
flyingrobots Mar 4, 2026
0a1139c
feat: add roaring-wasm WASM fallback for Bun/Deno bitmap indexes
flyingrobots Mar 4, 2026
60039ba
docs: add roaring-wasm to dependency tables and What's New
flyingrobots Mar 4, 2026
5bdfe64
fix: use RoaringModule type for adaptWasmApi param (tsc strict)
flyingrobots Mar 4, 2026
a0fd67f
feat: add levels, transitiveReduction, transitiveClosure, rootAncesto…
flyingrobots Mar 4, 2026
8d394dd
docs(roadmap): add B149-B151 large-graph streaming backlog items
flyingrobots Mar 4, 2026
cf3cba8
docs(roadmap): add B152-B156 streaming API, layout, and structural di…
flyingrobots Mar 4, 2026
7f49780
docs(roadmap): priority triage — 45 items into P0–P6 tiers with wave …
flyingrobots Mar 4, 2026
88e7b03
fix(roaring): reset nativeAvailability cache on reinit, preserve per-…
flyingrobots Mar 4, 2026
8d5f910
docs(readme): fix What's New heading to reflect unreleased status
flyingrobots Mar 4, 2026
7b77bc1
docs(changelog): add roaring cache reset and AggregateError fix entries
flyingrobots Mar 4, 2026
21dae78
fix(types): add JSDoc type annotations to roaring test module variable
flyingrobots Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Fixed

- **Roaring native module loading under Bun** — `initRoaring()` now catches dynamic `import('roaring')` failures and falls back to `createRequire()` for direct `.node` binary loading. Bun Dockerfile updated to install `nodejs`, `python3`, and `ca-certificates` so that `node-pre-gyp` can download or compile the roaring native binary (Bun reports a fictional Node ABI v137 with no prebuilt available). Fixes `test-bun` CI failures caused by missing native binary after Vitest 4 upgrade invalidated Docker layer cache.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated

### Changed

- **Vitest 2.1.9 → 4.0.18** — major test framework upgrade. Migrated deprecated `test(name, fn, { timeout })` signatures to `test(name, { timeout }, fn)` across 7 test files (40 call sites). Fixed `vi.fn().mockImplementation()` constructor mocks to use `function` expressions per Vitest 4 requirements. Resolves 5 remaining moderate-severity npm audit advisories (`esbuild` [GHSA-67mh-4wv8-2f99](https://github.com/advisories/GHSA-67mh-4wv8-2f99), `vite`, `@vitest/mocker`, `vite-node`, `vitest`). **`npm audit` now reports 0 vulnerabilities.**

## [13.0.1] — 2026-03-03

### Fixed
Expand Down
23 changes: 19 additions & 4 deletions docker/Dockerfile.bun
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,34 @@
# Runs: API integration tests only (vitest via bunx).
# CLI tests are excluded — the CLI uses node: built-ins.
# Build context is the parent monorepo directory (context: ..).

# ---------- Stage 1: build roaring native module with Node.js ----------
# bun install blocks lifecycle scripts by default, and Bun reports a
# fictional Node ABI (v137) that has no prebuilt binaries. We use a
# Node.js stage to download or compile the correct native binary.
FROM node:18-slim AS roaring-builder
RUN apt-get update && apt-get install -y --no-install-recommends \
make g++ python3 && rm -rf /var/lib/apt/lists/*
WORKDIR /build
COPY git-warp/package*.json ./
RUN npm install --ignore-scripts
RUN cd node_modules/roaring && npx --yes node-pre-gyp install --fallback-to-build

# ---------- Stage 2: Bun runtime ----------
FROM oven/bun:1.2-slim
# make/g++: native module compilation (roaring bitmaps).
# No bats/python3 — BATS CLI tests are Node-only.
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
make \
g++ \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY git-warp/package*.json ./
COPY git-warp/scripts ./scripts
COPY git-warp/patches ./patches
RUN bun install
# Copy the compiled roaring native binary from the builder stage.
# The binary lands in build/Release/ which is roaring's MODULE_NOT_FOUND
# fallback path — Bun finds it there when node-pre-gyp's ABI lookup fails.
COPY --from=roaring-builder /build/node_modules/roaring/build/ node_modules/roaring/build/
COPY --from=roaring-builder /build/node_modules/roaring/native/ node_modules/roaring/native/
COPY git-warp .
# Init a git repo so plumbing operations work inside the container.
RUN git init -q \
Expand Down
Loading
Loading