Skip to content

v0.36.0 - v2 DataFrame Module Restructure (2026-03-23)

What Changed?

This release restructures the v2 DataFrame implementation into its own dedicated module at src/v2/. Previously, convert.ts and frame.ts lived inside src/torch/, mixing legacy and new implementations. They are now cleanly separated, with src/torch/ restricted to legacy modules only and src/v2/ serving as the independent entry point for the new DataFrame API.


What's New

Main Feature: src/v2/ Module

What it does: Provides a standalone entry point for the v2 DataFrame implementation, including DataFrame, GroupedDataFrame, LazyDataFrame, and all conversion utilities (convert.ts). This module has no dependency on FlameWright or AfterGlow.

How to use it: Import directly from src/v2, or use via the bundled library in GAS:

Code example:

TypeScript
import { DataFrame, LazyDataFrame } from "gaslamp";

const df = DataFrame.fromColumns({ name: ["Alice", "Bob"], age: [25, 30] });

const result = df
  .lazy()
  .filter((row) => (row.get("age") as number) >= 18)
  .select(["name"])
  .collect();

Added

  • src/v2/index.ts — new entry point re-exporting DataFrame, GroupedDataFrame, LazyDataFrame, Cell, Primitive, and all conversion functions
  • src/v2/convert.ts — moved from src/torch/convert.ts
  • src/v2/frame.ts — moved from src/torch/frame.ts

Changed

  • src/torch/index.ts — now re-exports only modules within src/torch/; v2 references removed
  • src/index.ts — exports DataFrameV2, GroupedDataFrameV2, LazyDataFrameV2, Cell, Primitive from src/v2; GAS globalThis registration updated accordingly
  • __tests__/torch/convert.test.ts — import path updated to src/v2/convert
  • __tests__/torch/frame.test.ts — import path updated to src/v2/frame

Fixed

  • pilotlamp: use a dedicated temp sheet in fromSheet test to avoid overwriting TestResults
  • pilotlamp: fix suiteTorch API usage for DataFrameV1 and DataFrameV2

Is It Safe to Upgrade?

  • Breaking Changes: No
  • Backward Compatible: Yes

Existing code using DataFrameV2, LazyDataFrameV2, or GroupedDataFrameV2 via the top-level package continues to work without changes. Only internal import paths within the repository have changed.


Release Details

  • Date: 2026-03-23
  • Version: v0.36.0
  • gaslamp: version 79
  • pilotlamp: version 36
  • Files Changed: 23 commits
  • Commits:
    • f7f75c7 bump: version 0.35.0 → 0.36.0
    • e58ed87 style(pilotlamp): format suiteTorch.js
    • 2d8c410 build: update bundle after v2 module restructure
    • b0e1bc8 docs(api): regenerate TypeDoc API reference after v2 module restructure
    • 16f21b8 test(frame): update import path from src/torch to src/v2
    • 5dbda6a test(convert): update import path from src/torch to src/v2
    • f7d6b09 feat(index): export v2 module and register DataFrameV2 in GAS global namespace
    • 220fced refactor(torch): remove convert and frame, restrict index to torch-only modules
    • d5573a5 feat(v2): add v2 DataFrame module with convert and frame

Known Issues

  • joinLeft, joinRight, joinOuter in DataFrame are not yet implemented (throw Error at runtime).

Next Steps

  • Implement joinLeft, joinRight, and joinOuter in src/v2/frame.ts
  • Add unit tests for GroupedDataFrame and LazyDataFrame
  • Consider promoting v2 API from @alpha to @beta