Skip to content

v0.63.0 - BareFrame-First Refactoring (2026-04-04)

What Changed?

This release completes the BareFrame-first refactoring of FlameFrame. FlameFrame is now a pure validation gate — it no longer provides factory shortcuts, transformation methods, or delegating read methods. All data operations are performed on BareFrame directly.


What's New

Main Feature: BareFrame-First Design for FlameFrame

What it does: FlameFrame now has a single responsibility: schema validation. Use BareFrame for all data operations, then pass the result to FlameFrame.from to validate input or output data against a schema.

How to use it:

  1. Read data with BareFrame.fromSheet (or fromArrays, fromColumns, etc.)
  2. Validate input with FlameFrame.from(df, schema)
  3. Transform using df directly (or frame.toDataFrame() if df is out of scope)
  4. Optionally re-validate output with FlameFrame.from(result, schema)
  5. Write with frame.toSheet(sheet)

Code example:

JavaScript
const df = gaslamp.BareFrame.fromSheet(inputSheet);
const schema = {
  name: gaslamp.FlameGuards.isString,
  age:  gaslamp.FlameGuards.isNumber,
};

// 1. Validate input
const { frame, errors } = gaslamp.FlameFrame.from(df, schema);
if (errors.hasErrors) {
  errors.toDataFrame().toSheet(errorSheet);
  return;
}

// 2. Transform using BareFrame
const seniors = df.filter(row => row.get("age") >= 60);

// 3. Validate output (optional) and write
const { frame: output } = gaslamp.FlameFrame.from(seniors, schema);
output.toSheet(outputSheet);

Added

  • Nothing added.

Changed

  • Nothing changed (all changes are removals).

Removed

  • FlameFrame.fromColumns — use BareFrame.fromColumns + FlameFrame.from
  • FlameFrame.fromRows — use BareFrame.fromRows + FlameFrame.from
  • FlameFrame.fromArrays — use BareFrame.fromArrays + FlameFrame.from
  • FlameFrame.withColumn — use frame.toDataFrame().withColumn(...)
  • FlameFrame.rename — use frame.toDataFrame().rename(...)
  • FlameFrame.length — use frame.toDataFrame().length
  • FlameFrame.headers — use frame.toDataFrame().headers
  • FlameFrame.shape — use frame.toDataFrame().shape
  • FlameFrame.toRows — use frame.toDataFrame().toRows()
  • FlameFrame.toColumns — use frame.toDataFrame().toColumns()
  • FlameFrame.toArrays — use frame.toDataFrame().toArrays()

Fixed

  • Nothing fixed.

Is It Safe to Upgrade?

  • Breaking Changes: Yes
  • Backward Compatible: No

Users who call any of the removed methods will get a runtime error. Migration pattern: replace frame.method(...) with frame.toDataFrame().method(...), or reuse the original df variable when it is still in scope.


Release Details

  • Date: 2026-04-04
  • Version: v0.63.0
  • gaslamp: 122
  • pilotlamp: 80
  • Files Changed: 10
  • Commits:
  • f2733c50 refactor(flameframe)!: remove delegating read methods and getters
  • 385f6dae refactor(flameframe)!: remove withColumn and rename transformation methods
  • 3ad4a82f refactor(flameframe)!: remove fromColumns/fromRows/fromArrays factory methods
  • 3f56b350 docs(flameframe): update docstring examples to BareFrame-first pattern
  • 76739faf docs(guides): update flameframe guide
  • f734eb14 docs(getting-started): update first-steps and practical-workflows
  • d9e08d85 docs(getting-started): prefer original df over frame.toDataFrame()
  • 10d8c454 docs(getting-started): prefer original df in first-steps
  • b3a3364b docs(api): regenerate TypeDoc output
  • 2a095236 docs(claude): document BareFrame-first design pattern

Known Issues

  • None.

Next Steps

  • Continue BareFrame-first adoption across user-facing guides and examples.