gaslamp v0.20.0 Release Notes¶
Released: 2025-09-05
๐ Major Changes¶
โจ New Gears Module Architecture¶
Major architectural improvement - Introduced the new gears module to consolidate general-purpose utilities:
- JunkPocket: Generic caching and key-value storage utility with lazy initialization and conditional clearing
- ClockSmith & Clock: Performance timing and measurement tools for tracking execution time
- Unified Map Infrastructure: Consistent caching strategy across all gaslamp modules
TypeScript
// New gears module usage
import { JunkPocket, ClockSmith } from 'gaslamp';
// Caching utility
const cache = new JunkPocket<string>("myCache");
const value = cache.getOrCreate("key", () => "computed value");
// Performance timing
const smith = new ClockSmith();
smith.start("task1");
// ... your code ...
smith.stop("task1");
console.log(`Task duration: ${smith.elapsed("task1")}ms`);
๐๏ธ Module Reorganization¶
Before (v0.19.0):
Text Only
src/torch/ # Data processing + utilities (mixed)
After (v0.20.0):
Text Only
src/torch/ # Pure data processing (DataFrame, Series)
src/gears/ # General-purpose utilities (JunkPocket, ClockSmith)
This separation improves: - Logical organization: Clear separation between data processing and utilities - Reusability: Utilities can be used independently across projects - Maintainability: Focused modules with single responsibilities
โจ Features¶
FlameWright Enhancements¶
- Strict Mode Validation: Enhanced FlameForge with strict validation options
- GAS Type Safety: Improved globalThis type safety for Google Apps Script compatibility
Build & Development¶
- Comprehensive Format Tasks: New task groups for organized development workflow
- Improved Task Naming: Shortened frequently used task names for better developer experience
๐ Bug Fixes¶
- FlameWright: Enhanced globalThis type safety for better GAS compatibility
๐ง Refactoring¶
- Import Path Updates: All modules updated to use new gears module paths
- FlameForge Implementation: Updated for improved performance and reliability
- Build System: Organized tasks with standardized group:name naming convention
๐ Documentation¶
- TypeDoc API Docs: Complete API documentation regenerated with new gears module
- Module Structure: Updated documentation to reflect new architecture
๐ Migration Guide¶
For Existing Users¶
If you were importing utilities directly from torch module:
Before:
TypeScript
import { JunkPocket } from 'gaslamp/torch';
import { ClockSmith } from 'gaslamp/torch';
After:
TypeScript
import { JunkPocket, ClockSmith } from 'gaslamp';
// or specifically:
import { JunkPocket, ClockSmith } from 'gaslamp/gears';
Google Apps Script Users¶
No changes required for GAS users - global exports remain available:
JavaScript
// Still works in GAS
const cache = new JunkPocket("myCache");
const timer = new ClockSmith();
๐งช Testing & Compatibility¶
- โ All 45 test suites pass (432 individual tests)
- โ TypeScript compilation successful
- โ Google Apps Script compatibility maintained
- โ Rollup bundling successful
๐ Performance¶
No performance regressions introduced. The architectural changes are purely organizational and maintain all existing functionality.
๐ฅ Contributors¶
- @shotakaha - Architecture redesign and implementation
๐ Links¶
- Documentation: https://gaslamp.readthedocs.io/
- Repository: https://gitlab.com/qumasan/gaslamp
- Issues: https://gitlab.com/qumasan/gaslamp/-/issues
- API Documentation: Generated TypeDoc available in
docs/api/
Full Changelog: v0.19.0...v0.20.0