v1.0.1 - corrige le demarrage et ajoute le build Windows

L'application ne demarrait pas du tout : gui/app.py importait pyqtSignal,
qui est le nom PyQt du signal, absent de PySide6. Trois autres defauts
bloquaient juste derriere, une fois celui-ci leve :

- MPLBACKEND etait fixe a 'module://backend_interagg', le backend interne de
  PyCharm, indisponible hors de cet IDE ;
- gui/app.py et monitor/monitor.py utilisaient des imports relatifs
  remontant au-dela du paquet racine charge par main.py ;
- core/ n'avait pas de __init__.py.

Corrige aussi get_statistics(), dont le retour anticipe "historique vide"
omettait connection_loss_count et uptime_percentage : le KeyError qui en
resultait cassait silencieusement tout l'onglet Statistiques a chaque
rafraichissement. Les deux chemins renvoient desormais les memes cles.

Ajoute le build Windows (StabilityTester.spec + make build-windows), qui
produit un .exe autonome depuis Linux via Wine. PySide6 y est epingle a
6.9.3 : a partir de 6.10, Qt6Core.dll depend de l'ICU systeme de Windows
que Wine n'implemente pas. La sortie standard est reconfiguree en UTF-8
dans main.py, les emojis des messages faisant echouer cp1252 sous Windows.

make test etait casse par la meme confusion de paquet et passe a nouveau.
Makefile : libgl1-mesa-glx, retire des depots Debian/Ubuntu recents,
remplace par libgl1 et les dependances Qt6 manquantes.
This commit is contained in:
2026-09-11 08:12:33 +02:00
parent b47d67299c
commit 4adde135d7
16 changed files with 2967 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
# -*- mode: python ; coding: utf-8 -*-
"""
Definition du build Windows de StabilityTester (PyInstaller).
Construit depuis Linux via Wine : voir la cible `build-windows` du Makefile.
"""
a = Analysis(
['main.py'],
pathex=['.'],
binaries=[],
datas=[],
# plyer charge sa facade de notification dynamiquement : PyInstaller ne
# peut pas la detecter par analyse statique.
hiddenimports=['plyer.platforms.win.notification'],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
# tkinter et les autres bindings Qt seraient embarques par matplotlib
# alors que l'application n'utilise que PySide6.
excludes=['tkinter', 'PyQt5', 'PyQt6', 'PySide2'],
noarchive=False,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='StabilityTester',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=False,
runtime_tmpdir=None,
# Application graphique : pas de console Windows a l'ouverture.
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)