Releases: CodeDefenders/CodeDefenders
v2.0
The new CodeDefenders 2.0 version comes with many new features, UI and UX improvements, bug fixes, modernizations, and performance improvements. Among other things, it introduces a whole new way to manage sessions with students, as teachers can now create classrooms, invite players, and host games. Players can now collect achievements and present them along with statistics on their profile page. New puzzle modes and a better in-game experience await exploration by players.
Gameplay and puzzle improvements
- Introducing equivalence puzzles, where equivalence duels can be practiced.
- Refined equivalence duels, with automatic resolution, validation of lost duels, clearer error highlighting and messages.
- Melee and battleground modes now better show other players’ tests, scores and statistics, add intention collection, and fix several issues.
- Introducing achievements to motivate players.
- Statistics, graphs and achievements on the profile page make progress and performance visible for players.
New teaching and admin features
- Introducing class rooms where teacher can invite students, manage members, create and monitor games.
- Improved admin pages to manage active games more effectively.
- Admins can now set and adjust the game duration for automatic closing of games.
- Management of puzzles was improved and now allows reordering, editing, adding, and deleting of puzzles and chapters from directly within the admin settings.
User interface and UX polish
- Closed games offer a summary of the game's events, mutants and tests.
- Solved puzzles show the solving mutant or test and the number of tries the player needed to solve it.
- Messages were mostly moved to toast notifications.
- To save some time when writing tests, players can opt in to keep their submitted test in the editor to form the next one. They can also open any test and copy the code directly to the editor.
- Overhauled UI components (better puzzle overview and navigation, class preview styling, profile redesign, achievement views, round counters) and multiple CodeMirror/JS errors were fixed.
- New help and explanation text clarifies upload restrictions, equivalence claims, and constraints.
Architecture, performance, and maintainability
- Improve delivery of JavaScript code by bundling and moving to ES modules.
- Backend refactoring split responsibilities into dedicated repositories, reworked configuration (incl. alternative base URL), cleaned legacy constructs.
- Database access and transaction handling were hardened, adding constraints, fixing incorrect paths and SQL errors, and addressing coverage shortfalls and score calculation issues.
- Enable playing without the default frontend by providing API endpoints. This opens the door for programs or LLM agents participating in a game.
- Fix issues with games containing dependencies, rematches, kill-maps.
- Many refactorings and improvements for better code quality, mainatainability and performance.
Security, deployment, and compliance
- Security and authorization were strengthened (Shiro-based admin handling, stricter role checks, protected pages), and GDPR-related changes improved privacy handling across the site.
- The project moved beyond Java 8 up to Java 17, updated dependencies and Docker images, improved CI (GitLab Java/coverage jobs), and added support for MySQL and modern Tomcat deployments.
- Support vagrant for easy development builds.
v1.8.1
This bugfix release provides the following improvements:
- Remove several superfluous database queries to improve performance
- Fix automatic equivalence duel triggering
- Fix exception during application shutdown
- Fix viewing of alive/claimed mutants on finished games
- UI fixes
v1.8
This release provides the following improvements:
- Reworked administrative interface
- Melee games can now also be handled from the admin interface
- New chat component
- Support for Google Truth assertions
- Reworked database handling
- Updates in documentation
- Reworked configuration (see /docs/ for detailed description of configuration changes)
- Reworked docker setup
- Bug fixes and improvements
v1.7
This release provides the following improvements:
- Melee mode! Fight a battle against everyone, attacking and defending at the same time.
- Mutant accordion to match the changed UI for displaying test information
- Various minor UI improvements
- Plenty of fixes and improvements in code quality
With this release we added a websocket connection for faster communication between frontend and backend.
This requires additional configuration in the reverse_proxy.
The examples below assume that you deployed codedefenders to the root path (/) of the tomcat instance.
For Apache you need to enable the proxy_wstunnel module:
a2enmod proxy_wstunnel
and add a proxy directive to the virtual host configuration:
ProxyPass /notifications ws://localhost:8080/notifications
ProxyPassReverse /notifications ws://localhost:8080/notifications
For nginx adding
location /notifications {
proxy_pass http://localhost:8080/notifications;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
should do the trick.
v1.6.1
v1.6
This release provides the following improvements:
- JUnit 5 support
- Test carrousel replaced with accordion
- Usability improvements to intention collection
- Usability improvements for compile errors
- Better adapt test smell detection to the game
- Show more detailed validation error messages
- Display tests and test failures for killed mutants
- Improve view of recent games and active games
- Support for automatic equivalence duel triggering
- Allow checking of lost equivalence duels against past tests
- Option to enforce Hamcrest assertions
- Various usability improvements
- Various bugfixes, including a database connection leak
v1.5.1
v1.5
This release provides the following improvements:
- Duel mode has been removed, but it is now possible to join one's own multiplayer games as a player instead of observer
- Users can edit and delete their profiles
- Admins can delete / deactivate users and classes
- Editor keymaps stored as user preference
- Updated landing page
- Privacy updates and fixes
- General bugfixes and usability improvements
v1.4
v1.3.2
This release provides the following improvements:
- Fixes to handling of dependency classes
- Fixes to handling of classes in packages
- Include pending equivalences in mutant list
- Usability improvements
- Improvements to admin interface during game setup
- Various fixes and refactorings