Add Rector and modernize SDK generator CI#1578
Conversation
Greptile SummaryThis PR modernizes the SDK generator tooling baseline by adding Rector, upgrading the PHP requirement to 8.5, consolidating CI workflows, and removing the deprecated Markdown SDK generator.
Confidence Score: 5/5Safe to merge — changes are additive tooling improvements with semantically equivalent code transformations applied by Rector. All Rector-applied transformations are logically equivalent to the original code. PHP 8.5-specific features (array_any(), #[Override] on properties, typed constants) are gated behind the updated >=8.5 requirement. The Markdown SDK is removed cleanly with no dangling references. The CI consolidation preserves all previously tested SDK matrix entries and adds a push-to-master trigger that was missing before. No files require special attention. Important Files Changed
Reviews (5): Last reviewed commit: "Keep PHP integration test compatible wit..." | Re-trigger Greptile |
Summary
This PR modernizes the SDK generator maintenance/tooling baseline and removes deprecated generator surface area.
It adds Rector as a first-class refactor check, moves the generator runtime/tooling baseline to PHP 8.5, consolidates CI workflows, removes the deprecated Markdown SDK generator, and refreshes agent/repo documentation to match the current SDK list and workflows.
Changes
Add Rector tooling:
rector/rectorto dev dependencies.composer refactorandcomposer refactor:checkscripts.rector.phpwith PHP 8.5 sets, core prepared sets, andPHPUnitSetList::PHPUNIT_CODE_QUALITY.Move generator tooling to PHP 8.5:
Refresh GitHub Actions:
tests.ymlanddjlint.ymlintoci.yml.compatibility.ymlwith display nameCompatibility.ci.yml.Remove deprecated Markdown SDK:
src/SDK/Language/Markdown.php.templates/markdown/**.example.php.Cleanup docs/config:
.coderabbit.yaml.AGENTS.mdto prefer local PHP commands, include Rector in pre-submit checks, and reflect the current SDK list.example.phpcleanup items surfaced during refactoring, including$specinitialization and simpler platform defaulting.Validation
Ran successfully:
composer validate --no-check-publish --no-interactioncomposer refactor:checkcomposer lintcomposer lint-twigYAML.load_fileNot run to completion:
composer testsuite. A prior local run hit environment-specific Docker/Android Gradle execution failures (./gradlew: Operation not permitted) before completion.Notes
No generated SDK output was regenerated in this checkout because the repository currently does not include an
examples/directory. Markdown SDK generator inputs were removed as deprecated, so there is no replacement generated output for that target.