SudokuFX 1.1.0 - Sentry Integration & Build Improvements
This release builds upon the initial stable version of SudokuFX, primarily introducing Sentry.io integration for enhanced error monitoring and refining the build process.
New Features & Changes:
- Sentry Error Reporting: Integrated Sentry.io using
sentry-logback. This allows for real-time monitoring and reporting of errors encountered during application runtime, helping improve stability and debugging. (RequiresSENTRY_DSNenvironment variable to be set for reporting to function). - New Launcher Class: Introduced
org.mck.Launcheras the main entry point. This facilitates Sentry initialization before the JavaFX application starts. - Build Enhancements (Maven
pom.xml):- Added
maven-shade-pluginto create a self-contained executable JAR. - Configured
maven-surefire-pluginwith necessary--add-opensarguments for better compatibility with TestFX and newer Java versions during testing. - Included the
sentry-maven-pluginfor potential build-time Sentry integration tasks (like source map uploads, though not fully detailed in commit).
- Added
Breaking Changes:
- Application Entry Point: The internal main class for the executable JAR is now
org.mck.Launcherinstead oforg.mck.Main. This primarily affects developers building or modifying the launch process. Standard execution viajava -jarshould still work seamlessly. - Sentry DSN Requirement (for Error Reporting): To enable error reporting to Sentry, the
SENTRY_DSNenvironment variable must be set with your project's DSN value from Sentry.io. The application will run without it, but errors will not be reported to Sentry.
Technologies Used:
- Java 17 or higher
- JavaFX for the user interface
- Maven for build management
- JUnit 5 and Mockito for unit testing
- TestFX for UI testing
- Sentry (sentry-logback) for error reporting
- Logback for logging
Installation & Running Instructions:
- Download the
SudokuFX-1.1.0.jarfile from the "Assets" section below. - Make sure you have Java 17 or higher installed on your system.
- Run the game by double-clicking the JAR file or using
java -jar SudokuFX-1.1.0.jarin your command line/terminal. - (Optional - For Error Reporting) To enable automatic error reporting to the developers via Sentry:
- Set the environment variable
SENTRY_DSNto the value provided for this project (if available/applicable). How to set environment variables depends on your operating system (e.g.,export SENTRY_DSN=your_dsn_hereon Linux/macOS,set SENTRY_DSN=your_dsn_hereor System Properties GUI on Windows). - If this variable is not set, the game will run normally, but errors will not be reported automatically.
- Set the environment variable
Reporting Issues and Contributing:
- If you encounter any bugs or have feature requests, please submit them to the Issue Tracker. Sentry integration will help us identify unreported issues!
- The source code for SudokuFX is available on the GitHub Repository.
- See all releases on the Releases Page.
Known Issues:
- Error reporting to Sentry only functions if the
SENTRY_DSNenvironment variable is correctly configured.
Future Implementations:
We plan to add the following features in future releases:
- Difficulty Selection: Allow users to choose a specific difficulty level (Easy, Medium, Hard, Expert) to customize their gameplay experience.
- Timer: Implement a timer to track how long it takes the user to solve a puzzle.
- Hints: Provide a "Hint" button that reveals a single correct number on the board, offering assistance to players who are stuck.
- Undo/Redo: Implement undo and redo functionality to allow players to easily revert and reapply moves.
- Save/Load Game: Enable users to save their progress and load games later.
- Improved UI/UX: Enhance the user interface and overall user experience with improved styling, animations, and accessibility features.
- (Partially Addressed) More robust error handling: Sentry integration significantly improves visibility into runtime errors.
Contributing:
We welcome contributions from the community! If you'd like to contribute to SudokuFX, please feel free to fork the repository, make your changes, and submit a pull request.
Credits:
- Developed by Matheos Chiyuki Kusakabe (Math23Kskb)
Enjoy playing Sudoku! We hope you find SudokuFX to be a fun and engaging puzzle game.