Skip to content

Support RenPy RPA 1.0 sidecar archives - #83

Merged
refaim merged 1 commit into
masterfrom
codex/renpy-rpa1
Oct 21, 2026
Merged

refaim merged 1 commit into
masterfrom
codex/renpy-rpa1

Conversation

@refaim

@refaim refaim commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

RenPy rejected headerless RPA 1.0 data because its index is stored in an adjacent .rpi. The module now opens the .rpa, validates the exact sidecar, and extracts each file by concatenating its ordered fragments. Valid RPA 2.0/3.0 archives retain their existing behavior.

The change also bounds Pickle memo object/string copying, keeps malformed numeric indexes inside the ABI error boundary, and bumps RenPy to 3.3.0. Includes authored archive/index fixtures, parser decision tables, and real-module lifecycle/error tests. The architecture-document contract now checks the Windows XP–11 announcement in its original consolidated release, with regression tests allowing later feature releases while rejecting misplaced history.

Validation:

  • Debug x86/x64 and actual Release-module ABI tests passed.
  • First-party LLVM coverage: 100% lines and branches (9,134 lines / 3,668 branches in the feature validation tree).
  • All 186 files from the three external RPA 1.0 examples matched independent byte reconstruction; all 15 existing RPA 2.0/3.0 corpus archives opened and listed.
  • Release x86/x64 built with MSVC and static CRT, passed MSVC/clang-tidy analysis, and depend only on Windows system DLLs.
  • All 1,036 Python tests passed with 100% source line and branch coverage. Separate code review completed with zero actionable comments.

Implements #77. The issue will be closed after the 3.3.0 release is published.

@refaim
refaim enabled auto-merge (squash) October 21, 2026 13:17
@codecov

codecov Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (e319af4) to head (87a8e00).

Additional details and impacted files
@@            Coverage Diff             @@
##            master       #83    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           73        74     +1     
  Lines         9951     10124   +173     
  Branches      2292      2323    +31     
==========================================
+ Hits          9951     10124   +173     
Flag Coverage Δ
native-x64 100.00% <100.00%> (ø)
native-x86 100.00% <100.00%> (ø)
python 100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/modules/renpy/pickle.cpp 100.00% <100.00%> (ø)
src/modules/renpy/pickle.h 100.00% <100.00%> (ø)
src/modules/renpy/renpy.cpp 100.00% <100.00%> (ø)
src/modules/renpy/rpa1_index.cpp 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Open headerless .rpa data with its adjacent .rpi index and stream ordered
fragments with checked paths, extents, and metadata budgets. Bound Pickle
memo copying and cover the parser and real Observer ABI with authored fixtures.

Refs #77

Co-Authored-By: Codex (gpt-6.1-sol) <[email protected]>
@refaim
refaim merged commit d2f308f into master Oct 21, 2026
28 checks passed
@refaim
refaim deleted the codex/renpy-rpa1 branch October 21, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant