Port Image::ExifTool 13.55 to pass the full upstream suite
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- backend, testing-qa
Hướng nghiên cứu
Start by reading the repository’s ExifTool test runner and reproduce the 13.55 suite against system Perl, then both PerlOnJava backends; the payload names Image/ExifTool/WriteExif.pl lines 1157 and 1161 and 16 incomplete test programs. Reduce the goto and transliteration failures to minimal cases, determine which errors are cascades, and add regression coverage for each root cause. Done means all 113 programs pass on all three runtimes with complete TAP plans, and the final source passes nice -n 19 make.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Goal
Port and validate upstream Image::ExifTool 13.55 so its complete test suite passes on PerlOnJava. This is a new follow-up to #93, which was closed after the full suite passed on ExifTool 13.50. The broader release qualification is tracked in #1646; this issue owns the concrete ExifTool porting and verification work.
Current evidence
CPAN random tester run 20261006-085241-91243 selected File::RandomAccess from Image-ExifTool-13.55. The module-name row refers to a dependency; the failing target test block is Image::ExifTool 13.55.
- PerlOnJava ran all 113 test programs, with 16 programs aborting and 0/458 executed assertions reported as failed. The aborted files have incomplete TAP plans:
t/CanonRaw.t,t/Casio.t,t/DNG.t,t/FujiFilm.t,t/MIE.t,t/Olympus.t,t/Panasonic.t,t/Pentax.t,t/PhaseOne.t,t/PostScript.t,t/Sanyo.t,t/Sigma.t,t/Sony.t,t/Unknown.t,t/Writer.t, andt/XMP.t. - Repeated diagnostics include
Use of "goto" to jump into a construct is no longer permittedinImage/ExifTool/WriteExif.plat lines 1157 and 1161. These occur during loading/writing code and cause many incomplete test plans. - Another diagnostic is
Invalid range "\x{A4}-\x{82}" in transliteration operatorwhile loading ExifTool data, followed by missing Sony tag tables. Determine whether this has the same root cause as the aborted loads or needs a separate fix. - The system-Perl oracle did not reach Image::ExifTool's test suite: optional
Compress::Raw::Lzmafailed to build becauselzma.hwas unavailable. This is a prerequisite/setup gap, not a system-Perl test result. - Environment recorded by the archived run: macOS/Homebrew Perl 5.42.2 and OpenJDK 24.0.2. The PerlOnJava commit and separate JVM/interpreter results were not recorded in that log.
Work plan
- Establish a valid upstream baseline. Set up Image::ExifTool 13.55 and its test prerequisites in an isolated local library/environment. Resolve the optional
Compress::Raw::Lzmabuild prerequisite (including the required LZMA headers) or establish from upstream test configuration that it can be omitted without changing test behavior. Run the unchanged full suite with system Perl and retain the complete output. Record exact versions and test counts. - Reproduce on both PerlOnJava backends. Run the same unchanged 13.55 suite with the JVM backend and interpreter backend, using the repository's ExifTool test runner and bounded per-test timeouts. Capture full logs, test identities, diagnostics, and environment details. Compare results against the system-Perl baseline.
- Reduce failures by root cause. Start with the
gotofailures inWriteExif.pl1157/1161 and the invalid transliteration range. Reduce each earliest failure to a minimal Perl program or a minimal unchanged upstream test case. Determine whether the Sony table-load errors and remaining incomplete plans are downstream cascades. Separate unrelated failures rather than masking them with skips. - Implement the required compatibility work. Fix the responsible parser/compiler/runtime or bundled provider behavior while preserving standard Perl semantics. If a narrow ExifTool-specific adaptation is necessary, keep it minimal and document why upstream behavior requires it. Do not patch or delete upstream tests.
- Add permanent regression coverage. Validate each new project-owned regression test with system Perl first. Preserve evidence that it fails on the unfixed PerlOnJava parent, then require success on both backends; include direct compiler/runtime coverage where that layer owns the defect.
- Run focused and full validation. Re-run each reduced reproducer, the affected upstream tests, and all 113 Image::ExifTool test programs on system Perl, JVM, and interpreter. Confirm there are no errors, timeouts, or skipped tests, and that TAP plans complete. Record the exact 13.55 results and update #1646 with the qualification outcome.
- Integrate only after the immutable test gate passes. Run the required repository
nice -n 19 makegate on the final source state, then the ExifTool suite against that built artifact. Keep the issue open until the full in-scope suite passes and the regression tests are committed.
Acceptance criteria
- Image::ExifTool 13.55's complete upstream suite passes under system Perl, PerlOnJava JVM, and PerlOnJava interpreter, with all test plans complete and no unexplained skips or timeouts.
- The
WriteExif.plcontrol-flow and transliteration/table-load failures have documented root causes and permanent project regression tests. - The final PerlOnJava source passes
nice -n 19 make, and the full suite result is recorded in this issue and reflected in #1646.
Related issues
- Prior ExifTool support and 13.50 suite result: #93.
- Overall CPAN release qualification: #1646.
- Ngôn ngữ chính
- Perl
- Star
- 64
- Fork
- 7
- Merge trung bình
- 4 giờ 56 phút
- Pull request đã merge (30 ngày)
- 181
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của fglock/PerlOnJava
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
fglock/PerlOnJava#1651 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
fglock/PerlOnJava#1579 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:cpan-port area:unicode bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
fglock/PerlOnJava#1341 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 1-2 ngày Mức phù hợp với người mới 54/100
fglock/PerlOnJava#1671 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:cpan-port enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 38/100
fglock/PerlOnJava#1670 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của fglock/PerlOnJava
Issue tương tự
-
Perl/Fish oddness in new versionĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
gugod/App-perlbrew#879 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
RotherOSS/otobo#6205 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add IO::Pipe classĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
yuki-kimoto/SPVM-IO#30 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
RotherOSS/servicecatalog#28 ·