diff --git a/1_build-pipeline/build.py b/1_build-pipeline/build.py index 265e5c6..6082e09 100644 --- a/1_build-pipeline/build.py +++ b/1_build-pipeline/build.py @@ -144,6 +144,20 @@ def update_changelog( print(f" ✓ CHANGELOG.md aktualisiert → [{new_version}]") +def _wait_for_changelog_edit() -> None: + """Gibt dem Benutzer Zeit, den neuen Changelog-Eintrag zu bearbeiten. + + Der Build liest CHANGELOG.md erst nach dieser Pause; Änderungen in der + Datei fließen also in den Build ein. + """ + print(f"\n✏️ Bitte den neuen Eintrag jetzt bearbeiten und speichern:\n {CHANGELOG_PATH}") + try: + input(" Danach Enter drücken, um den Build fortzusetzen (Strg+C bricht ab) … ") + except (EOFError, KeyboardInterrupt): + print("\nAbgebrochen.") + raise KeyboardInterrupt + + def _build_sections(bump_type: str, message: Optional[str]) -> str: """Baut die Sektionen für den Changelog-Eintrag.""" if message: @@ -353,6 +367,10 @@ def main() -> None: "--message", "-m", help="Changelog-Beschreibung für diese Version", ) + parser.add_argument( + "--no-pause", action="store_true", + help="Nicht auf die Bearbeitung des Changelogs warten (z.B. für CI)", + ) parser.add_argument( "--dry-run", action="store_true", @@ -406,6 +424,8 @@ def main() -> None: if not args.no_bump: print("\n📝 Changelog …") update_changelog(new_version, bump_type, args.message) + if not args.no_pause and sys.stdin.isatty(): + _wait_for_changelog_edit() _prepare_build_dir() exe_path = _run_pyinstaller() final_exe = _copy_to_build(exe_path)