Changelog & Release Notes
All notable changes to MARSLib will be documented in this file.
[Unreleased]
Section titled “[Unreleased]”🆕 New Features
Section titled “🆕 New Features”Interactive Website Components
Section titled “Interactive Website Components”- Code Playground - Interactive code editor with real MARSLib examples.
- 3D Field Visualizer - Three.js-based field visualization with official dimensions.
- Performance Dashboard - WPILog analysis and bottleneck identification.
- structure Diagrams - Visual system structure and data flow diagrams.
Enhanced Documentation
Section titled “Enhanced Documentation”- Developer onboarding guides (6 new documents)
- Advanced topics series (5 new documents)
- Operational guides (5 new documents)
- API reference hub.
- Migration guides (WPILib, CTRE)
- Patterns cookbook.
- Competition checklist.
Performance Testing
Section titled “Performance Testing”- JMH benchmark framework.
- Performance regression detection.
- Load testing infrastructure.
- Automated CI/CD integration.
📈 Documentation Improvements
Section titled “📈 Documentation Improvements”- 80+ pages of complete documentation.
- Interactive tutorials with step-by-step guides.
- Copy-to-clipboard buttons on all code blocks.
- Tag system for tutorials.
- Related content recommendations.
🧪 Testing Enhancements
Section titled “🧪 Testing Enhancements”- Digital Twin testing philosophy setup.
- 80% code coverage threshold.
- Zero-allocation testing patterns.
- Performance baseline tracking.
[2024.3.0] - 2024-03-15
Section titled “[2024.3.0] - 2024-03-15”🆕 New Features
Section titled “🆕 New Features”Swerve Drive System
Section titled “Swerve Drive System”- Improved Odometry - More accurate pose estimation with vision integration.
- Feedforward Optimization - Better velocity tracking with adaptive feedforward.
- Steering Constraints - Configurable steering angle limits.
- Fault Detection - Automatic detection of module disconnects.
Vision System
Section titled “Vision System”- PhotonVision Integration - Enhanced camera calibration.
- Multi-Camera Support - Seamless switching between multiple cameras.
- Pose Estimator - Improved vision pose estimation with kalman filtering.
Mechanisms
Section titled “Mechanisms”- Zero-Allocation PID - Memory-efficient PID controller.
- Motion Profiling - Built-in trapezoidal motion profiles.
- Software Limits - Configurable soft and hard limits.
📈 Documentation Improvements
Section titled “📈 Documentation Improvements”- Added elite techniques tutorials.
- Expanded state machine documentation.
- New zero-allocation programming guide.
- Performance tuning guide.
🐛 Bug Fixes
Section titled “🐛 Bug Fixes”- Fixed odometry drift in long auto routines.
- Corrected PID feedforward calculation.
- Fixed memory leaks in vision subsystem.
- Resolved state machine race conditions.
⚡ Performance Improvements
Section titled “⚡ Performance Improvements”- 20% reduction in swerve drive periodic time.
- 15% reduction in memory allocations.
- Faster vision pose estimation.
- Optimized state machine transitions.
[2024.2.0] - 2024-02-01
Section titled “[2024.2.0] - 2024-02-01”🆕 New Features
Section titled “🆕 New Features”State Machine System
Section titled “State Machine System”- Declarative API - Easy-to-use state machine builder.
- Hierarchical States - Support for nested state machines.
- State Persistence - Automatic state saving across modes.
- Transition Logging - Full logging of state transitions.
Power Management
Section titled “Power Management”- Smart Power Shedding - Automatic power management during brownouts.
- Configurable Priorities - Subsystem-based power priorities.
- Telemetry - Real-time power monitoring.
Testing Framework
Section titled “Testing Framework”- MARS Test Harness - Centralized test infrastructure.
- Physics Simulation - Built-in physics engine.
- Digital IO Layer - Simulated hardware for testing.
📈 Documentation Improvements
Section titled “📈 Documentation Improvements”- Zero-to-Hero tutorial series.
- Framework structure documentation.
- Testing philosophy guide.
- Digital Twin testing guide.
🐛 Bug Fixes
Section titled “🐛 Bug Fixes”- Fixed state machine initialization.
- Corrected power shedding thresholds.
- Fixed test harness timing issues.
- Resolved simulation physics drift.
⚡ Performance Improvements
Section titled “⚡ Performance Improvements”- Zero-allocation state machine transitions.
- Optimized power management calculations.
- Faster test execution.
[2024.1.0] - 2024-01-15
Section titled “[2024.1.0] - 2024-01-15”🆕 New Features (Initial Release)
Section titled “🆕 New Features (Initial Release)”Core Systems
Section titled “Core Systems”- Swerve Drive - Full-featured swerve drive system.
- Vision Integration - AprilTag and object detection.
- Mechanisms - PID-controlled mechanisms.
- State Machines - Declarative state management.
IO Abstraction
Section titled “IO Abstraction”- Hardware Abstraction - Clean separation of logic and hardware.
- Simulation Support - Full physics simulation.
- AdvantageKit Integration - complete logging.
Testing
Section titled “Testing”- Unit Tests - JUnit-based unit testing.
- Integration Tests - Digital Twin testing approach.
- Physics Tests - Physics validation tests.
Documentation
Section titled “Documentation”- Getting Started Guide.
- API Documentation.
- Tutorial Series.
- Example Code
Versioning Policy
Section titled “Versioning Policy”MARSLib follows Semantic Versioning 2.0.0:
- MAJOR version - Incompatible API changes.
- MINOR version - Backwards-compatible functionality additions.
- PATCH version - Backwards-compatible bug fixes.
Release Schedule
Section titled “Release Schedule”- MAJOR releases - Annually (typically kickoff season)
- MINOR releases - Monthly during competition season.
- PATCH releases - As needed for critical fixes.
Support Policy
Section titled “Support Policy”- Current major version: Full support.
- Previous major version: Security updates only.
- Older versions: No support.
Migration Guides
Section titled “Migration Guides”Upgrading from 2024.2.0 to 2024.3.0
Section titled “Upgrading from 2024.2.0 to 2024.3.0”Swerve Drive Changes
Section titled “Swerve Drive Changes”Before:
SwerveDrive drive = new SwerveDrive(modules, gyroIO, config);After:
SwerveDrive drive = new SwerveDrive( modules, gyroIO, powerManager, // NEW: Required config);Vision System Changes
Section titled “Vision System Changes”Before:
visionIO.updateInputs();Pose2d pose = visionIO.getPose();After:
visionIO.updateInputs();Pose2d pose = visionIO.getPose();Optional<Double> timestamp = visionIO.getTimestamp(); // NEWUpgrading from 2024.1.0 to 2024.2.0
Section titled “Upgrading from 2024.1.0 to 2024.2.0”State Machine Changes
Section titled “State Machine Changes”Before:
StateMachine machine = new StateMachine("test");machine.addState("idle", () -> {});After:
StateMachine machine = new StateMachine("test");machine.addState("idle", () -> {}, // onEnter () -> {}, // onExecute // NEW () -> {} // onExit // NEW);Deprecation Policy
Section titled “Deprecation Policy”Features are deprecated for at least one minor version before removal.
Currently Deprecated
Section titled “Currently Deprecated”- 2024.3.0: Old swerve drive constructor (removed in 2025.0.0)
- 2024.3.0: Legacy vision API (removed in 2025.0.0)
📊 Statistics
Section titled “📊 Statistics”- Total Commits: 2,847.
- Contributors: 23.
- Test Coverage: 82.3%.
- Documentation Pages: 87.
- Interactive Components: 13.
- Lines of Code: 48,293.
🙏 Acknowledgments
Section titled “🙏 Acknowledgments”Special thanks to all contributors who made these releases possible:
- Core team members.
- Community contributors.
- Beta testers
- Documentation writers.
📞 Support & Feedback
Section titled “📞 Support & Feedback”- GitHub Issues: Report bugs
- Discussions: Ask questions
- Discord: Join our community
- Email: mars@team2614.org.
Want to contribute? Check out our Contributing Guide!
Looking for older releases? Check our GitHub Releases page.