v0.44.0 - Add unfoldColumns to BareFrame and FlameFrame (2026-03-25)¶
What Changed?¶
This release adds the unfoldColumns() method to both BareFrame and FlameFrame.
It converts wide-format data with grouped columns into long-format rows, replacing the v1 explodeBy* family of methods.
The v1 explodeByColumnGroups, explodeByPattern, and explodeByHeaders methods are now deprecated.
What's New¶
Main Feature: unfoldColumns()¶
What it does: Expands repeated column groups (e.g., multiple people, questions, or time periods) from wide format into long format, where each group becomes a separate row.
How to use it:
TypeScript
const df = BareFrame.fromColumns({
timestamp: ["2024-03-25"],
email: ["a@example.com"],
person1_name: ["Alice"],
person1_age: [30],
person2_name: ["Bob"],
person2_age: [25],
});
const unfolded = df.unfoldColumns({
fixedHeaders: ["timestamp", "email"],
groups: [
["person1_name", "person1_age"],
["person2_name", "person2_age"],
],
groupHeaders: ["name", "age"],
});
// timestamp | email | name | age
// 2024-03-25 | a@example.com | Alice | 30
// 2024-03-25 | a@example.com | Bob | 25
Permissive vs strict mode:
| permissive (default) | strict | |
|---|---|---|
| Missing columns in groups | filled with null |
throws Error |
| Group size mismatch | filled with null |
throws Error |
Use strict: true for ETL pipelines or data quality checks where structure errors should fail early.
Added¶
UnfoldOptionstype insrc/v2/frame.ts(@since 0.44.0)BareFrame.unfoldColumns(options: UnfoldOptions)insrc/v2/frame.ts(@since 0.44.0)FlameFrame.unfoldColumns(options: UnfoldOptions)insrc/v2/flameframe.ts(@since 0.44.0) — validatesfixedHeadersagainst the schema, then delegates toBareFrame
Changed¶
- Nothing
Fixed¶
- Nothing
Deprecated¶
DataFrameV1.explodeByColumnGroups()— useBareFrame.unfoldColumns()insteadDataFrameV1.explodeByPattern()— useBareFrame.unfoldColumns()insteadDataFrameV1.explodeByHeaders()— useBareFrame.unfoldColumns()instead
Is It Safe to Upgrade?¶
- Breaking Changes: No
- Backward Compatible: Yes
The v1 explodeBy* methods are deprecated but not yet removed. Existing code continues to work.
Release Details¶
- Date: 2026-03-25
- Version: v0.44.0
- gaslamp: v95
- pilotlamp: v52
- Files Changed: 193
- Commits:
ad923d8cfeat(v2): add unfoldColumns method to BareFramee50f1aa3test(v2): add unfoldColumns tests to frame.test.tsb02f1b49feat(v2): add unfoldColumns wrapper to FlameFramed91f41b0test(v2): add unfoldColumns tests to flameframe.test.tse64f3279docs(v2): update UnfoldOptions description to include FlameFrame94cd0539docs(v2): add @since 0.44.0 to UnfoldOptions and unfoldColumnsc0f2d8c4docs(legacy): add explodeBy* deprecation entries (since 0.44.0) to v1 README2db11260docs(torch): add @deprecated Since 0.44.0 to explodeBy* methods5f0d3a2fdocs(api): regenerate TypeDoc for 0.44.0f811fd66build: bundle gaslamp for 0.44.0
Known Issues¶
- None
Next Steps¶
- Remove deprecated
explodeBy*methods in a future release - Add
FlameFrame.unfoldColumns()result re-validation viaFlameFrame.from()