Commit Graph

25 Commits

Author SHA1 Message Date
lq64 e73b6a7514 feat: NCS-52 Rules as a microservice (#36)
Build & Test (NowChessSystems) TeamCity build finished
Implemented module rules as a microservice.
## Summary

   - Adds Quarkus to the `rule` module, making it independently deployable as a standalone microservice on port 8081
   - Exposes all `RuleSet` methods via a REST API at `/api/rules` (candidate moves, legal moves, check/checkmate/stalemate/draw detection, apply
   move)
   - Introduces DTOs and a `DtoMapper` for serializing/deserializing chess types (board, moves, game context) as flat JSON strings
   - Adds `JacksonConfig` for Scala module registration and an `application.yml` for the rule service
   - Includes Dockerfiles for JVM, legacy-jar, native, and native-micro targets
   - Full test coverage: 17 `@QuarkusTest` HTTP-level tests + 29 `DtoMapper` unit tests (100% condition coverage)

   ## Test plan

   - [ ] `./compile` — all modules build successfully
   - [ ] `./test` — all tests pass (rule module: 107 tests total)
   - [ ] `./coverage` — 100% condition coverage in `rule` module
   - [ ] Rule service runs standalone: `./gradlew :modules:rule:quarkusDev` starts on port 8081
   - [ ] `GET /api/rules/candidate-moves` returns valid moves for initial position
   - [ ] `GET /api/rules/is-check` returns `false` for initial position

Co-authored-by: LQ63 <lkhermann@web.de>
Co-authored-by: Janis <janis-e@gmx.de>
Reviewed-on: #36
Co-authored-by: Leon Hermann <lq@blackhole.local>
Co-committed-by: Leon Hermann <lq@blackhole.local>
2026-04-22 09:29:15 +02:00
TeamCity 3b1e4451d6 ci: bump version with Build-47 2026-04-22 07:10:42 +00:00
TeamCity 437c936467 ci: bump version with Build-46
Build & Push Native Image / check-actor (push) Has been cancelled
Build & Push Native Image / build-and-push (core) (push) Has been cancelled
Build & Push Native Image / build-and-push (io) (push) Has been cancelled
2026-04-22 06:51:59 +00:00
TeamCity b4d197a9b2 ci: bump version with Build-45 2026-04-21 13:49:26 +00:00
TeamCity d7f7c37111 ci: bump version with Build-44 2026-04-21 11:13:30 +00:00
Janis 5ad5efb41e feat: NCS-37 Quarkus integration (#35)
Build & Test (NowChessSystems) TeamCity build failed
Reviewed-on: #35
Reviewed-by: Leon Hermann <lq@blackhole.local>
2026-04-21 12:35:20 +02:00
TeamCity f215ec681a ci: bump version with Build-43 2026-04-19 20:53:56 +00:00
TeamCity 2e4c7549b5 ci: bump version with Build-42 2026-04-19 14:01:11 +00:00
Janis dceab0875e feat: NCS-41 Bot Platform (#33)
Build & Test (NowChessSystems) TeamCity build finished
Co-authored-by: Janis <janis@nowchess.de>
Reviewed-on: #33
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2026-04-19 15:52:08 +02:00
TeamCity 5f4d33f3ca ci: bump version with Build-41 2026-04-16 16:55:00 +00:00
Janis 767d3051a7 feat: NCS-13 Implement Threefold Repetition (#31)
Build & Test (NowChessSystems) TeamCity build finished
Reviewed-on: #31
2026-04-16 18:49:20 +02:00
TeamCity b2e62dc60c ci: bump version with Build-40 2026-04-14 19:23:01 +00:00
Janis b0399a4e48 feat: NCS-14 implemented insufficient moves rule (#30)
Build & Test (NowChessSystems) TeamCity build finished
Reviewed-on: #30
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2026-04-14 21:17:56 +02:00
TeamCity ec2ab2f365 ci: bump version with Build-39 2026-04-12 19:03:52 +00:00
Janis fd4e67d4f7 feat: NCS-25 Add linters to keep quality up (#27)
Build & Test (NowChessSystems) TeamCity build finished
Reviewed-on: #27
Reviewed-by: Leon Hermann <lq@blackhole.local>
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2026-04-12 20:58:39 +02:00
TeamCity 3cb3160731 ci: bump version with Build-38 2026-04-12 17:41:12 +00:00
TeamCity 3ecb2c9d66 ci: bump version with Build-37 2026-04-12 15:20:01 +00:00
TeamCity e158b0a7f0 ci: bump version with Build-36 2026-04-12 14:45:56 +00:00
TeamCity 9d11d25b99 ci: bump version with Build-35 2026-04-08 07:37:40 +00:00
TeamCity b518c704fa ci: bump version with Build-34 2026-04-07 19:42:37 +00:00
Janis fe8e3c0539 fix: NCS-32 Queenside Castle doesn't care about pieces in the way (#23)
Build & Test (NowChessSystems) TeamCity build finished
Reviewed-on: #23
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2026-04-07 20:32:48 +02:00
TeamCity 47032378e2 ci: bump version with Build-31 2026-04-07 06:25:56 +00:00
lq64 217f14f899 refactor: NCS-19 Currying (#18)
Build & Test (NowChessSystems) TeamCity build finished
Summary

  - Curried candidateMoves, legalMoves, and applyMove in the RuleSet trait to separate (context) as the world being
  operated on from the computation parameter
  - Updated DefaultRules overrides and all internal call sites
  - Updated all external call sites: GameEngine, PgnParser, PgnExporter, ChessBoardView, and all affected tests

  Test plan

  - All existing tests pass (./gradlew build)
  - No behaviour changes — pure style refactoring, existing test suite is the regression guard

Co-authored-by: LQ63 <lkhermann@web.de>
Reviewed-on: #18
Reviewed-by: Janis <janis-e@gmx.de>
Co-authored-by: Leon Hermann <lq@blackhole.local>
Co-committed-by: Leon Hermann <lq@blackhole.local>
2026-04-06 21:03:17 +02:00
TeamCity 638139602c ci: bump version with Build-30 2026-04-06 07:21:42 +00:00
Janis 8f56a82104 refactor: NCS-22 NCS-23 reworked modules and tests (#17)
Build & Test (NowChessSystems) TeamCity build finished
Reviewed-on: #17
2026-04-06 09:07:39 +02:00