mindnet/docs/dev_workflow.md
Lars 9e7104e362
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 6s
Neue Dokumentationsdateien
2025-12-07 15:49:44 +01:00

143 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Mindnet v2.2 Entwickler-Workflow
**Datei:** `DEV_WORKFLOW.md`
**Stand:** 2025-12-07
Dieses Handbuch beschreibt den Entwicklungszyklus zwischen **Windows PC** (IDE), **Raspberry Pi** (Gitea) und **Beelink** (Runtime/Server).
---
## 1. Die Architektur
* **Windows 11 (VS Code):** Hier schreibst du Code. **Nie** direkt auf `main` arbeiten!
* **Raspberry Pi (Gitea):** Der Tresor. Speichert den Code und verwaltet Versionen.
* **Beelink (Runtime):** Hier läuft die Software. Wir trennen strikt:
* **PROD (`~/mindnet`):** Läuft stabil auf `main`. **Port 8001**.
* **DEV (`~/mindnet_dev`):** Deine Spielwiese für Branches. **Port 8002**.
---
## 2. Der Zyklus: Von der Idee zum Release
### Phase 1: Entwicklung (Windows / VS Code)
Hier erstellst du die neue Funktion in einer sicheren Umgebung.
1. **Sicherstellen, dass Git bereit ist:**
* Öffne VS Code.
* Unten links in der blauen Leiste sollte der aktuelle Branch stehen (z.B. `main`).
2. **Branch erstellen (WICHTIG):**
* Klicke unten links auf den Branch-Namen (z.B. `main`).
* Wähle im Menü oben `+ Create new branch...`.
* Gib den Namen ein: `feature/was-ich-tue` (z.B. `feature/wp04b-explanation`).
* Drücke **Enter**.
3. **Sicherheits-Check:**
* Schau unten links: Steht dort jetzt `feature/wp04b-explanation`?
* **Nur wenn dort dein Feature-Branch steht, darfst du Code ändern!** Alles, was du jetzt speicherst, landet in diesem Branch.
4. **Coden:**
* Nimm deine Änderungen vor.
5. **Sichern & Hochladen:**
* Klicke links auf das **Source Control** Icon (Gabel-Symbol).
* Gib eine Nachricht ein: "feat: Add explanation layer logic".
* Klicke auf **Commit**.
* Klicke auf **Publish Branch** (oder "Sync Changes"), um den Branch zum Raspberry Pi (Gitea) zu senden.
---
### Phase 2: Testen (Beelink / `mindnet_dev`)
Hier prüfst du, ob dein neuer Code auf dem echten Server läuft, ohne die Produktion zu stören.
1. **Einloggen:**
`ssh user@<BEELINK-IP>`
2. **In die Werkstatt gehen:**
`cd /home/llmadmin/mindnet_dev`
3. **Code holen:**
```bash
git fetch
git checkout feature/wp04b-explanation
git pull
```
4. **Umgebung aktivieren (Venv):**
Damit Python die installierten Bibliotheken findet, musst du das Virtual Environment aktivieren:
```bash
source .venv/bin/activate
```
*(Dein Prompt sollte jetzt `(.venv) user@...` zeigen)*
5. **Abhängigkeiten prüfen:**
*(Nur nötig, wenn du neue Libraries in `requirements.txt` eingetragen hast)*
```bash
pip install -r requirements.txt
```
6. **Test-Server starten:**
**WICHTIG:** Nutze Port **8002** und das Dev-Prefix!
Stelle sicher, dass in `~/mindnet_dev/.env` steht: `COLLECTION_PREFIX="mindnet_dev"`.
```bash
uvicorn app.main:app --host 0.0.0.0 --port 8002
```
7. **Testen:**
Prüfe deine Änderung (z.B. Browser auf `http://<BEELINK-IP>:8002/docs` oder Smoke-Test Skript).
---
### Phase 3: Release (Gitea / Raspberry Pi)
Wenn der Test auf Port 8002 erfolgreich war:
1. Öffne Gitea im Browser.
2. Du solltest einen Hinweis sehen "feature/... had recent pushes".
3. Erstelle einen **Pull Request** (Dein Branch -> `main`).
4. **Merge** den Pull Request.
---
### Phase 4: Deployment (Beelink / `mindnet`)
Jetzt bringen wir die Änderung in das Live-System (Port 8001).
1. **Deploy-Agent (Automatisch):**
Wenn dein `deploy.yml` aktiv ist, passiert das jetzt von selbst!
2. **Manuell (Falls nötig):**
```bash
cd /home/llmadmin/mindnet
git pull origin main
sudo systemctl restart mindnet-api
```
---
## 3. Cheat Sheet: Die wichtigsten Befehle
| Wo? | Befehl | Was tut es? |
| :--- | :--- | :--- |
| **VS Code** | `Klick auf Branch-Namen` | Branch erstellen oder wechseln. |
| **VS Code** | `Sync Changes` | Lädt Code zu Gitea hoch. |
| **Beelink** | `cd ~/mindnet_dev` | Gehe in den Test-Ordner. |
| **Beelink** | `source .venv/bin/activate` | **Aktiviert Python-Umgebung.** |
| **Beelink** | `git fetch` | "Gibt es neue Branches auf Gitea?" |
| **Beelink** | `git checkout <name>` | Wechsle auf einen anderen Branch. |
| **Beelink** | `git pull` | Hol den neuesten Stand des aktuellen Branches. |
| **Beelink** | `uvicorn ... --port 8002` | Startet Test-Server (Dev). |
---
## 4. Sicherheitsregeln
1. **Niemals** in `~/mindnet` (Prod-Ordner) experimentieren oder `git checkout` machen. Dieser Ordner bleibt immer auf `main`.
2. **Niemals** beide Umgebungen auf denselben `COLLECTION_PREFIX` zeigen lassen.
* Prod `.env`: `COLLECTION_PREFIX="mindnet"`
* Dev `.env`: `COLLECTION_PREFIX="mindnet_dev"`
3. **Port-Disziplin:**
* **PROD:** Port 8001
* **DEV:** Port 8002