chore: Merge remote-tracking branch 'origin/main' into castling
Build & Test (NowChessSystems) TeamCity build finished

This commit is contained in:
2026-03-24 17:45:35 +01:00
5 changed files with 6 additions and 6 deletions
+1 -1
View File
@@ -85,7 +85,7 @@ Create the file if it does not exist. Never delete existing entries.
- `settings.gradle.kts` must include every module via `include(":modules:<service>")`. - `settings.gradle.kts` must include every module via `include(":modules:<service>")`.
- Architecture decisions go in `docs/adr/` as numbered Markdown files (`ADR-001-<title>.md`). - Architecture decisions go in `docs/adr/` as numbered Markdown files (`ADR-001-<title>.md`).
- API contracts live in `/docs/api/`. - API contracts live in `/docs/api/`.
- Unit tests extend `AnyFunSuite with Matchers with JUnitSuiteLike` — no `@Test` annotations, no `: Unit` requirement - Unit tests extend `AnyFunSuite with Matchers` — no `@Test` annotations, no `: Unit` requirement
- Integration tests use `@QuarkusTest` with JUnit 5 — `@Test` methods must be explicitly typed `: Unit` - Integration tests use `@QuarkusTest` with JUnit 5 — `@Test` methods must be explicitly typed `: Unit`
- Always exclude scala-library from Quarkus deps to avoid Scala 2 conflicts - Always exclude scala-library from Quarkus deps to avoid Scala 2 conflicts
+1 -1
View File
@@ -23,7 +23,7 @@ report findings to team-leader, who re-invokes scala-implementer for fixes.
- `@QuarkusTest` methods (JUnit 5) must be explicitly typed `: Unit` - `@QuarkusTest` methods (JUnit 5) must be explicitly typed `: Unit`
### Tests ### Tests
- Unit tests must extend `AnyFunSuite with Matchers with JUnitSuiteLike`, not plain JUnit 5 - Unit tests must extend `AnyFunSuite with Matchers`
- Integration tests use `@QuarkusTest` with JUnit 5 `@Test` methods - Integration tests use `@QuarkusTest` with JUnit 5 `@Test` methods
- No raw `@Test` annotations on plain unit test classes - No raw `@Test` annotations on plain unit test classes
Generated
+1 -1
View File
@@ -7,6 +7,6 @@
</profile> </profile>
</component> </component>
<component name="VcsDirectoryMappings"> <component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" /> <mapping directory="" vcs="Git" />
</component> </component>
</project> </project>
+2 -2
View File
@@ -45,13 +45,13 @@ The only current module is `core` (`modules/core`).
- Jakarta annotations only (`jakarta.*`), never `javax.*`. - Jakarta annotations only (`jakarta.*`), never `javax.*`.
- Use reactive types (`Uni`, `Multi`) for I/O; no blocking calls on the event loop. - Use reactive types (`Uni`, `Multi`) for I/O; no blocking calls on the event loop.
- **Always exclude `org.scala-lang:scala-library` from Quarkus BOM** to avoid Scala 2 conflicts. - **Always exclude `org.scala-lang:scala-library` from Quarkus BOM** to avoid Scala 2 conflicts.
- **Unit tests use `extends AnyFunSuite with Matchers with JUnitSuiteLike`** — ScalaTest DSL, no `@Test` annotations needed. - **Unit tests use `extends AnyFunSuite with Matchers`** — ScalaTest DSL, no `@Test` annotations needed.
- **Integration tests use `@QuarkusTest` with JUnit 5** — explicit `: Unit` return type still required on `@Test` methods. - **Integration tests use `@QuarkusTest` with JUnit 5** — explicit `: Unit` return type still required on `@Test` methods.
### Agent Workflow (for new services) ### Agent Workflow (for new services)
1. **architect** → writes OpenAPI contract to `docs/api/{service}.yaml` and ADR to `docs/adr/`. 1. **architect** → writes OpenAPI contract to `docs/api/{service}.yaml` and ADR to `docs/adr/`.
2. **scala-implementer** → reads contract, implements service under `modules/{service}/`. 2. **scala-implementer** → reads contract, implements service under `modules/{service}/`.
3. **test-writer** → writes `@QuarkusTest` integration tests and `AnyFunSuite with Matchers with JUnitSuiteLike` unit tests. 3. **test-writer** → writes `@QuarkusTest` integration tests and `AnyFunSuite with Matchers` unit tests.
4. **gradle-builder** → resolves any build/dependency issues. 4. **gradle-builder** → resolves any build/dependency issues.
5. **code-reviewer** → reviews; reports findings back without self-fixing. 5. **code-reviewer** → reviews; reports findings back without self-fixing.
+1 -1
View File
@@ -23,7 +23,7 @@ scoverage {
} }
application { application {
mainClass.set("de.nowchess.chess.chessMain") mainClass.set("de.nowchess.chess.Main")
} }
tasks.withType<ScalaCompile> { tasks.withType<ScalaCompile> {