bug-report.md ruft python3 tools/bugreport.py auf – unter Windows ist python3 der Store-Alias #166

Closed
opened 2026-10-01 20:12:51 +00:00 by torben · 3 comments
Owner

Nebenbefund aus #153 (2026-10-01). Freigabebedingung für 8.0.0 seit 2026-10-02 (Betreiber, #140). Erledigt am 2026-10-02 in 5d93723 (8.0.0-beta.22), dazu c65d559 (CI). Umgesetzt mit einem Starter nach dem Muster von D15.

Befund

instructions/bug-report.md und INSTALL.md § Troubleshooting starteten den Sammler mit python3 tools/bugreport.py …. Auf dem Windows-Zielsystem gilt laut #140 T4:

  • Unter Git Bash (Claude Code) löst python auf C:\Python314 auf, python3 aber auf den Store-Alias unter WindowsApps.
  • Unter pwsh (Copilot) gibt es dieselben Store-Aliase python.exe/python3.exe.

Damit startete der Aufruf unter Windows nicht den Sammler, sondern den Store-Alias. Ausgerechnet der Sammler soll aber laufen, wenn sonst nichts läuft (D22). Was der Alias dabei genau tut (Store öffnen oder Exit 9009), ist nicht nachgestellt; der Starter startet ihn gar nicht erst.

Derselbe Aufruf stand im CI-Schritt „The bug-report collector works in the distribution“ und in der Stufe-2-Zeile, die bugreport.py selbst druckt. Der Shell-Test aus #153 fing ihn nicht, weil python3 nicht auf seiner Liste stand.

Entscheidung (Betreiber, 2026-10-02)

Ein Starter nach dem Muster von D15: tools/bugreport (sh, für Linux, macOS und Git Bash) und tools/bugreport.ps1 (PowerShell). Der Befehlsstring tools/bugreport ist überall gleich; pwsh löst ihn zuerst auf die .ps1 auf (T1).

Verworfen:

  • Je Plattform ein eigener Aufruf: Das hängt davon ab, dass der Agent die richtige Variante wählt. Genau dort ist der Weg-D-Lauf entgleist.
  • Python aus .wikitool-tools.json: Die Datei fehlt gerade dann, wenn der Preflight gescheitert ist, also im häufigsten Fall für einen Bericht.

Was gebaut wurde

  • Suche wie der Preflight: unter Windows python, py -3, python3, sonst python3, python, jeweils alle Treffer auf PATH in dessen Reihenfolge. Unter PowerShell auf Windows kommt der PATH aus der Registry dazu. Zuletzt die Python der venv (bin/ oder Scripts\).
  • Nichts unter WindowsApps wird gestartet. Jeder andere Kandidat wird erst geprüft (-c, Exit 0 ab 3.8, Exit 3 für „zu alt“). Der erste, der besteht, startet tools/bugreport.py mit allen Argumenten; dessen Exit-Code geht durch. Eine zu alte oder nicht startbare Python, etwa eine venv-python.exe unter ASR (T2), fällt nur heraus.
  • Ohne passende Python: Exit 1, nie 42, mit einer Meldung, die die Suche nennt, eine zu alte Python mit Pfad aufführt und als Ausweg den direkten Aufruf <full path to python> tools/bugreport.py nennt.
  • Keine Vorbedingungen: weder Preflight noch .wikitool-tools.json noch venv. Die .ps1 hat kein #Requires -Version 7 und bleibt bei dem, was auch Windows PowerShell 5.1 versteht.
  • Aufrufstellen: bug-report.md (mit der Anweisung, Python nicht selbst aufzurufen, und dem Weg bei Exit 1), INSTALL.md § Troubleshooting, der Usage-Text und die Stufe-2-Zeile von bugreport.py, tools/README.md und der CI-Schritt in der Distribution.
  • Tests: test_bugreport_launcher.py, 13 Fälle je Shell (bash, sh, pwsh). test_instructions_shell.py verbietet nackte python3/python/py-Aufrufe in Befehlsblöcken ausgelieferter Instruktionen; gegen die alte Fassung von bug-report.md hätte das Muster beide Zeilen gefangen. test_portability.py prüft LF für tools/bugreport.

Akzeptanzkriterien

  • Der Aufruf des Sammlers in einer ausgelieferten Datei ist tools/bugreport und startet unter Linux, Git Bash und pwsh 7 einen echten Python-Interpreter (mindestens 3.8) oder sagt, warum nicht. Belegt durch die Tests gegen bash, sh und pwsh und durch den CI-Schritt in der Distribution. macOS ist nicht eigens getestet; dort läuft derselbe sh-Starter. Dass wikitool oder der Preflight gelaufen sind, wird nicht vorausgesetzt (test_needs_nothing_the_preflight_sets_up).
  • Ein Store-Alias wird nie gestartet (test_a_store_alias_is_never_started, Linux- und Windows-Reihenfolge, Alias mit Markierungsdatei; ebenso im Fall ohne Python).
  • Eine zu alte Python wird übersprungen, und ohne passende Python endet der Starter mit Exit 1 und einer Meldung, die Ursache und Abhilfe nennt (test_a_python_too_old_is_passed_over, test_without_a_python_it_says_why_and_exits_1).
  • Der Shell-Test verbietet in den Befehlsblöcken ausgelieferter Instruktionen einen nackten Interpreter-Aufruf.
  • bug-report.md, INSTALL.md § Troubleshooting, die Stufe-2-Zeile von bugreport.py, tools/README.md und der CI-Schritt in der Distribution nutzen den Starter.
  • docs verify, instructions verify und pytest grün (lokal 2043 bestanden, 3 übersprungen). CI auf 5d93723: Lauf 494 grün, darunter „The bug-report collector works in the distribution“ über tools/bugreport; Release-Lauf 495 grün mit übersprungenem Publish (-beta). Der pwsh-Job nahm die neuen Tests zunächst nicht mit, weil er eine feste Dateiliste ausführt; c65d559 ergänzt sie, CI darauf: Lauf 496 grün, der pwsh-Job mit test_bugreport_launcher.py (270 bestanden, keine übersprungen).

Nicht auf dem Windows-Zielsystem geprüft: Das gehört zum Nachlauf von #140.

Version

patch, im 8.0.0-Kandidaten (8.0.0-beta.22).

Nebenbefund aus #153 (2026-10-01). Freigabebedingung für 8.0.0 seit 2026-10-02 (Betreiber, #140). **Erledigt** am 2026-10-02 in `5d93723` (8.0.0-beta.22), dazu `c65d559` (CI). Umgesetzt mit einem Starter nach dem Muster von D15. ## Befund `instructions/bug-report.md` und `INSTALL.md` § Troubleshooting starteten den Sammler mit `python3 tools/bugreport.py …`. Auf dem Windows-Zielsystem gilt laut #140 T4: - Unter Git Bash (Claude Code) löst `python` auf `C:\Python314` auf, `python3` aber auf den Store-Alias unter `WindowsApps`. - Unter pwsh (Copilot) gibt es dieselben Store-Aliase `python.exe`/`python3.exe`. Damit startete der Aufruf unter Windows nicht den Sammler, sondern den Store-Alias. Ausgerechnet der Sammler soll aber laufen, wenn sonst nichts läuft (D22). Was der Alias dabei genau tut (Store öffnen oder Exit 9009), ist nicht nachgestellt; der Starter startet ihn gar nicht erst. Derselbe Aufruf stand im CI-Schritt „The bug-report collector works in the distribution“ und in der Stufe-2-Zeile, die `bugreport.py` selbst druckt. Der Shell-Test aus #153 fing ihn nicht, weil `python3` nicht auf seiner Liste stand. ## Entscheidung (Betreiber, 2026-10-02) Ein Starter nach dem Muster von D15: `tools/bugreport` (sh, für Linux, macOS und Git Bash) und `tools/bugreport.ps1` (PowerShell). Der Befehlsstring `tools/bugreport` ist überall gleich; pwsh löst ihn zuerst auf die `.ps1` auf (T1). Verworfen: - **Je Plattform ein eigener Aufruf:** Das hängt davon ab, dass der Agent die richtige Variante wählt. Genau dort ist der Weg-D-Lauf entgleist. - **Python aus `.wikitool-tools.json`:** Die Datei fehlt gerade dann, wenn der Preflight gescheitert ist, also im häufigsten Fall für einen Bericht. ## Was gebaut wurde - **Suche wie der Preflight:** unter Windows `python`, `py -3`, `python3`, sonst `python3`, `python`, jeweils alle Treffer auf `PATH` in dessen Reihenfolge. Unter PowerShell auf Windows kommt der `PATH` aus der Registry dazu. Zuletzt die Python der venv (`bin/` oder `Scripts\`). - **Nichts unter `WindowsApps` wird gestartet.** Jeder andere Kandidat wird erst geprüft (`-c`, Exit 0 ab 3.8, Exit 3 für „zu alt“). Der erste, der besteht, startet `tools/bugreport.py` mit allen Argumenten; dessen Exit-Code geht durch. Eine zu alte oder nicht startbare Python, etwa eine venv-`python.exe` unter ASR (T2), fällt nur heraus. - **Ohne passende Python:** Exit 1, nie 42, mit einer Meldung, die die Suche nennt, eine zu alte Python mit Pfad aufführt und als Ausweg den direkten Aufruf `<full path to python> tools/bugreport.py` nennt. - **Keine Vorbedingungen:** weder Preflight noch `.wikitool-tools.json` noch venv. Die `.ps1` hat kein `#Requires -Version 7` und bleibt bei dem, was auch Windows PowerShell 5.1 versteht. - **Aufrufstellen:** `bug-report.md` (mit der Anweisung, Python nicht selbst aufzurufen, und dem Weg bei Exit 1), `INSTALL.md` § Troubleshooting, der Usage-Text und die Stufe-2-Zeile von `bugreport.py`, `tools/README.md` und der CI-Schritt in der Distribution. - **Tests:** `test_bugreport_launcher.py`, 13 Fälle je Shell (bash, sh, pwsh). `test_instructions_shell.py` verbietet nackte `python3`/`python`/`py`-Aufrufe in Befehlsblöcken ausgelieferter Instruktionen; gegen die alte Fassung von `bug-report.md` hätte das Muster beide Zeilen gefangen. `test_portability.py` prüft LF für `tools/bugreport`. ## Akzeptanzkriterien - [x] Der Aufruf des Sammlers in einer ausgelieferten Datei ist `tools/bugreport` und startet unter Linux, Git Bash und pwsh 7 einen echten Python-Interpreter (mindestens 3.8) oder sagt, warum nicht. Belegt durch die Tests gegen bash, sh und pwsh und durch den CI-Schritt in der Distribution. macOS ist nicht eigens getestet; dort läuft derselbe sh-Starter. Dass `wikitool` oder der Preflight gelaufen sind, wird nicht vorausgesetzt (`test_needs_nothing_the_preflight_sets_up`). - [x] Ein Store-Alias wird nie gestartet (`test_a_store_alias_is_never_started`, Linux- und Windows-Reihenfolge, Alias mit Markierungsdatei; ebenso im Fall ohne Python). - [x] Eine zu alte Python wird übersprungen, und ohne passende Python endet der Starter mit Exit 1 und einer Meldung, die Ursache und Abhilfe nennt (`test_a_python_too_old_is_passed_over`, `test_without_a_python_it_says_why_and_exits_1`). - [x] Der Shell-Test verbietet in den Befehlsblöcken ausgelieferter Instruktionen einen nackten Interpreter-Aufruf. - [x] `bug-report.md`, `INSTALL.md` § Troubleshooting, die Stufe-2-Zeile von `bugreport.py`, `tools/README.md` und der CI-Schritt in der Distribution nutzen den Starter. - [x] `docs verify`, `instructions verify` und `pytest` grün (lokal 2043 bestanden, 3 übersprungen). CI auf `5d93723`: Lauf 494 grün, darunter „The bug-report collector works in the distribution“ über `tools/bugreport`; Release-Lauf 495 grün mit übersprungenem Publish (`-beta`). Der pwsh-Job nahm die neuen Tests zunächst nicht mit, weil er eine feste Dateiliste ausführt; `c65d559` ergänzt sie, CI darauf: Lauf 496 grün, der pwsh-Job mit `test_bugreport_launcher.py` (270 bestanden, keine übersprungen). Nicht auf dem Windows-Zielsystem geprüft: Das gehört zum Nachlauf von #140. ## Version patch, im 8.0.0-Kandidaten (`8.0.0-beta.22`).
torben added the prio/plannedsize/Sarea/distributionkind/defect labels 2026-10-01 20:12:51 +00:00
Author
Owner

Changelog (2026-10-02): Der Betreiber hat entschieden: #166 wird Freigabebedingung für 8.0.0, umgesetzt als Starter tools/bugreport / tools/bugreport.ps1 nach dem Muster von D15. Die offenen Wege sind durch diese Entscheidung mit Begründung ersetzt. Neu sind der Entwurf und prüfbare Kriterien. Als weitere Aufrufstellen sind der CI-Schritt und die Stufe-2-Zeile von bugreport.py dazugekommen.

**Changelog (2026-10-02):** Der Betreiber hat entschieden: #166 wird Freigabebedingung für 8.0.0, umgesetzt als Starter `tools/bugreport` / `tools/bugreport.ps1` nach dem Muster von D15. Die offenen Wege sind durch diese Entscheidung mit Begründung ersetzt. Neu sind der Entwurf und prüfbare Kriterien. Als weitere Aufrufstellen sind der CI-Schritt und die Stufe-2-Zeile von `bugreport.py` dazugekommen.
Author
Owner

Changelog (2026-10-02): Umgesetzt in 5d93723 (beta.22) und c65d559. Der Entwurf ist zu „Was gebaut wurde“ geworden, alle Kriterien sind mit Beleg abgehakt (CI 494/495/496 grün). Der Nachtrag c65d559 war nötig, weil der pwsh-Job eine feste Testliste hat und die neuen Tests zunächst nicht mitnahm. Geschlossen.

**Changelog (2026-10-02):** Umgesetzt in `5d93723` (beta.22) und `c65d559`. Der Entwurf ist zu „Was gebaut wurde“ geworden, alle Kriterien sind mit Beleg abgehakt (CI 494/495/496 grün). Der Nachtrag `c65d559` war nötig, weil der pwsh-Job eine feste Testliste hat und die neuen Tests zunächst nicht mitnahm. Geschlossen.
Author
Owner

Nachtrag (2026-10-02): Der Betreiber hat tools/bugreport auf dem Windows-Zielsystem geprüft, unter Copilot CLI (pwsh) und unter Claude Code (Git Bash). Der Sammler läuft in beiden. Damit ist der #166-Punkt im Nachlauf von #140 vorgezogen erledigt.

**Nachtrag (2026-10-02):** Der Betreiber hat `tools/bugreport` auf dem Windows-Zielsystem geprüft, unter Copilot CLI (pwsh) und unter Claude Code (Git Bash). Der Sammler läuft in beiden. Damit ist der #166-Punkt im Nachlauf von #140 vorgezogen erledigt.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#166