Skip to content

fix(verification): close react-i18next compare gaps#831

Merged
mstykow merged 3 commits intomainfrom
verify/react-i18next
May 1, 2026
Merged

fix(verification): close react-i18next compare gaps#831
mstykow merged 3 commits intomainfrom
verify/react-i18next

Conversation

@mstykow
Copy link
Copy Markdown
Owner

@mstykow mstykow commented May 1, 2026

Summary

  • preserve lowercase project-name copyright tails such as Copyright (c) 2015-present i18next while filtering bundled HTML-entity decoder regex junk out of copyright and holder detection
  • descend into conditional if/else blocks inside Gradle dependency closures so React Native example apps keep static dependencies such as com.facebook.react:hermes-android
  • record the verified i18next/react-i18next @ cb20d18 compare snapshot in docs/BENCHMARKS.md and regenerate the benchmark chart

Issues

  • Covers: follow-up verification work for the CocoaPods row target i18next/react-i18next

Scope and exclusions

  • Included:
    • copyright detector/refiner cleanup in src/copyright/** for lowercase project tails and HTML-entity decoder artifact suppression
    • Gradle parser improvement in src/parsers/gradle.rs for conditional dependency extraction inside dependencies { ... }
    • benchmark documentation update in docs/BENCHMARKS.md and docs/benchmarks/scan-duration-vs-files.svg
  • Explicit exclusions:
    • no scorecard status change; the CocoaPods row was already marked verified before this follow-up
    • no broad URL-normalization rewrite for trailing-slash differences in README and Gradle wrapper docs

Intentional differences from Python

  • This branch keeps concrete resolved dependency coordinates when static local values are available, such as resolved Flipper versions in the React Native examples, instead of preserving ${FLIPPER_VERSION} placeholders.
  • Remaining compare deltas are limited to Unicode-preserving author normalization (Jan Mühlemann) and HTML-entity decoder test-noise patterns rather than meaningful parser blind spots.

Follow-up work

  • Created or intentionally deferred:
    • deferred: broad trailing-slash URL normalization alignment for README and Gradle wrapper documentation links
    • deferred: further cleanup of HTML-entity decoder test-fixture noise, since the remaining deltas are in synthetic decoder assertions rather than real project metadata surfaces
    • compare artifacts:
      • baseline: .provenant/compare-runs/20260501T072233Z-react-i18next-43501
      • improved rerun: .provenant/compare-runs/20260501T082746Z-react-i18next-18917
    • validation run during implementation:
      • cargo test test_lowercase_project_name_after_present_year_range_is_kept
      • cargo test test_is_junk_copyright_drops_html_entity_regex_fragments
      • cargo test test_conditional_dependencies_inside_if_blocks_are_extracted
      • cargo test test_gradle_scan_resolves_buildsrc_kotlin_constants
      • cargo test tests::test_golden_copyrights --test copyright_golden --features golden-tests
      • cargo test tests::test_golden_summary_fixtures_match_expected_summary_blocks --test post_processing_golden --features golden-tests
      • cargo test test_scanner_detects_copyrights_in_windows_dll_strings --test scanner_integration
      • cargo test copyright::detector::tests_structured_metadata::
      • cargo test copyright::refiner::tests::

mstykow and others added 3 commits May 1, 2026 10:40
Preserve lowercase project names that trail year ranges such as Copyright (c) 2015-present i18next while classifying bundled HTML-entity decoder artifacts as code noise so the react-i18next verification no longer loses real holders or invents regex junk notices.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Signed-off-by: Maxim Stykow <maxim.stykow@gmail.com>
Descend into if/else blocks inside dependencies closures so static React Native Gradle manifests keep conditional dependencies مثل hermes-android visible instead of dropping them as nested closures.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Signed-off-by: Maxim Stykow <maxim.stykow@gmail.com>
Record the pinned react-i18next compare run as a new Apple/mobile benchmark example after the remaining meaningful parser gap was closed and the residual deltas were triaged as normalization or test-noise differences.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Signed-off-by: Maxim Stykow <maxim.stykow@gmail.com>
@mstykow mstykow merged commit 5db8cef into main May 1, 2026
15 checks passed
@mstykow mstykow deleted the verify/react-i18next branch May 1, 2026 10:01
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