Files
FTC-Project-Gen/CHANGELOG.md
2026-01-24 12:39:32 -06:00

53 lines
2.3 KiB
Markdown

# 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