Skip to content

Commit 0437536

Browse files
author
Lukas Geiger
committed
docs: add PythonBox platform plan
1 parent c54245b commit 0437536

3 files changed

Lines changed: 109 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.1.0/).
88
### Hinzugefügt / Added
99
- App- und Fenstericon über `PythonBox.ico`.
1010
- `build_exe.bat` für lokale PyInstaller-Builds.
11+
- `PORTIERUNGSPLAN.md` mit Desktop-only-Strategie für Windows, macOS und Linux.
1112
- Regressionstests für Qt6-Editor-APIs, F5-Ausführung, externe Python-Kommandos und Offscreen-Fensteraufbau.
1213
- GitHub Actions Workflow für Windows-Regressionstests auf Python 3.10 bis 3.12.
1314

PORTIERUNGSPLAN.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Portierungsplan - PythonBox v8
2+
3+
Stand: 2026-05-28
4+
5+
## Bedingungsprüfung
6+
7+
Ein zentraler Portierungsplan war nicht vorhanden. Es gab nur Hinweise in README, AUFGABEN und der Windows-Store-Pipeline. Daher wurde Pfad B ausgeführt: Plan neu erstellen und Aufgaben ergänzen.
8+
9+
## Kurzentscheidung
10+
11+
PythonBox bleibt eine Desktop-App. Sinnvoll sind Windows als Hauptplattform sowie macOS und Linux als Source-Smoke-Ziele aus derselben PySide6-Codebasis. Android, iOS und Web/PWA sind keine aktuellen Ziele, weil die wichtigsten Usecases lokale Dateien, lokale Python-Interpreter, Git, Linter, Debugger und externe Editor-Brücken brauchen.
12+
13+
Ein Companion ist ebenfalls kein sinnvoller nächster Schritt. Der Nutzen der App liegt im direkten Bearbeiten und Ausführen lokaler Python-Dateien; ein mobiler oder browserbasierter Begleiter würde nur einen kleinen Ausschnitt abdecken und die eigentliche IDE-Erfahrung nicht verbessern.
14+
15+
## Features der besten ausgebauten Version
16+
17+
- Mehrdatei-Editor mit Tabs, Python-Syntax-Highlighting, Suche, Ersetzen, Gehe-zu-Zeile, Kommentieren, Code Folding, Minimap und Bracket Matching.
18+
- Python-Ausführung über den aktuell laufenden Interpreter.
19+
- PDB-Debugging mit Breakpoints, Step In, Step Over und Step Into.
20+
- Linter-Integration für Flake8, Pylint und AST-Syntaxprüfung.
21+
- Git-Status, Diff-Ansicht und Zeilenmarkierung für geänderte Dateien.
22+
- Snippet-/Bibliotheksverwaltung für wiederkehrende Python-Bausteine.
23+
- Optionale Übergabe an VS Code oder PyCharm.
24+
- Lokaler Windows-Start und Windows-EXE-Build über PyInstaller.
25+
26+
## Usecase-Settings
27+
28+
### Setting 1: Desktop-Entwicklung und Lernen
29+
30+
Nutzergruppe: Einzelne Entwicklerinnen, Entwickler, Lernende und LLM-unterstützte Arbeitsläufe, die Python-Dateien lokal bearbeiten, prüfen und ausführen.
31+
32+
Usecases:
33+
34+
- Eine Python-Datei schnell öffnen, bearbeiten und ausführen, ohne eine große IDE zu starten.
35+
- Kleine Skripte debuggen und Breakpoints direkt im Editor setzen.
36+
- Linter- und Syntaxfehler während der Bearbeitung erkennen.
37+
- Änderungen in Git-Arbeitsbäumen sichtbar prüfen.
38+
- Snippets wiederverwenden und kleine Werkzeuge aus der IDE heraus starten.
39+
- Bei Bedarf zu VS Code oder PyCharm wechseln, ohne den aktuellen Arbeitskontext zu verlieren.
40+
41+
Dieses Setting ist für Windows, macOS und Linux dasselbe. Die passende Strategie ist daher eine eigenständige Desktop-App pro Desktop-Plattform, aber aus derselben Codebasis.
42+
43+
### Nicht eigenes Setting: Mobile Kurzansicht
44+
45+
Eine mobile Kurzansicht wäre ein anderes Setting, erfüllt aber nur einen Randnutzen. Code lesen, Debugger bedienen, lokale Python-Interpreter nutzen und Git-Diffs prüfen sind auf Smartphone/Tablet deutlich schwächer als am Desktop. Für diesen Randnutzen reicht GitHub, ein mobiler Editor oder eine Notiz-App; PythonBox braucht dafür keine eigene Companion-App.
46+
47+
## Plattformentscheidungen
48+
49+
| Plattform | Entscheidung | Begründung |
50+
|---|---|---|
51+
| Windows | Primärplattform | Aktuelle Entwicklung, PyInstaller-EXE, Batch-Start und GitHub-Release sind bereits darauf ausgerichtet. |
52+
| macOS | Source-Smoke P1 | PySide6 und die Kernlogik sind grundsätzlich portabel; externe Editorpfade, Terminalstart und Dateidialoge müssen geprüft werden. |
53+
| Linux | Source-Smoke P1 | PySide6 und Python-Ausführung sind geeignet; `xdg-open`, Terminalstart, Git-Integration und Linter-Erkennung brauchen einen sauberen Smoke-Test. |
54+
| Web/PWA | Nicht-Ziel | Browser kann lokale Interpreter, PDB, Git und externe Editor-Brücken nicht gleichwertig bedienen. |
55+
| Android | Nicht-Ziel | Der Kernnutzen ist Desktop-Entwicklung; mobiles Debugging lokaler Python-Dateien ist kein realistischer Hauptusecase. |
56+
| iOS | Nicht-Ziel | Gleiche Einschränkung wie Android, zusätzlich eingeschränkter Dateisystem- und Prozesszugriff. |
57+
| Windows Store | Nicht aktiv | Der Store bleibt wegen Nischenposition und VS-Code-Konkurrenz kein aktueller Kanal. GitHub bleibt der kanonische Release-Ort. |
58+
59+
## Austausch und Datenhaltung
60+
61+
Direkte Synchronisierung ist nicht erforderlich. Nutzer wechseln Plattformen über normale Projektdateien und Git. Snippets und Einstellungen sollten langfristig optional als einfache Datei exportierbar werden, aber das ist ein Desktop-Komfortthema und kein Companion-Sync.
62+
63+
Empfohlene Austauschwege:
64+
65+
- Quellcode: Git, ZIP oder normale Projektordner.
66+
- Einstellungen: später optional `pythonbox-settings-v1.json`.
67+
- Snippets: später optional `pythonbox-snippets-v1.json`.
68+
69+
## Umsetzungsplan
70+
71+
### P0 - Dokumentierte Plattformgrenze
72+
73+
- `PORTIERUNGSPLAN.md` als verbindliche Entscheidung pflegen.
74+
- README und Changelog mit Desktop-only-Strategie synchron halten.
75+
- Alte Aufgabenclaims zu CLI/REST bei Gelegenheit gegen den tatsächlichen Code prüfen, weil die aktuelle Codebasis vor allem eine GUI-App ist.
76+
77+
### P1 - macOS/Linux-Smokes
78+
79+
- Source-Start auf macOS testen: `python PythonBox_v8.py`.
80+
- Source-Start auf Linux testen: `python PythonBox_v8.py`.
81+
- Externe Prozessstarts prüfen: Ausführen, PDB, Linter, Git-Diff und externe Editor-Brücken.
82+
- Pfad- und Terminalunterschiede dokumentieren, ohne neue Plattformordner anzulegen.
83+
84+
### P2 - Desktop-Portabilität verbessern
85+
86+
- Snippet- und Einstellungsdaten optional als JSON exportieren und importieren.
87+
- Linter-Erkennung pro Plattform robuster dokumentieren.
88+
- README um macOS-/Linux-Startnotizen ergänzen, sobald die Smokes bestätigt sind.
89+
90+
### P3 - Distribution
91+
92+
- Windows-GitHub-Release als Hauptartefakt beibehalten.
93+
- macOS/Linux erst nach bestandenen Smokes als direkte GitHub-Artefakte prüfen.
94+
- Windows Store nur neu bewerten, wenn es konkrete Nachfrage nach signierter Ein-Klick-Installation gibt.
95+
96+
## Nicht-Ziele
97+
98+
- Keine Android-App.
99+
- Keine iOS-App.
100+
- Keine Web/PWA-Version.
101+
- Keine Companion-App.
102+
- Keine direkte Cloud-Synchronisierung.
103+
- Kein Store-Onboarding ohne neue Nachfrage.

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ PythonBox is a lightweight Python IDE with a dark theme, integrated debugging, c
3434
- `build_exe.bat` erstellt eine kompakte Windows-EXE mit PyInstaller.
3535
- `START_PythonBox_v8.bat` startet die Anwendung direkt aus dem Checkout.
3636

37+
### Plattformstrategie
38+
- Windows bleibt die primäre Desktop-Plattform.
39+
- macOS und Linux sind sinnvolle Source-Smoke-Ziele aus derselben PySide6-Codebasis.
40+
- Android, iOS und Web/PWA sind keine aktuellen Ziele, weil PythonBox lokale Dateien, lokale Interpreter, Debugger, Linter und Git direkt nutzt.
41+
3742
## Screenshot
3843

3944
![Hauptfenster / Main window](README/screenshots/main.png)

0 commit comments

Comments
 (0)