Files
RichardandClaude Opus 5 6218a04fe4 Eine Roadmap statt fuenfzehn Plandokumente; Altbestand ins Archiv
Der Status des Projekts stand verstreut in elf Umsetzungsplaenen, drei
Konzepten, der Linux-Analyse und dem Projektstand - teils widersprechend, teils
wochenlang veraltet. Ab jetzt gibt es genau eine Statusquelle.

docs/ROADMAP.md (neu):
- Alle Vorhaben in vier Stufen A bis D, plus technische Schuld und Verlauf.
  Die Stufen sind eine Reihenfolge, keine Termine: jede schafft die
  Voraussetzung fuer die naechste.
- Statuszeichen: erledigt / offen / blockiert (mit Ursache) / bewusst
  zurueckgestellt / Idee, nicht beschlossen. Damit ist das, was wir NICHT bauen
  wollen, sichtbar vorgehalten statt unauffindbar in einem Plan zu schlummern.
- Inhaltlich getragen, nicht nur verlinkt: je Vorhaben Ziel, Phasen,
  Akzeptanzkriterien, offene Entscheidungen und Leitplanken aus den Quelldokumenten.
- Sichtbar gemacht, was vorher zwischen den Dokumenten verborgen lag:
  CopyTrading Phase 1 ist der Engpass der gesamten Roadmap (MarketMaking und
  BundleArbitrage haben harte Voraussetzungen darauf), und die Sniper-Metriken
  aus Phase 3.2 sind ein Spezialfall des StrategieDrift-Fingerprints - zusammen
  bauen statt doppelt.

Archiv (docs/archiv/):
- 15 Dokumente verschoben (11 Umsetzungsplaene, 3 Konzepte, ANALYSE-Linux-Portierung).
  Sie bleiben die Bauanleitungen mit Code-Bezuegen, Risikotabellen und
  Begruendungen - eingefroren ist nur ihr Status.
- archiv/README.md ordnet jedes Dokument seinem Roadmap-Punkt zu.

Verweise nachgezogen - der eigentliche Aufwand:
- 25 Markdown-Links repariert. 15 davon verschiebungsbedingt (eine Ebene
  tiefer), der Rest war schon vorher falsch: die Ideensammlung verlinkte
  Quellcode relativ zum Repo-Wurzelverzeichnis statt zu docs/.
- 12 Dateien ausserhalb von docs/ verwiesen in Kommentaren auf die Plaene
  (csproj, props, setup.json, sechs Quelldateien) - alle auf archiv/ umgebogen.
- Verweise auf Dateien, die der Fruehjahrsputz geloescht hat (Ui/,
  Program.cs, WindowMenuBar), zu Klartext entschaerft statt tote Links zu lassen.
- Gegenprobe: 85 Links geprueft, 0 kaputt. Build gruen, 476 Tests gruen.

PROJEKTSTAND.md entdoppelt: Abschnitt "Offen" verweist jetzt auf die Roadmap.
Arbeitsteilung ist damit klar - Projektstand sagt was IST, Roadmap was KOMMT.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 18:56:50 +02:00

50 lines
2.6 KiB
Markdown

# Lokaler NuGet-Feed (`lib/nuget`)
Hier liegen Pakete aus unseren **eigenen Schwester-Projekten**, die PolyTrader benutzt.
Aktuell genau eines: `Deploymentcenter.Client` (Lizenz, Watchdog, Fehler-Reporting, Updates).
> Bis zum 22.08.2026 lag hier zusätzlich `LicenseLabrador.Client`. Das Paket ist mit dem
> Ausbau der WinForms-Anwendung entfernt worden — Lizenzprüfung und Heartbeat laufen
> vollständig über das Deploymentcenter (siehe
> `docs/archiv/umsetzungsplaene/UMSETZUNGSPLAN-Deploymentcenter-Integration.md`, Schnitt D-6).
> Der letzte Stand mit LicenseLabrador liegt im Git-Tag `winforms-final`.
## Warum ein Paket und keine Projektreferenz?
Eine `ProjectReference` direkt nach `..\..\Deploymentcenter\client-dotnet\...` würde die
Repos hart koppeln: PolyTrader baute dann nur noch auf einer Maschine, auf der das
Schwester-Repo zufällig daneben liegt — ein Build-Server oder das Zielland-System hätte
den Build nicht mehr übersetzen können.
**Die Projekte bleiben eigenständig.** Deshalb wird das SDK als versioniertes
NuGet-Paket in dieses Verzeichnis gelegt und mitversioniert. Ein reiner DLL-Verweis
wäre nicht ausreichend: das Paket trägt die transitiven Abhängigkeiten in seinen
Metadaten, eine nackte DLL nicht. Zusätzlich liefert es unter `build/` die
`Deploymentcenter.BuildInfo.targets` mit, die beim Bauen die Klasse
`PolyTrader.Core.BuildInfo` (Version, Git-Commit, Build-Datum) erzeugt.
`NuGet.Config` bindet dieses Verzeichnis als Quelle `local` ein. Das
`packageSourceMapping` löst `Deploymentcenter.*` **ausschließlich** lokal auf, damit
ein gleichnamiges Paket auf nuget.org unsere Version nicht verdrängen kann
(Dependency Confusion).
## Neue SDK-Version übernehmen
1. Im Deploymentcenter-Repo die `<Version>` in
`client-dotnet/Deploymentcenter.Client/Deploymentcenter.Client.csproj` **anheben**
(gleiche Version zweimal zu packen führt zu stillen Cache-Treffern — NuGet
unterscheidet Pakete nur an der Versionsnummer).
2. Paket bauen:
```
dotnet pack J:\Softwareprojekte\Deploymentcenter\client-dotnet\Deploymentcenter.Client\Deploymentcenter.Client.csproj -c Release -o J:\Softwareprojekte\PolytraderSharp\PolyTraderSharp\lib\nuget
```
3. In `src/PolyTrader.Core/PolyTrader.Core.csproj` die `Version` der `PackageReference`
auf die neue Nummer setzen.
4. Die alte `.nupkg` löschen, damit klar bleibt, welche Fassung gilt.
5. `dotnet build` + `dotnet test` — und die neue `.nupkg` mit committen.
**Wichtig:** Die Änderung am SDK gehört zuerst ins Deploymentcenter-Repo und wird dort
committet. Dieses Verzeichnis ist nur die Auslieferung, nicht der Arbeitsort.