propresenter7-php-lib/doc/internal/issues.md
Thorsten Buss 4d10db4f17 Initial public release
PHP 8.4 library and CLI tools to read, modify, and generate ProPresenter 7
files: songs (.pro), playlists (.proplaylist), bundles (.probundle), themes,
and the global library files (Macros, Labels, Groups, ClearGroups, CCLI,
Messages, Timers, Stage, Workspace, Props, TestPatterns, Calendar,
KeyMappings, CommunicationDevices).

Built on the MIT-licensed ProPresenter7-Proto schema by greyshirtguy
(v7.16.2). Includes 18 CLI parsers, comprehensive API docs in doc/,
binary-format specs, and a synthetic 369-test PHPUnit suite covering
RTF extraction, translation slides, ZIP64 repair, round-trip fidelity,
and end-to-end generation.
2026-05-03 22:21:01 +02:00

1.1 KiB

Issues & Gotchas

(Agents will log problems encountered here)

  • 2026-03-01 task-2 edge case: Du machst alles neu_ver2025-05-11-4.pro is 0 bytes; protoc --decode rv.data.Presentation returns empty output (no decoded fields).

  • 2026-03-01 task-6 fidelity failure: Rv\Data\Presentation::mergeFromString()->serializeToString() is not byte-preserving for current generated schema/runtime (169/169 mismatches, including Test.pro with length_delta=-18, first mismatch at byte 1205), so unknown/opaque binary data is still being transformed or dropped.

  • 2026-03-01 task-7: no new parser blockers found; UTF-8 filename handling is stable when using raw PHP filesystem functions (is_file, filesize, file_get_contents).

  • 2026-03-01 task-2 test gotcha: unzip may render UTF-8 filenames with replacement characters; entry-comparison tests normalize names before asserting equality with ZipArchive listing.

  • 2026-03-01 21:23:59 - Generated header color values deserialize with float precision drift; fixed by assertEqualsWithDelta in generator interoperability test.