Skip to content

v0.0.215

Choose a tag to compare

@github-actions github-actions released this 10 Oct 11:54
· 26 commits to main since this release
a925fe6

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.