roadmap-gen
Version:
Professional HTML roadmap generator from YAML data with multiple themes
180 lines (128 loc) โข 8.72 kB
Markdown
# Changelog
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).
## [0.4.0] - 2025-08-11
### Added
- ๐ **Internal/Public Content Control**: Major new feature for controlling content visibility
- `--with-internal` CLI flag to include confidential content
- `internal: true` flag for projects, quarters, details, and metrics
- `internal_notes` field for sensitive quarter information (always excluded from public view)
- Granular control at multiple levels: entire projects, specific quarters, individual details, or metrics
- Automatic filtering of empty categories after internal content removal
### Enhanced
- **TypeScript Types**: Extended with `DetailItem`, `MetricItem`, and union types (`DetailEntry`, `MetricEntry`)
- **HTML Generation**: Updated utilities with `detailEntriesToStrings()` and `metricEntriesToStrings()` helpers
- **Build Process**: Enhanced filtering pipeline with comprehensive content processing
- **Template System**: Support for new data structures while maintaining backward compatibility
### Technical
- **New Filtering Logic**: `filterInternalContent()` function with multi-level content filtering
- **Helper Functions**: `filterDetailEntries()` and `filterMetricEntries()` for granular filtering
- **Code Quality**: Refactored build function to reduce complexity (split into smaller functions)
- **Test Coverage**: 4 new comprehensive tests for internal content filtering scenarios
### Security
- **Content Privacy**: Ensures sensitive information is never leaked to public roadmaps
- **Default Behavior**: Public-first approach - internal content hidden by default
- **Validation**: Comprehensive filtering at all data structure levels
## [0.3.1] - 2025-08-11
### Added
- ๐ฆ **Embedded Default Theme**: Default theme is now fully embedded in the binary for self-contained usage
- ๐ฏ **Smart Theme Resolution**: Automatic detection between embedded default and external themes
### Fixed
- **Code Quality**: Resolved ESLint warnings and formatting issues
### Technical
- **Embedded Assets**: Complete default theme embedded in `src/core/embedded-assets.ts`
- **Theme Loading**: Enhanced `loadThemeAssets()` with embedded vs external theme detection
- **Template System**: Improved template variable consistency across all generators
- **Build Process**: Streamlined asset copying for both embedded and external themes
## [0.3.0] - 2025-08-10
### Added
- ๐ **Custom Output Directory**: `--output` / `-o` option to specify custom output directories
- ๐ฏ **Template System**: `--template` / `-t` option to use different theme directories
- ๐จ **Multiple Themes**: Example themes for different audiences and use cases
### Enhanced
- **API**: `build()` function now accepts `templateDir` and `outputDir` parameters
- **CLI Interface**: Extended help documentation with new theme and output options
- **Asset Management**: Smart asset copying that handles both default and themed assets
- **Template Loading**: Enhanced template loader to work with different theme directories
### Technical
- **Theme Architecture**: Modular theme system with individual asset directories
- **Asset Resolution**: Intelligent asset path resolution for default vs themed templates
- **Code Quality**: All code passes ESLint, Prettier, and EditorConfig validation
- **Test Coverage**: Comprehensive test suite continues to pass with new functionality
## [0.2.2] - 2025-08-10
### Added
- **Workflows**: Composite action for Bun setup to reduce code duplication across workflows
### Changed
- **CI/CD**: Optimized workflow architecture - CI runs on push/PR, Build validates and builds on release, Publish depends on successful Build
- **Validation**: Moved validation logic out of composite action to individual workflows for better control
### Fixed
- **TypeScript**: Resolved strict mode errors with proper null safety and optional chaining
- **Tests**: Enhanced test robustness with safe navigation operators
- **Workflows**: Fixed softprops/action-gh-release requiring proper release context
- **Code Quality**: Improved regex validation with capture group verification
## [0.2.1] - 2025-08-10
### Fixed
- ๐งน **Code Cleanup**: Removed unused CSS rules, optimized JavaScript event handlers for better maintainability
- โ
**Test Updates**: Fixed test assertions to match updated UI text labels
- ๐ **Code Quality**: Improved ESLint compliance with proper line length and quote consistency
### Changed
- **UI**: Issue links now appear directly on project titles with arrow indicators instead of separate links
- **Visual**: Project row borders increased from 1px to 2px for better visual separation
- **Assets**: Removed redundant CSS classes and optimized file structure
## [0.2.0] - 2025-08-10
### Added
- ๐๏ธ **CLI Arguments Support**: `--source` / `-s` option to specify custom YAML files
- ๐ **Help Command**: `--help` / `-h` displays comprehensive usage information
- ๐จ **Typography Enhancement**: Replaced `...` with proper ellipse character `โฆ`
- ๐ **Example File**: Repository example moved to `example.yml` for better structure
- โ๏ธ **Configuration**: Use constants instead of hard coded values throughout codebase
- ๐ง **Dependencies**: Added `@bomb.sh/args` for CLI parsing and TypeScript for compilation checks
### Changed
- **Breaking**: Default source file is now `roadmap.yaml` instead of `data.yaml`
- **CLI**: Enhanced error messages with helpful suggestions for `--source` option
- **API**: `build()` function now accepts optional `sourceFile` parameter
- **CI/CD**: Refactored GitHub Actions workflows with sequential CI โ Build/Publish architecture
- **Scripts**: Reorganized npm scripts - `build` for roadmap generation, `validate` for CI
### Fixed
- ๐ง **ESLint Configuration**: Improved ESLint rules without disabling checks unnecessarily
- ๐๏ธ **TypeScript Configuration**: Fixed `allowImportingTsExtensions` compatibility with `noEmit`
- โจ **Code Style**: Enhanced build function modularity and removed trailing spaces
- ๐งช **Test Improvements**: Better test structure with named constants instead of magic numbers
## [0.1.0] - 2025-01-14
### Added
- ๐ฏ HTML roadmap generator from YAML data
- ๐ Interactive roadmap visualizations with project tracking
- ๐จ Professional dark theme with responsive design
- ๐ YAML configuration support with comprehensive validation
- ๐๏ธ Modular template system with external HTML templates
- โก Template caching for improved performance with memory limits
- ๐งช Comprehensive test suite with 66+ tests and 201 assertions
- ๐ง ESLint configuration with code quality rules
- โจ Prettier formatting with EditorConfig standards
- ๐ EditorConfig for consistent code style across editors
- ๐ EditorConfig-checker for automated style validation in lint phase
- ๐ฆ Dual usage: CLI tool and programmatic API
- ๐ Cross-platform binary compilation support
- ๐ Flexible progress format support (percentages, fractions, phases, custom text)
- ๐ Dynamic year detection (no hardcoded dates)
- ๐ Built-in XSS protection with HTML escaping
- ๐ก๏ธ URL sanitization to block dangerous schemes
### Features
- **Project Status Tracking**: Visual indicators for completed, in-progress, planned, and on-hold projects
- **Quarter-based Timeline**: Organize projects across multiple quarters with highlighted periods
- **Rich Project Data**: Support for responsible parties, issue links, progress tracking
- **Metrics Dashboard**: KPIs and risk management
- **Interactive Elements**: Keyboard navigation, hover effects, and smooth scrolling
- **Export Ready**: Generate standalone HTML files for sharing
### Technical
- **Modern Architecture**: TypeScript with strict configuration and modular design
- **Template System**: External HTML templates with secure variable replacement
- **Code Quality**: KISS and DRY principles, comprehensive linting, EditorConfig standards
- **Industry Standards**: Follows npm/Node.js conventions with root index.ts
- **Organized Structure**: Logical grouping in core/, data/, and template/ modules
- **Bun Runtime**: Optimized for performance with Bun's native features
- **CI/CD Pipeline**: Automated quality checks and multi-platform binary builds
- **Security First**: Input sanitization, XSS protection, and URL validation built-in
- **Error Handling**: Comprehensive validation with clear error messages
- **Separated Concerns**: Quality checks (`check`) independent from build validation (`validate`)