Repository navigation
v0.0.215
rePIU v0.0.215
이전 릴리스 v0.0.214 이후의 변경입니다(issue #48, #50, #12 후속). 런처가 새 릴리스를 알리고 버튼 하나로
업데이트합니다. 스팀덱처럼 릴리스를 손으로 받아 푸는 일이 번거로운 환경을 위한 기능이며, 이 버전부터
다음 릴리스를 런처에서 받을 수 있습니다.
해결된 issue
| issue | 내용 | 커밋 |
|---|---|---|
| #48 | 런처의 업데이트 확인과 제자리 설치 | 8a1cc84 |
| #50 | GitHub Actions의 Node.js 20 런타임 교체 | 8a1cc84 |
| #12 (후속, 열린 상태) | Linux x64 릴리스 CI의 간헐적 host_thread_interrupt 실패 진단 |
8a1cc84 |
바뀐 것
런처 업데이트. 런처(인자 없이 실행한 repiu)가 열리면 GitHub의 최신 릴리스를 백그라운드에서
확인합니다. 새 버전이면 맨 위에 "rePIU v… is available."과 Update 버튼이 나오고, 게임패드로도 누를 수
있습니다. 누르면 이 빌드에 맞는 아카이브를 받아 GitHub가 알려 준 SHA-256과 같을 때만 풀고, 아카이브에 든
파일만 바꾼 뒤 런처를 다시 시작합니다. roms\, cfg\, nvram\은 그대로이고, 실패하면 기존 파일로
되돌립니다.
| 항목 | 내용 |
|---|---|
| 받는 방법 | Win32는 WinHTTP, Linux는 시스템 curl |
| 다시 시작 | Linux는 같은 프로세스가 새 실행 파일로 바뀜(Steam이 계속 실행 중으로 봄), Win32는 새 런처를 자식으로 실행 |
| 설치 버튼이 나오는 곳 | 릴리스 아카이브를 푼 폴더(실행 파일 옆 VERSION이 실행 중인 버전과 같음)만. 빌드 트리는 알림만 |
| 끄기 | cfg\repiu.ini의 [Launcher] check_updates = 0, 또는 REPIU_UPDATE_CHECK=0 |
스팀덱 설치, 문제 해결, 시험 절차는 런처 업데이트 가이드에 있습니다.
CI. 워크플로의 action을 Node 24 판으로 올렸습니다(checkout@v7, cache@v6, upload-artifact@v7,
download-artifact@v8). Linux x64 릴리스 잡을 간헐적으로 멈추던 host_thread_interrupt probe는 일곱 가지
주장을 따로 출력하고, 대상 스레드가 두 함수를 번갈아 돌게 해 인터럽트 위치 편향만으로는 실패하지 않게
했습니다.
확인한 것
| 구성 | 확인 |
|---|---|
| Linux x64·i386 Release | 빌드, core probe(launcher_update 13개 항목 포함), 로컬과 GitHub runner |
| Win32 | CI Debug 빌드와 probe(새 파일에서 경고 없음) |
| 실제 업데이트(Linux x64) | v0.0.212인 척한 시험 폴더에서 v0.0.213으로: 받기·검증·10개 교체·다시 시작, 다음 시작 때 옛 파일 정리, 빌드 트리에서는 설치 버튼 없음 |
| 실제 아카이브 | v0.0.213의 tar.gz와 zip을 새 코드로 풀어 Python 결과와 바이트 단위로 같음 |
알려진 것
- 업데이트 기능은 이 버전부터 들어 있으므로, 실제로 런처에서 업데이트되는 것은 다음 릴리스부터입니다.
- Win32의 실제 교체·다시 시작과 스팀덱 실기는 확인하지 않았습니다.
- #12는 한 번의 통과로 해결을 단정하지 않고 열어 둡니다. 다음에 실패하면 새 출력이 어느 주장인지 알려 줍니다.
rePIU v0.0.215
Changes since v0.0.214 (issues #48, #50, a #12 follow-up). The launcher announces a new release and updates
with one button, for setups like the Steam Deck where downloading and unpacking a release by hand is tedious;
from this version on, the next release can be taken from the launcher.
Resolved issues
| issue | Summary | Commit |
|---|---|---|
| #48 | Launcher update check and in-place install | 8a1cc84 |
| #50 | Move GitHub Actions off the Node.js 20 runtimes | 8a1cc84 |
| #12 (follow-up, still open) | Diagnosing the intermittent host_thread_interrupt failure in the Linux x64 release CI |
8a1cc84 |
Changed
Launcher updates. When the launcher (repiu with no arguments) opens, it checks GitHub's latest release in
the background. A newer one shows "rePIU v… is available." with an Update button at the top, reachable by
gamepad, which downloads this build's archive, unpacks it only when it matches the SHA-256 GitHub reports,
replaces only the archive's files, and restarts the launcher; roms\, cfg\ and nvram\ stay, and a
failure puts the old files back. Win32 downloads through WinHTTP and Linux through the system curl; Linux
turns the same process into the new executable (so Steam sees it still running) and Win32 runs the new launcher
as a child. The button appears only in a folder unpacked from a release archive (a VERSION next to the
executable equal to the running version); a build tree only gets the notice. [Launcher] check_updates = 0 in
cfg\repiu.ini or REPIU_UPDATE_CHECK=0 turns it off. Installing on a Steam Deck, troubleshooting and a test
procedure are in the launcher update guide.
CI. The workflows' actions moved to their Node 24 versions (checkout@v7, cache@v6, upload-artifact@v7,
download-artifact@v8). The host_thread_interrupt probe that intermittently stopped the Linux x64 release job
prints its seven claims separately, and its target alternates between two functions so a biased interrupt
position alone cannot fail it.
Verified
- Linux x64 and i386 Release: builds and the core probe (including
launcher_update's 13 checks), locally and on
GitHub's runners. - Win32: the CI Debug build and probes, with no warning from the new files.
- A real update on Linux x64, from a test folder pretending v0.0.212 to v0.0.213: download, verify, 10 files
replaced, restart; old files cleaned at the next start; no install button in a build tree. - v0.0.213's real tar.gz and zip unpacked by the new code byte-identically to Python's.
Known
- The update feature ships in this version, so an actual update from the launcher first happens with the next
release. - A real Win32 replacement and restart, and a real Steam Deck, were not checked.
- #12 stays open: one pass does not settle an intermittent failure, and a later failure will name its claim.