Skip to content

Latest commit

 

History

History
600 lines (397 loc) · 15.4 KB

File metadata and controls

600 lines (397 loc) · 15.4 KB

Changelog

All notable changes to the GGcode Compiler project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.6] - 2025-09-03

✨ Added

  • feat: fix (v1.0.2) (13e6c80)

🔄 Changed

  • build: update (1e268c0)

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • chore: fix (v1.0.5) (11cb9a4)
  • chore: fix (v1.0.4) (5b389e8)
  • test: fix (v1.0.3) (4c4abae)
  • chore: fix (v1.0.1) (d6bfd33)
  • chore: fix (248d98d)
  • docs: fix (b99e0d3)
  • build: fix (e2c9a60)
  • docs(gg): gg (b42ce30)
  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.0.5] - 2025-09-03

✨ Added

  • feat: fix (v1.0.2) (13e6c80)

🔄 Changed

  • build: update (1e268c0)

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • chore: fix (v1.0.4) (5b389e8)
  • test: fix (v1.0.3) (4c4abae)
  • chore: fix (v1.0.1) (d6bfd33)
  • chore: fix (248d98d)
  • docs: fix (b99e0d3)
  • build: fix (e2c9a60)
  • docs(gg): gg (b42ce30)
  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.0.4] - 2025-09-03

✨ Added

  • feat: fix (v1.0.2) (13e6c80)

🔄 Changed

  • build: update (1e268c0)

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • test: fix (v1.0.3) (4c4abae)
  • chore: fix (v1.0.1) (d6bfd33)
  • chore: fix (248d98d)
  • docs: fix (b99e0d3)
  • build: fix (e2c9a60)
  • docs(gg): gg (b42ce30)
  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.0.3] - 2025-09-03

✨ Added

  • feat: fix (v1.0.2) (13e6c80)

🔄 Changed

  • build: update (1e268c0)

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • chore: fix (v1.0.1) (d6bfd33)
  • chore: fix (248d98d)
  • docs: fix (b99e0d3)
  • build: fix (e2c9a60)
  • docs(gg): gg (b42ce30)
  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.0.2] - 2025-09-03

🔄 Changed

  • build: update (1e268c0)

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • chore: fix (v1.0.1) (d6bfd33)
  • chore: fix (248d98d)
  • docs: fix (b99e0d3)
  • build: fix (e2c9a60)
  • docs(gg): gg (b42ce30)
  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.0.1] - 2025-09-03

🔄 Changed

  • build: update (1e268c0)

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • chore: fix (248d98d)
  • docs: fix (b99e0d3)
  • build: fix (e2c9a60)
  • docs(gg): gg (b42ce30)
  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.0.0] - 2025-09-03

🔄 Changed

  • build: update (1e268c0)

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • docs: fix (b99e0d3)
  • build: fix (e2c9a60)
  • docs(gg): gg (b42ce30)
  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.1.0] - 2025-09-03

🔄 Changed

  • build: update (1e268c0)

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • docs(gg): gg (b42ce30)
  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.0.9] - 2025-09-03

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • docs(gg): gg (b42ce30)
  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.0.0] - 2025-08-30

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • docs: .ggcode (76dcc7e)
  • style(editor): fix ui (7564ff2)

[1.0.8] - 2025-08-30

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • style(editor): fix ui (7564ff2)

[1.0.7] - 2025-08-29

🐛 Fixed

  • fix: fix (ea39905)
  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

[1.0.7] - 2025-08-29

✨ Added

  • feat: initial commit - complete GGcode compiler project (2fd1222)
  • build(all): new stuff (526ebd2)
  • test: add test file for commit workflow verification (3d71678)

🔄 Changed

  • chore: update (b25b789)
  • build: update (4644357)

🐛 Fixed

  • fix(api): fix (13f4bec)
  • fix: fix (af6e9a8)

🔧 Other

  • chore(ui): hmm (723c619)

[1.0.7] - 2025-08-29

✨ Added

  • feat: initial commit - complete GGcode compiler project (2fd1222)
  • build(all): new stuff (526ebd2)
  • test: add test file for commit workflow verification (3d71678)

🔄 Changed

  • chore: update (b25b789)
  • build: update (4644357)

🐛 Fixed

  • fix: fix (af6e9a8)

🔧 Other

  • chore(ui): hmm (723c619)

[v1.0.6] - 2025-08-29

✨ Added

  • feat: initial commit - complete GGcode compiler project (2fd1222)
  • build(all): new stuff (526ebd2)
  • test: add test file for commit workflow verification (3d71678)

🔄 Changed

  • chore: update (b25b789)
  • build: update (4644357)

🔧 Other

  • chore(ui): hmm (723c619)

[1.0.5] - 2025-08-29

✨ Added

  • feat: initial commit - complete GGcode compiler project (ecb72ca)
  • build(all): new stuff (87e0217)
  • test: add test file for commit workflow verification (08431bb)

🔄 Changed

  • build: update (13d5bfd)

🔧 Other

  • chore(ui): hmm (ecb2643)

[1.0.3] - 2025-08-22

✨ Added

  • feat: initial commit - complete GGcode compiler project (ecb72ca)
  • build(all): new stuff (87e0217)
  • test: add test file for commit workflow verification (08431bb)

🔄 Changed

  • build: update (13d5bfd)

[1.0.1] - 2025-08-19

✨ Added

  • build(all): new stuff (87e0217)
  • test: add test file for commit workflow verification (08431bb)

[1.0.1] - 2025-08-19

✨ Added

  • build(all): new stuff (87e0217)
  • test: add test file for commit workflow verification (08431bb)

[1.0.2] - 2025-08-19

✨ Added

  • test: add test file for commit workflow verification (08431bb)

[1.0.1] - 2025-08-19

✨ Added

  • feat: Enhanced G-code modal behavior to support all motion commands (G0, G1, G2, G3) (23cbe6f)

🔧 Other

  • decimal (5b50bb3)

[1.0.0] - 2024-12-19

🎉 Major Release: Complete Project Reorganization

This release represents a complete architectural overhaul of the GGcode Compiler, transforming it from a monolithic structure to a modern, modular application.

✨ Added

Modular Architecture

  • ES6 Module System: Implemented modern ES6 modules for client-side code
  • CommonJS Modules: Maintained CommonJS for server-side Node.js compatibility
  • Dependency Injection: Proper service injection and management
  • Separation of Concerns: Clear separation between client and server code

Client-Side Modules

  • API Management System: Centralized API client with error handling and timeout management

    • APIClient: Base API client with fetch wrapper
    • CompilerAPI: GGcode compilation endpoints
    • ExamplesAPI: Examples management
    • HelpAPI: Help content retrieval
    • APIManager: Unified API management
  • Editor System: Advanced code editing capabilities

    • MonacoEditorManager: Monaco editor integration with GGcode syntax
    • GcodeAnnotationSystem: Real-time G-code analysis and modal state tracking
    • GGcodeSyntax: Comprehensive syntax highlighting for GGcode language
  • Configurator System: Dynamic form generation for parameterized GGcode

    • ConfiguratorManager: Main configurator orchestration
    • ConfiguratorParser: Variable parsing from GGcode comments
    • ConfiguratorRenderer: Dynamic form rendering
    • ConfiguratorValidator: Real-time form validation
  • UI Components: Modular user interface components

    • ModalManager: Centralized modal management
    • FileOperations: Import/export functionality with drag-and-drop
    • ToolbarManager: Toolbar controls and actions
  • 3D Visualization: Advanced G-code visualization

    • GcodeVisualizer: Main visualization orchestration
    • GcodeViewer3D: Three.js-based 3D rendering engine
    • ViewerControls: Interactive simulation controls

Server-Side Architecture

  • Layered Architecture: Clean separation of routes, services, and middleware

  • Configuration Management: Environment-specific configuration system

  • Service Layer: Business logic encapsulation

    • CompilerService: GGcode compilation with FFI integration
    • FileManagerService: File operations and validation
    • HelpContentService: Help content management
  • Middleware System: Comprehensive request processing

    • SecurityMiddleware: Input validation, rate limiting, CSRF protection
    • ErrorHandler: Centralized error handling with environment-aware responses
    • RequestLogger: Development request logging

Testing Infrastructure

  • Comprehensive Test Suite: 89 tests across 5 test suites
  • Client-Side Testing: Browser-based component testing
  • Server-Side Testing: API and service testing
  • Test Utilities: Shared testing helpers and setup
  • Coverage Reporting: Detailed code coverage analysis

Development Tools

  • ESLint Configuration: Separate rules for client (ES6) and server (CommonJS)
  • Prettier Integration: Consistent code formatting
  • Build System: Automated linting, testing, and validation
  • Development Scripts: Hot reload and debugging support

🔄 Changed

Project Structure

  • Reorganized Directory Structure: Clear separation of client and server code
  • Modular File Organization: Logical grouping by functionality
  • Configuration Centralization: Unified configuration management

Code Quality Improvements

  • ES6 Module Migration: Converted client-side code to modern ES6 modules
  • Import/Export Standardization: Consistent module patterns throughout
  • Error Handling Enhancement: Comprehensive error handling and logging
  • Security Hardening: Enhanced input validation and security headers

Performance Optimizations

  • Lazy Loading: Dynamic module loading for better performance
  • Code Splitting: Separate bundles for different features
  • Caching Strategy: Improved static asset caching
  • Request Optimization: Reduced API calls and improved response times

🛠️ Technical Improvements

Build System

  • NPM Scripts Enhancement: Comprehensive build, test, and development scripts
  • Linting Integration: Automated code quality checks
  • Test Automation: Continuous testing with coverage reporting
  • Development Workflow: Streamlined development and deployment process

Documentation

  • Comprehensive README: Detailed project documentation
  • API Documentation: Complete API endpoint documentation
  • Code Comments: Extensive inline documentation
  • Architecture Guides: Clear architectural decision documentation

Backward Compatibility

  • Global Function Exports: Maintained compatibility with existing HTML
  • Legacy Support: Gradual migration path from old structure
  • Fallback Implementations: Graceful degradation for incomplete features

🐛 Fixed

Module Resolution Issues

  • Import/Export Consistency: Resolved all module import/export conflicts
  • Dependency Resolution: Fixed circular dependencies and missing imports
  • Global Function Access: Resolved browser ReferenceError issues

Code Quality Issues

  • ESLint Violations: Fixed all linting errors and warnings
  • Unused Variables: Cleaned up unused code and variables
  • Regex Escaping: Fixed unnecessary escape characters in regex patterns
  • Object Property Access: Replaced hasOwnProperty with safe alternatives

Browser Compatibility

  • ES6 Module Support: Proper ES6 module loading in browsers
  • Global Function Availability: Fixed missing global functions for HTML onclick handlers
  • Monaco Editor Integration: Resolved editor initialization and configuration issues

📁 File Structure Changes

New Directories

src/
├── client/js/          # Client-side ES6 modules
│   ├── api/           # API client modules
│   ├── configurator/  # Configurator system
│   ├── editor/        # Editor components
│   ├── ui/            # UI components
│   └── visualizer/    # 3D visualization
├── server/            # Server-side CommonJS modules
│   ├── config/        # Configuration management
│   ├── middleware/    # Express middleware
│   ├── routes/        # API routes
│   └── services/      # Business logic services
tests/
├── client/            # Client-side tests
├── server/            # Server-side tests
└── utils/             # Test utilities

Configuration Files

  • .eslintrc.js: ESLint configuration with client/server overrides
  • CHANGELOG.md: This changelog file
  • README.md: Comprehensive project documentation

🔧 Configuration Changes

Package.json Updates

  • Script Enhancement: Added comprehensive build, test, and development scripts
  • Dependency Management: Updated and organized dependencies
  • ESLint Configuration: Moved to separate .eslintrc.js file

Server Configuration

  • Static File Serving: Added /src route for modular client files
  • Environment Management: Centralized configuration system
  • Security Headers: Enhanced security middleware configuration

📊 Metrics

Code Quality

  • Test Coverage: Maintained 100% test pass rate (89 tests)
  • Linting: Zero ESLint errors or warnings
  • Code Organization: Reduced file complexity and improved maintainability

Performance

  • Bundle Size: Optimized module loading and code splitting
  • Load Time: Improved initial page load performance
  • Memory Usage: Reduced memory footprint through better module management

🚀 Migration Guide

For Developers

  1. Module Imports: Update any custom modules to use ES6 import/export syntax
  2. API Usage: Use new API managers instead of direct fetch calls
  3. Configuration: Update environment variables and configuration files
  4. Testing: Use new test utilities and patterns

For Deployment

  1. Node.js Version: Ensure Node.js >= 16.0.0
  2. Environment Variables: Update configuration as needed
  3. Static Files: New /src route serves modular client files
  4. Build Process: Use npm run build for production builds

🔮 Future Roadmap

Planned Features

  • Real-time Collaboration: Multi-user editing capabilities
  • Plugin System: Extensible architecture for custom features
  • Cloud Integration: Cloud storage and synchronization
  • Mobile Support: Responsive design for mobile devices
  • Offline Mode: Progressive Web App capabilities

Technical Debt

  • Complete Visualizer Integration: Full integration of 3D visualizer with modular system
  • Toolbar Integration: Complete toolbar component integration
  • Help System Enhancement: Advanced help content rendering
  • Performance Optimization: Further performance improvements and monitoring

📝 Notes

This release represents a foundational change that enables future development and feature additions. The modular architecture provides a solid base for scaling the application and adding new capabilities.

All existing functionality has been preserved while significantly improving code organization, maintainability, and developer experience.

🙏 Acknowledgments

Special thanks to the development team for the extensive refactoring effort and commitment to code quality and architectural excellence.