Skip to content

Triage: potential duplicate open PRs #440

Description

@toddr-bot

Potential Duplicate Pull Requests

A review of the 112 open PRs identified the following clusters where PRs appear to address the same problem, modify the same files, or would conflict with each other. Consolidating these would reduce review burden and prevent merge conflicts.

1. UTF-8 decoding when use utf8 is present (EXACT DUPLICATE)

Near-identical titles, same files changed (Tokenizer.pm, t/14_charsets.t), same approach (utf8::decode() in Tokenizer::new()). The only difference is which issue each references. One should be closed in favor of the other.

2. Encoding support for PPI::Document->new

Both add an encoding() accessor and modify Document.pm. They solve the same problem with different API designs. At most one approach should be adopted.

3. Whitespace between sigil and identifier

Both modify Token/Symbol.pm and Token/Unknown.pm. Same problem, likely same fix.

4. cmp_document functions

Both add document comparison. PR #146 is a much larger changeset that appears to subsume #49.

5. Minimum Perl version bump / IO::String removal

All three modify dist.ini, Token/Data.pm, and test files. PR #393 (5.008001) supersedes #362 (5.008). PR #386's IO::String removal is a subset of #362's changes.

6. PPI::Exception caller tracking

Both fix the same bug in Exception.pm (instance throw() not recording callers). #391 adds more comprehensive tests. One subsumes the other.

7. Element->namespace() and package block handling

All three modify Statement/Package.pm. PRs #399 and #414 both implement Element->namespace() and Package->block(). PR #414 appears to be the most complete, likely subsuming both #399 and #376.

8. DESTROY cleanup safety

Both modify Node.pm and address DESTROY-related corruption. Different approaches to the same root problem — will likely conflict.

9. __DATA__ / __END__ / Pod parsing

All three address how the tokenizer handles __DATA__ sections. PRs #349 and #439 both modify Token/Data.pm and deal with Pod extraction from data sections. These will conflict with each other.

10. Extensibility / Plugin mechanisms

All three modify Lexer.pm and add different extension mechanisms. These are competing designs for the same need — at most one should be adopted, or they need to be reconciled into a unified approach.

11. insert_before / insert_after improvements

Five PRs touching the same insert API surface. PR #151 is a massive changeset. PR #392 extends the API. PRs #367 and #419 are docs-only. These need coordinated review — merging any one will likely break the others.


Other related (but probably distinct) PRs worth noting

These groups touch related areas but appear to solve different sub-problems. Flagging them in case they conflict at the code level:


🤖 Generated by Kōan from PR audit session

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions