# Changelog All notable changes to FTC Project Generator will be documented in this file. ## [1.0.0-beta] - 2026-01-24 ### Added - **Template-based file generation**: Files stored as templates in `linux/templates/` and `windows/templates/` directories - **Project upgrade capability**: `--upgrade` flag to update existing projects while preserving user code - **Version tracking**: Projects track generator version in `.ftc-generator-version` file - **Comprehensive test suite**: - Unit tests for template processing and library functions - System tests for end-to-end project creation and building - Regression tests to ensure generated projects build and pass tests - **Improved project structure**: Cleaner organization with shared library functions - **Cross-platform support**: Separate but parallel Linux and Windows implementations - **Better error handling**: Improved validation and error messages - **Duplicate detection**: Warns when project exists and suggests upgrade option ### Changed - **Reorganized file structure**: Templates separated from generation logic - **Simplified deployment script**: More concise and maintainable - **Better documentation**: Enhanced README with upgrade instructions - **Version management**: Centralized version in VERSION file ### Technical Details - Templates support placeholders: `{{PROJECT_NAME}}`, `{{SDK_DIR}}`, `{{FTC_VERSION}}`, `{{GENERATOR_VERSION}}` - Upgrade only touches infrastructure files (build.gradle.kts, settings.gradle.kts, .gitignore, helper scripts) - User code (src/main/java/robot/, src/test/java/robot/) never modified during upgrade - Test suite validates: - Template processing correctness - All required files/directories created - Generated projects build successfully - Generated project tests pass - Upgrade functionality works correctly - Duplicate project detection ### Migration from Earlier Versions If you have projects created with pre-1.0.0 versions: 1. Add `.ftc-generator-version` file with content `0.9.0` (or appropriate version) 2. Run `ftc-new-project your-project --upgrade` 3. Review changes with `git diff` 4. Test with `./gradlew test` ## [Pre-1.0.0] - Historical ### Features - Basic project generation - Separate project structure from FTC SDK - PC-based testing capability - Deploy scripts for robot deployment - Example subsystems and tests