Skip to content

Commit 6e18e46

Browse files
committed
Versión Estable 2.0.1
- Corregido el sistema de actualización automática que detectaba la nueva versión y descargaba el Updater.exe correctamente, pero no lo ejecutaba al cerrar la aplicación. El proceso del updater ahora se lanza de forma independiente mediante DETACHED_PROCESS, garantizando que sobreviva al cierre de la aplicación - El sistema de actualización ahora detecta automáticamente la edición en ejecución (moderna o legacy) mediante sys.version_info y descarga el actualizador correspondiente: Updater.exe para Python 3.10+ y Updater_Legacy.exe para Python 3.8, evitando conflictos de dependencias entre ediciones - El Updater ahora cancela la instalación con un mensaje informativo y abre la página de descargas en el navegador si no detecta una instalación previa en el registro de Windows, en lugar de intentar instalar en una ubicación incorrecta - Migración a Pillow 12.2.0: la apertura de archivos de imagen es hasta 15x más rápida y el guardado hasta 9x más rápido gracias a la carga perezosa de plugins introducida en esta versión - Añadido requirements.txt al repositorio con versiones máximas pineadas para la edición moderna y límites superiores para la edición legacy, garantizando builds reproducibles y evitando conflictos de dependencias entre compilaciones
1 parent 947a630 commit 6e18e46

4 files changed

Lines changed: 25 additions & 8 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ wheels/
7676
*.egg-info/
7777
.installed.cfg
7878
*.egg
79+
build_app.bat
80+
GBABackgroundStudio.spec
7981

8082
# === OS Generated ===
8183
.DS_Store
@@ -106,6 +108,7 @@ config.ini
106108
*.tmp
107109
*.txt
108110
!changelog.txt
111+
!requirements.txt
109112

110113
# === Graphics and Assets ===
111114
# Ignore common image files EXCEPT assets/

core/config_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from pathlib import Path
55

66
class ConfigManager:
7-
APP_VERSION = "2.0.0"
7+
APP_VERSION = "2.0.1"
88

99
def __init__(self, config_file="config.ini"):
1010
self.config_file = config_file

requirements.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Pillow<=12.2.0
2+
numpy<=2.4.4
3+
scipy<=1.17.1
4+
scikit-learn<=1.8.0
5+
certifi<=2026.4.22
6+
opencv-python<=4.13.0.92
7+
PySide6==6.11.0; python_version >= "3.10"
8+
PySide2==5.15.2; python_version < "3.10"

ui/dialogs/about_dialog.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,11 @@ def _start_update(self, data: dict):
215215
install_path = self._get_install_path()
216216

217217
if install_path:
218-
updater_url = self._find_asset_url(data.get("assets", []), "Updater.exe")
218+
import sys
219+
is_legacy = sys.version_info < (3, 9)
220+
asset_name = "Updater_Legacy.exe" if is_legacy else "Updater.exe"
221+
222+
updater_url = self._find_asset_url(data.get("assets", []), asset_name)
219223
if not updater_url:
220224
webbrowser.open(RELEASES_URL)
221225
return
@@ -232,12 +236,14 @@ def _start_update(self, data: dict):
232236
def _on_updater_downloaded(self, exe_path: str, install_path: str):
233237
import subprocess
234238
try:
235-
subprocess.Popen([
236-
exe_path,
237-
f'/DIR="{install_path}"',
238-
"/VERYSILENT",
239-
"/SUPPRESSMSGBOXES"
240-
])
239+
subprocess.Popen(
240+
[
241+
exe_path,
242+
f"/DIR={install_path}",
243+
],
244+
creationflags=subprocess.DETACHED_PROCESS | subprocess.CREATE_NEW_PROCESS_GROUP,
245+
close_fds=True,
246+
)
241247
except Exception as e:
242248
QMessageBox.critical(self, self._tr("update_error_title"), str(e))
243249
return

0 commit comments

Comments
 (0)