Fix: Build-Skripte verwenden Versionsnummer aus pyproject.toml für Ausgabedateien (v1.5.1)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-04 17:23:12 +02:00
parent b900455d69
commit 762523d669
2 changed files with 30 additions and 6 deletions
+20 -3
View File
@@ -6,9 +6,18 @@ Erstellt einen MSI-Installer aus dem PyInstaller Build.
import subprocess import subprocess
import sys import sys
import tomllib
from pathlib import Path from pathlib import Path
def get_version(project_root: Path) -> str:
"""Liest die Versionsnummer aus pyproject.toml."""
pyproject_path = project_root / "pyproject.toml"
with pyproject_path.open("rb") as f:
data = tomllib.load(f)
return data["project"]["version"]
def build_msi(): def build_msi():
"""Erstellt MSI-Installer mit WiX v6.""" """Erstellt MSI-Installer mit WiX v6."""
project_root = Path(__file__).parent project_root = Path(__file__).parent
@@ -19,7 +28,12 @@ def build_msi():
print("Bitte zuerst ausführen: uv run python build_windows.py") print("Bitte zuerst ausführen: uv run python build_windows.py")
sys.exit(1) sys.exit(1)
version = get_version(project_root)
msi_output = project_root / "dist" / f"DocuMentor-{version}.msi"
print(f"DocuMentor Build gefunden: {dist_dir}") print(f"DocuMentor Build gefunden: {dist_dir}")
print(f"Version: {version}")
print(f"MSI-Ausgabe: {msi_output}")
print() print()
# Schritt 1: ProductFiles.wxs generieren (ersetzt WiX heat) # Schritt 1: ProductFiles.wxs generieren (ersetzt WiX heat)
@@ -34,7 +48,10 @@ def build_msi():
# Schritt 2: MSI kompilieren mit WiX v6 # Schritt 2: MSI kompilieren mit WiX v6
print("Schritt 2/2: Kompiliere MSI-Installer...") print("Schritt 2/2: Kompiliere MSI-Installer...")
result = subprocess.run(["wix", "build", "DocuMentor.wxs", "ProductFiles.wxs", "-o", "DocuMentor.msi"], check=False) result = subprocess.run(
["wix", "build", "DocuMentor.wxs", "ProductFiles.wxs", "-o", str(msi_output)],
check=False,
)
if result.returncode != 0: if result.returncode != 0:
print("\nFEHLER: MSI-Kompilierung fehlgeschlagen!") print("\nFEHLER: MSI-Kompilierung fehlgeschlagen!")
@@ -43,10 +60,10 @@ def build_msi():
sys.exit(1) sys.exit(1)
print() print()
print("[OK] MSI erfolgreich erstellt: DocuMentor.msi") print(f"[OK] MSI erfolgreich erstellt: {msi_output}")
print() print()
print("Installation testen mit:") print("Installation testen mit:")
print(" msiexec /i DocuMentor.msi") print(f" msiexec /i \"{msi_output}\"")
if __name__ == "__main__": if __name__ == "__main__":
+10 -3
View File
@@ -10,8 +10,15 @@ Erstellt:
import shutil import shutil
import subprocess import subprocess
import sys import sys
import tomllib
from pathlib import Path from pathlib import Path
from datetime import datetime
def get_version(project_root: Path) -> str:
"""Liest die Versionsnummer aus pyproject.toml."""
with (project_root / "pyproject.toml").open("rb") as f:
return tomllib.load(f)["project"]["version"]
def main(): def main():
project_root = Path(__file__).parent project_root = Path(__file__).parent
@@ -113,8 +120,8 @@ Bei Fragen oder Problemen erstellen Sie bitte ein Issue auf GitHub.
# 6. ZIP-Archiv erstellen # 6. ZIP-Archiv erstellen
print("\n[6/6] ZIP-Archiv erstellen...") print("\n[6/6] ZIP-Archiv erstellen...")
timestamp = datetime.now().strftime("%Y%m%d") version = get_version(project_root)
zip_name = f"DocuMentor-{timestamp}-Windows" zip_name = f"DocuMentor-{version}"
zip_path = dist_dir / zip_name zip_path = dist_dir / zip_name
shutil.make_archive( shutil.make_archive(