Repository navigation
feat: adopt native PER style with documentation preservation - #40
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 30 seconds. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
0ef8382 to
52097d2
Compare
52097d2 to
d029e35
Compare
Changelog✅ Contribution check passed. Head: Base: Contribution: 1 new valid fragment(s). Policy: ordinary.
|
…cs-review-candidate * commit 'd7ee6d191c293a1769931ae5535228a4539808fb': chore: update changelog (#43) feat: adopt independent PER policy and preserve PHPDoc (#40) docs: align package README with verified contracts (#34) # Conflicts: # docs/architecture.md # docs/policy.md # docs/resolved-preset.md
Replace prepared PSR-12 with ECS 13.3.8's native non-risky PER Coding Style 3.0 set, preserving callback-last configuration and deliberate command-attribute spacing. Raise the supported ECS minimum to^13.3.8 because older13.0 releases lack the perCs named argument; refresh only Composer lock content-hash with all package versions/source metadata unchanged.
Closes #35.
This PR now targets main independently. It contains only the PER implementation/policy delta, using the three Markdown records that currently exist in main; it does not inherit or recreate the separate Sphinx migration. When29 is integrated, carry these valid policy updates into its RST destinations and remove superseded Markdown. The broader4/5 work remains open for selective type-only PHPDoc cleanup, semantic Rector/header policy and full legacy parity.
Resolved policy:63 non-risky rules,20 added/5 removed from the former48-rule snapshot,11 explicit option deltas recorded. Keep NoSuperfluousPhpdocTags, NoEmptyPhpdoc, PhpdocNoEmptyReturn and GeneralPhpdocAnnotationRemove skipped: the installed implementations cannot guarantee preservation of described final/abstract or void/null tags. Remove only the inactive PhpdocToComment and GlobalNamespaceImport skips; neither becomes enabled by the selected set. Do not activate common/docblock/Symfony/risky/migration sets or create a custom cleanup wrapper. Type-only redundancy remains until safe selective cleanup is demonstrated.
Golden coverage preserves described and multi-line parameters, virtual params, list/shape/class-string/analyzer types, explained unions/void/null, standalone and inline inheritdoc, final/abstract descriptions, author/package/subpackage and pre-return var assertions. Native PER formatting is applied to this project's own sources; resulting empty-body/closure spacing changes are reviewable in the same minor increment.
Validation: final full Composer strict/platform,73 tests / 522 assertions and ECS passed on PHP 8.5.12; the compiled63-rule snapshot verifies every checker is non-risky and comes from the locked ECS package. Second explicit self fix/check preserved74 source/config/docs files and lock. Local Sphinx strict build passed. Independent review found and verified fixes for the minimum API bound and current-preset wording; final diff approved, whitespace clean. Hosted current-head CI remains required. No consumer changes or claimed PER 3.1/IDE equivalence.
Current HEADd029e3516e4a35b0c2fc49100e0cec5b4ecc72a1 includes published main d28de6c by normal merge. Previous52097d2 is retained in codex/checkpoint-pr40-20261026 and a verified complete local bundle. Official native unstack removed the unnecessary relation before retargeting; guarded atomic ref replacement preserved all prior commits. Native contribution check passes and read-only planning now yields0.1.0→0.2.0 from this PR40 fragment alone; no inherited consumed fragment returns. That plan is not a publication request and the user controls version publication.