|
| 1 | +# Sons of PHP Roadmap |
| 2 | + |
| 3 | +This roadmap outlines planned libraries and updates for the Sons of PHP monorepo. Completed items must be removed to keep the list current. |
| 4 | + |
| 5 | +## Global Definition of Ready |
| 6 | +- Problem statement and goals are clearly documented. |
| 7 | +- Scope, dependencies, and related packages are identified. |
| 8 | +- Acceptance criteria and testing strategy are defined. |
| 9 | +- Stakeholders have reviewed and approved the proposal. |
| 10 | + |
| 11 | +## Global Definition of Done |
| 12 | +- Implementation meets the documented acceptance criteria. |
| 13 | +- Unit and integration tests are added or updated and pass. |
| 14 | +- Documentation reflects the new or changed behavior. |
| 15 | +- `make test`, `make php-cs-fixer`, and `make psalm` pass. |
| 16 | +- The corresponding roadmap entry is removed. |
| 17 | + |
| 18 | +## Prioritized Roadmap |
| 19 | +1. **Stabilize Core Components for 1.0 Release** |
| 20 | + - Finalize public APIs for existing components. |
| 21 | + - Increase test coverage and fix outstanding issues. |
| 22 | + - Prepare changelogs and migration guides. |
| 23 | + - **Acceptance Criteria** |
| 24 | + - Every component tagged for 1.0 has >=90% test coverage. |
| 25 | + - Changelogs outline breaking changes and upgrade paths. |
| 26 | + - Documentation updated for all stabilized components. |
| 27 | + |
| 28 | +2. **Update HTTP Libraries to Latest PSR Versions** |
| 29 | + - Align `HttpMessage` and `HttpFactory` components with PSR-7 v2 and PSR-17 updates. |
| 30 | + - Ensure compatibility with PSR-18 clients. |
| 31 | + - **Acceptance Criteria** |
| 32 | + - Components comply with PSR-7 v2 and PSR-17. |
| 33 | + - Integration tests against a PSR-18 client pass. |
| 34 | + - Docs include examples using the updated interfaces. |
| 35 | + |
| 36 | +3. **Introduce Validation Component** |
| 37 | + - Provide a rule-based validation system similar to Symfony Validator but framework agnostic. |
| 38 | + - Include common validators and an extensible API for custom rules. |
| 39 | + - **Acceptance Criteria** |
| 40 | + - New `Component/Validation` with rule definitions and error reporting. |
| 41 | + - Unit tests cover each validator and failure scenario. |
| 42 | + - Documentation with usage examples and customization guide. |
| 43 | + |
| 44 | +4. **Add Queue Component for Background Jobs** |
| 45 | + - Implement a simple queue abstraction with in-memory and Redis adapters. |
| 46 | + - Provide Symfony Messenger bridge for interoperability. |
| 47 | + - **Acceptance Criteria** |
| 48 | + - `Component/Queue` with enqueue/dequeue interfaces and adapters. |
| 49 | + - Bridge package integrates with Symfony Messenger. |
| 50 | + - Tests demonstrate reliable job processing and failure handling. |
| 51 | + |
| 52 | +5. **Enhance Symfony Bridges for Symfony 7** |
| 53 | + - Review all Symfony bridge packages for compatibility with Symfony 7. |
| 54 | + - Add support for new security and HTTP features where applicable. |
| 55 | + - **Acceptance Criteria** |
| 56 | + - Bridges pass tests against Symfony 7 components. |
| 57 | + - Deprecated APIs removed and replacements documented. |
| 58 | + - Release notes describe Symfony 7 compatibility. |
| 59 | + |
| 60 | +## Suggestions |
| 61 | +- Automate dependency updates with a scheduled tool (e.g., Renovate or Dependabot). |
| 62 | +- Establish coding style guides per component to encourage consistency. |
| 63 | +- Consider setting up benchmarks for performance-critical components. |
0 commit comments