Skip to content

fix(ci): Python 3.10 tomllib fallback and version-agnostic action pin tests - #8

Open
lukisch wants to merge 2 commits into
mainfrom
claude/eloquent-curie-mn6gsr
Open

lukisch wants to merge 2 commits into
mainfrom
claude/eloquent-curie-mn6gsr

Conversation

@lukisch

@lukisch lukisch commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Zusammenfassung

Nicht enthalten

Validierung

  • pytest tests/test_metadata.py tests/test_security_license_contract.py: 34 passed (Python 3.11, lokal)
  • ruff check tests: clean
  • Python 3.10 nicht lokal ausgeführt; wird von der CI-Matrix bestätigt.

Generated by Claude Code

…tion pin tests

The CI matrix includes Python 3.10, where tomllib does not exist; metadata
tests failed at collection. Fall back to tomli (installed only for <3.11) and
accept any major version of actions/checkout and actions/setup-python so
Dependabot bumps no longer break test_ci_workflow contracts.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013KseHE2souc6cbzfxQ41mz
@github-actions

Copy link
Copy Markdown

Welcome to DokuZen! Thank you for submitting a pull request. We will review your contribution shortly.

lukisch commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

CI-Diagnose: Die roten smoke-Jobs (ubuntu 3.10/3.11/3.12, Head 0cec4f3) stammen nicht aus diesem Diff. Im Log laufen alle 28 Tests aus test_pdf_collection.py/test_collection_publication.py durch, danach folgt QObject: shared QObject was deleted directly und ein Segfault (Exit 139). Das ist der Qt-Lebensdauerfehler, den Draft #3 behebt; er tritt auf main genauso auf. Der Job bricht vor dem Metadaten-Schritt ab, daher ist mein tomllib-Fix für 3.10 in CI noch unbestätigt.

Ich habe den Test-Fix aus #3 (Commit 63996a4, nur tests/test_pdf_collection.py) per cherry-pick in diesen Branch übernommen (e913b6f). Er wird beim Merge von #3 zu einem No-op. Lokal konnte ich die Kollektionstests nicht ausführen (fitz fehlt in meiner Umgebung); test_metadata.py und test_security_license_contract.py laufen grün, ruff ist sauber. Ergebnis der CI-Matrix auf e913b6f beobachte ich.


Generated by Claude Code

@lukisch lukisch left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zweitmodell-Review: freigabefähig.

  • Diff vollständig gelesen. tomllib wird jetzt mit tomli-Fallback für Python 3.10 importiert, und tomli wird im Smoke-Workflow nur für python_version < '3.11' installiert. Das ist korrekt und minimal.
  • Die Workflow-Integritätstests prüfen actions/checkout@v\d+ und actions/setup-python@v\d+ statt fester Versionen. So brechen sie nicht mehr bei Dependabot-Bumps (#4, #6).
  • Die Qt-Fixtures (collection_app und collection_dialog_factory) räumen Dialoge zentral auf, und QApplication wird einmalig pro Session angelegt. Das ist sauberer als die vorherigen Inline-Instanzen.
  • CI: alle 9 Smoke-Jobs (3 OS × Python 3.10/3.11/3.12) grün.
  • Kleiner Hinweis, nicht blockierend: tomli steht nur im CI-Subset. Falls Tests lokal unter 3.10 laufen sollen, gehört es in die Dev-Extras. Nicht gemergt.

Generated by Claude Code

lukisch commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

Zweitprüfung (Cloud-Bot), Head e913b6f: freigabefähig, kein Blocker.

Gelesen: der komplette Diff (4 Dateien). CI auf diesem Head: alle 9 smoke-Jobs grün (ubuntu/macOS/Windows × 3.10–3.12), mergeable_state: clean. Das bestätigt sowohl den tomli-Fallback für Python 3.10 als auch die Qt-Lebensdauer-Fixtures aus dem cherry-pick von #3 (der Segfault ist weg).

Formale Approval ist mit diesem Konto nicht möglich (Autor = Account). Merge bleibt Maintainer-Entscheidung.


Generated by Claude Code

lukisch commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

Zweitmodell-Review (Cloud-Bot): Diff geprüft: tomllib→tomli-Fallback nur für Python <3.11, versionsagnostische Action-Pin-Tests, Qt-Dialog-Lifetime-Fixture. Alle 9 CI-Jobs (3 OS × 3.10/3.11/3.12) grün, mergeable_state clean. Freigabe aus Reviewsicht; formales Approve nicht möglich (eigener PR-Autor-Account), Merge bleibt beim Owner.


Generated by Claude Code

@lukisch lukisch left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zweitmodell-Review: freigabefähig. Der tomllib/tomli-Fallback für Python 3.10 ist sauber und mit Marker python_version < '3.11' abgesichert. Die versionsagnostischen Action-Pin-Tests sind die Voraussetzung, um die Dependabot-PRs #4–#7 gefahrlos zu mergen. Alle 9 Smoke-Jobs sind grün. (Formale Approval nicht möglich, da dasselbe Konto Autor ist.)


Generated by Claude Code

@lukisch lukisch left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zweitmodell-Review: Diff geprüft (tomli-Fallback für Py3.10, versionsagnostische Action-Pin-Tests, Qt-Fixture mit sauberem Teardown). Alle 9 Smoke-Jobs (3 OS × 3 Python) grün. Keine Einwände – aus Reviewersicht freigabefähig.


Generated by Claude Code

@lukisch lukisch left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zweitmodell-Review (Freigabe empfohlen): Änderung ist korrekt und minimal. tomli-Fallback für Python 3.10 ist in CI-Installation und beiden Testdateien konsistent; die versionsagnostischen Action-Pin-Asserts (@v\d+) entkoppeln die Tests von den Dependabot-Bumps (#4–#7). Der Qt-Lifecycle-Fixture räumt Dialoge sauber über DeferredDelete ab. CI: alle 9 Smoke-Jobs (3 OS × 3.10–3.12) grün. Formale Approval nicht möglich (eigener PR).


Generated by Claude Code

lukisch commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Zweitmodell-Review: Freigabe empfohlen.

Diff (4 Dateien, +46/−17) geprüft:

  • Die tomli-Fallbacks sind korrekt abgesichert (python_version < '3.11').
  • Die @v\d+-Regexe entkoppeln den Test von den Dependabot-Bumps.
  • Die Qt-Fixtures räumen Dialoge deterministisch auf.

Alle 9 Smoke-Jobs (3 OS × Python 3.10/3.11/3.12) sind grün, der Merge-Status ist clean. Eine formale Approval ist nicht möglich, weil der Bot-Account der PR-Autor ist; das Mergen bleibt Maintainer-Entscheidung.


Generated by Claude Code

lukisch commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Zweitprüfung (Bot): ✅ freigabereif. Diff gelesen: tomli-Pin für <3.11 im Workflow, tomllib-Fallback in test_metadata.py/test_security_license_contract.py, versionsunabhängige Action-Pin-Asserts, Qt-Fixture-Lifetime in test_pdf_collection.py. Minimal und korrekt; alle 9 Smoke-Jobs (3 OS × 3.10/3.11/3.12) grün. Formales Approve nicht möglich (gleicher Account wie Autor) – Merge liegt beim Maintainer. Hinweis: Nach Merge sind die Dependabot-PRs #4–#7 (checkout 7, setup-python 7, upload-artifact 7, stale 11) neu gegen master zu rebasen/prüfen, da dieser PR die Action-Pin-Tests entkoppelt.


Generated by Claude Code

@lukisch lukisch left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zweitmodell-Review (Freigabe empfohlen; formale Approval nicht möglich, da gleicher Account): Änderung klein und korrekt. tomllib→tomli-Fallback für Python 3.10 ist sauber und wird in der CI-Installation mitgezogen. Regex-Pins für checkout/setup-python sind versionsagnostisch, sodass die offenen Dependabot-PRs (#4–#7) die Pin-Tests nicht brechen. Qt-Fixtures räumen Dialoge geordnet auf. CI grün (9/9). Keine Einwände.


Generated by Claude Code

@lukisch lukisch left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zweitprüfung (Cloud-Bot): Freigabe-Empfehlung. Der tomllib→tomli-Fallback für Python 3.10 ist korrekt und wird in der CI nur für python_version < '3.11' installiert. Die versionsagnostischen Action-Pin-Asserts passen zu den Dependabot-Bumps, die Qt-Fixture räumt sauber auf. Alle 9 Smoke-Jobs sind grün. Optional: tomli für 3.10 auch in die dev-Extras aufnehmen, damit lokale Testläufe dort funktionieren.


Generated by Claude Code

@lukisch lukisch left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zweitmodell-Review (Freigabe empfohlen): tomllib→tomli-Fallback (Py 3.10) samt Marker im CI-Install korrekt; versionsagnostische Action-Pin-Tests passen zu den Dependabot-Bumps; Qt-Lifetime-Fixtures sauber. Smoke-Matrix (3 OS × 3.10–3.12) grün. Hinweis: letzter Check-Lauf vom 19.10. – falls danach Commits kamen, CI-Stand prüfen.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants