Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b91b229731 | ||
|
|
7661afd33a |
@@ -4,6 +4,24 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
|
||||
## [2.2.3] — 2026-04-30
|
||||
|
||||
### Fixed
|
||||
- **`updater.exe` 임베딩 빌드 안정화**
|
||||
- v2.2.2에서 `main.spec --clean`이 빌드 시작 시 `dist/updater.exe`를 지우면서
|
||||
임베딩이 누락되던 문제 수정
|
||||
- `release.ps1`이 `dist/updater.exe`를 `build/staging/`로 복사 후 main.spec이 그걸 참조
|
||||
- main.exe 사이즈가 다시 ~78MB (updater 내장) 로 정상화
|
||||
|
||||
## [2.2.2] — 2026-04-30
|
||||
|
||||
### Added
|
||||
- 윈도우 제목에 현재 버전 표시 — 자동 업데이트 후 신/구 버전 시각적 구분
|
||||
- 예: `⏰ 퇴근시간 계산기 v2.2.2`
|
||||
|
||||
### Test
|
||||
- 자동 업데이트 더미 릴리스 — 단독 main.exe 배포 + 자가 업데이트 흐름 검증용
|
||||
|
||||
## [2.2.1] — 2026-04-30
|
||||
|
||||
### Added
|
||||
|
||||
+1
-1
@@ -4,4 +4,4 @@
|
||||
릴리스 시 이 값을 올린 후 git tag → push.
|
||||
CHANGELOG.md의 최상단 항목과 일치시킬 것.
|
||||
"""
|
||||
__version__ = '2.2.1'
|
||||
__version__ = '2.2.3'
|
||||
|
||||
@@ -4,9 +4,15 @@
|
||||
# the embedded updater is auto-extracted next to main.exe on first launch.
|
||||
import os
|
||||
|
||||
# release.ps1 stages updater.exe at build/staging/updater.exe
|
||||
# (avoids PyInstaller --clean wiping dist/updater.exe before main build).
|
||||
_extra_datas = []
|
||||
if os.path.exists('dist/updater.exe'):
|
||||
_extra_datas.append(('dist/updater.exe', '.'))
|
||||
_staged = 'build/staging/updater.exe'
|
||||
_fallback = 'dist/updater.exe'
|
||||
if os.path.exists(_staged):
|
||||
_extra_datas.append((_staged, '.'))
|
||||
elif os.path.exists(_fallback):
|
||||
_extra_datas.append((_fallback, '.'))
|
||||
|
||||
a = Analysis(
|
||||
['main.py'],
|
||||
|
||||
+12
@@ -120,11 +120,23 @@ $rc = Invoke-Native python -m PyInstaller --clean updater.spec
|
||||
if ($rc -ne 0) { Fail "updater.exe build failed (exit $rc)" }
|
||||
if (-not (Test-Path 'dist/updater.exe')) { Fail "dist/updater.exe missing" }
|
||||
|
||||
# Stage updater.exe outside dist/ so main.spec --clean does not wipe it
|
||||
$stagingDir = 'build/staging'
|
||||
if (-not (Test-Path $stagingDir)) { New-Item -ItemType Directory -Path $stagingDir | Out-Null }
|
||||
Copy-Item 'dist/updater.exe' "$stagingDir/updater.exe" -Force
|
||||
Info "Staged updater.exe -> $stagingDir/updater.exe"
|
||||
|
||||
Info "Building main.exe (with embedded updater)..."
|
||||
$rc = Invoke-Native python -m PyInstaller --clean main.spec
|
||||
if ($rc -ne 0) { Fail "main.exe build failed (exit $rc)" }
|
||||
if (-not (Test-Path 'dist/main.exe')) { Fail "dist/main.exe missing" }
|
||||
|
||||
# Restore updater.exe to dist/ for separate Release asset upload
|
||||
if (-not (Test-Path 'dist/updater.exe')) {
|
||||
Copy-Item "$stagingDir/updater.exe" 'dist/updater.exe' -Force
|
||||
Info "Restored updater.exe to dist/"
|
||||
}
|
||||
|
||||
$mainSize = "{0:N1}MB" -f ((Get-Item dist/main.exe).Length / 1MB)
|
||||
$updaterSize = "{0:N1}MB" -f ((Get-Item dist/updater.exe).Length / 1MB)
|
||||
OkMsg "main.exe ($mainSize) + updater.exe ($updaterSize)"
|
||||
|
||||
+2
-1
@@ -176,7 +176,8 @@ class MainWindow(QMainWindow):
|
||||
|
||||
def init_ui(self):
|
||||
"""UI 초기화"""
|
||||
self.setWindowTitle("⏰ " + tr('window.main_title'))
|
||||
from core.version import __version__
|
||||
self.setWindowTitle(f"⏰ {tr('window.main_title')} v{__version__}")
|
||||
self.setGeometry(100, 100, 500, 620)
|
||||
self.setMinimumSize(480, 520)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user