Bootstrap the .NET solution and continuous quality gates #3

Open
opened 2026-07-15 10:04:13 +02:00 by Kyuubi · 4 comments
Owner

Parent: #1
Depends on: #2

Outcome

Create the buildable repository foundation described by the approved architecture.

Scope

  • Land the existing README and repository hygiene files.
  • Create FinalFactory.Rendezvous.Server, FinalFactory.Rendezvous.Contracts, FinalFactory.Rendezvous.Client, FinalFactory.Rendezvous.TestClient, and test projects with enforced dependency direction.
  • Target the current .NET LTS for the server; choose a client/contracts target compatible with the Godot consumers.
  • Pin a stable LiteNetLib 2.x package and all other direct dependencies centrally.
  • Enable nullable reference types, deterministic builds, warnings as errors, analyzers, formatting rules, and package lock/restore policy.
  • Add Gitea Actions for restore, build, format/analyzer checks, and tests.
  • Document local commands and architecture boundaries.

Acceptance criteria

  • A clean clone restores, builds, and tests on Linux.
  • CI runs the same gates and fails on warnings or formatting drift.
  • Contracts, Client, and TestClient contain no Godot dependency.
  • Contracts contain no server or LiteNetLib implementation types.
  • TestClient may reference Client, Contracts, and LiteNetLib, but cannot reference Server internals.
  • Server starts and shuts down as a minimal HTTP/UDP-capable process with cancellation.
  • Dependency versions are reproducible and the supported SDK/runtime versions are documented.
  • No license is added without an explicit owner choice.
Parent: #1 Depends on: #2 ## Outcome Create the buildable repository foundation described by the approved architecture. ## Scope - Land the existing README and repository hygiene files. - Create `FinalFactory.Rendezvous.Server`, `FinalFactory.Rendezvous.Contracts`, `FinalFactory.Rendezvous.Client`, `FinalFactory.Rendezvous.TestClient`, and test projects with enforced dependency direction. - Target the current .NET LTS for the server; choose a client/contracts target compatible with the Godot consumers. - Pin a stable LiteNetLib 2.x package and all other direct dependencies centrally. - Enable nullable reference types, deterministic builds, warnings as errors, analyzers, formatting rules, and package lock/restore policy. - Add Gitea Actions for restore, build, format/analyzer checks, and tests. - Document local commands and architecture boundaries. ## Acceptance criteria - A clean clone restores, builds, and tests on Linux. - CI runs the same gates and fails on warnings or formatting drift. - Contracts, Client, and TestClient contain no Godot dependency. - Contracts contain no server or LiteNetLib implementation types. - TestClient may reference Client, Contracts, and LiteNetLib, but cannot reference Server internals. - Server starts and shuts down as a minimal HTTP/UDP-capable process with cancellation. - Dependency versions are reproducible and the supported SDK/runtime versions are documented. - No license is added without an explicit owner choice.
Kyuubi self-assigned this 2026-07-15 10:10:21 +02:00
Author
Owner

Starting the first scoped bootstrap checkpoint: land the project README on main, including the thin TestClient in the planned solution layout. Solution/project scaffolding and CI remain pending in this issue.

Starting the first scoped bootstrap checkpoint: land the project README on `main`, including the thin TestClient in the planned solution layout. Solution/project scaffolding and CI remain pending in this issue.
Author
Owner

README checkpoint pushed to main in 2959c7e (docs: describe Rendezvous service (#3)). It documents purpose, responsibilities, connection flow, security boundaries, non-goals, and the planned thin TestClient. Remaining solution/CI bootstrap scope stays open.

README checkpoint pushed to `main` in `2959c7e` (`docs: describe Rendezvous service (#3)`). It documents purpose, responsibilities, connection flow, security boundaries, non-goals, and the planned thin TestClient. Remaining solution/CI bootstrap scope stays open.
Author
Owner

Resuming the remaining bootstrap scope on top of the completed #2 architecture checkpoint: solution/projects, dependency boundaries, deterministic/locked builds, analyzers/format gates, CI, and minimal cancellable HTTP/UDP server startup.

Resuming the remaining bootstrap scope on top of the completed #2 architecture checkpoint: solution/projects, dependency boundaries, deterministic/locked builds, analyzers/format gates, CI, and minimal cancellable HTTP/UDP server startup.
Author
Owner

Bootstrap completed and pushed on codex/issue-3-bootstrap (commit e626b89) on top of #2. It adds the five-project solution, exact .NET/LiteNetLib pins and lock files, enforced dependency tests, analyzer/format/build/test CI, and a cancellable HTTP/UDP server. Verification: locked restore pass, release build 0 errors, formatter 0 changes, 5/5 tests pass, live/ready loopback smoke pass, graceful cancellation pass. The issue will close when the stacked branch lands on main.

Bootstrap completed and pushed on `codex/issue-3-bootstrap` (commit `e626b89`) on top of #2. It adds the five-project solution, exact .NET/LiteNetLib pins and lock files, enforced dependency tests, analyzer/format/build/test CI, and a cancellable HTTP/UDP server. Verification: locked restore pass, release build 0 errors, formatter 0 changes, 5/5 tests pass, live/ready loopback smoke pass, graceful cancellation pass. The issue will close when the stacked branch lands on `main`.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: HeiKyu/Rendezvous#3