|
| 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 | +## How to Use This Roadmap |
| 19 | + |
| 20 | +- Each entry below is an **epic** with a name and short description. |
| 21 | +- Epics contain a list of tasks. Every task must: |
| 22 | + - satisfy the [Global Definition of Ready](#global-definition-of-ready) before work begins; |
| 23 | + - meet the [Global Definition of Done](#global-definition-of-done) on completion; and |
| 24 | + - define its own acceptance criteria. |
| 25 | +- Remove tasks as they are completed. |
| 26 | +- When an epic has no remaining tasks, remove the epic. |
| 27 | + |
| 28 | +## Prioritized Roadmap |
| 29 | + |
| 30 | +### Epic: Stabilize Core Components for 1.0 Release |
| 31 | +**Description:** Finalize public APIs, increase test coverage, and prepare documentation for a stable 1.0 release. |
| 32 | + |
| 33 | +- [ ] Finalize public APIs for existing components. |
| 34 | + - **Acceptance Criteria** |
| 35 | + - All Global DoR items are satisfied before implementation begins. |
| 36 | + - Public APIs are documented and approved. |
| 37 | + - Implementation meets the Global DoD. |
| 38 | +- [ ] Increase test coverage and fix outstanding issues. |
| 39 | + - **Acceptance Criteria** |
| 40 | + - All Global DoR items are satisfied before implementation begins. |
| 41 | + - Components tagged for 1.0 reach at least 90% test coverage. |
| 42 | + - All known issues are resolved. |
| 43 | + - Implementation meets the Global DoD. |
| 44 | +- [ ] Prepare changelogs and migration guides. |
| 45 | + - **Acceptance Criteria** |
| 46 | + - All Global DoR items are satisfied before implementation begins. |
| 47 | + - Changelogs outline breaking changes and upgrade paths. |
| 48 | + - Migration guides are published. |
| 49 | + - Implementation meets the Global DoD. |
| 50 | + |
| 51 | +### Epic: Update HTTP Libraries to Latest PSR Versions |
| 52 | +**Description:** Align HTTP components with the latest PSR standards and ensure client compatibility. |
| 53 | + |
| 54 | +- [ ] Align `HttpMessage` and `HttpFactory` with PSR-7 v2 and PSR-17. |
| 55 | + - **Acceptance Criteria** |
| 56 | + - All Global DoR items are satisfied before implementation begins. |
| 57 | + - Components comply with PSR-7 v2 and PSR-17. |
| 58 | + - Implementation meets the Global DoD. |
| 59 | +- [ ] Ensure compatibility with PSR-18 clients. |
| 60 | + - **Acceptance Criteria** |
| 61 | + - All Global DoR items are satisfied before implementation begins. |
| 62 | + - Integration tests against a PSR-18 client pass. |
| 63 | + - Implementation meets the Global DoD. |
| 64 | +- [ ] Update documentation with examples for the updated interfaces. |
| 65 | + - **Acceptance Criteria** |
| 66 | + - All Global DoR items are satisfied before implementation begins. |
| 67 | + - Docs include examples using the updated interfaces. |
| 68 | + - Implementation meets the Global DoD. |
| 69 | + |
| 70 | +### Epic: Introduce Validation Component |
| 71 | +**Description:** Provide a framework-agnostic, rule-based validation system with extensible APIs. |
| 72 | + |
| 73 | +- [ ] Implement `Component/Validation` with rule definitions and error reporting. |
| 74 | + - **Acceptance Criteria** |
| 75 | + - All Global DoR items are satisfied before implementation begins. |
| 76 | + - Component exposes an extensible API for custom rules. |
| 77 | + - Implementation meets the Global DoD. |
| 78 | +- [ ] Add unit tests covering each validator and failure scenario. |
| 79 | + - **Acceptance Criteria** |
| 80 | + - All Global DoR items are satisfied before implementation begins. |
| 81 | + - Tests cover common validators and edge cases. |
| 82 | + - Implementation meets the Global DoD. |
| 83 | +- [ ] Document usage examples and customization guides. |
| 84 | + - **Acceptance Criteria** |
| 85 | + - All Global DoR items are satisfied before implementation begins. |
| 86 | + - Documentation explains basic usage and extension points. |
| 87 | + - Implementation meets the Global DoD. |
| 88 | + |
| 89 | +### Epic: Add Queue Component for Background Jobs |
| 90 | +**Description:** Implement a queue abstraction with adapters and a Symfony Messenger bridge. |
| 91 | + |
| 92 | +- [ ] Implement queue abstraction with in-memory and Redis adapters. |
| 93 | + - **Acceptance Criteria** |
| 94 | + - All Global DoR items are satisfied before implementation begins. |
| 95 | + - `Component/Queue` provides enqueue/dequeue interfaces and adapters. |
| 96 | + - Tests demonstrate reliable job processing and failure handling. |
| 97 | + - Implementation meets the Global DoD. |
| 98 | +- [ ] Provide Symfony Messenger bridge for interoperability. |
| 99 | + - **Acceptance Criteria** |
| 100 | + - All Global DoR items are satisfied before implementation begins. |
| 101 | + - Bridge integrates with Symfony Messenger. |
| 102 | + - Implementation meets the Global DoD. |
| 103 | + |
| 104 | +### Epic: Enhance Symfony Bridges for Symfony 7 |
| 105 | +**Description:** Review bridge packages for Symfony 7 compatibility and add support for new features. |
| 106 | + |
| 107 | +- [ ] Review and update bridge packages for Symfony 7 compatibility. |
| 108 | + - **Acceptance Criteria** |
| 109 | + - All Global DoR items are satisfied before implementation begins. |
| 110 | + - Bridges pass tests against Symfony 7 components. |
| 111 | + - Implementation meets the Global DoD. |
| 112 | +- [ ] Remove deprecated APIs and document replacements. |
| 113 | + - **Acceptance Criteria** |
| 114 | + - All Global DoR items are satisfied before implementation begins. |
| 115 | + - Deprecated APIs are removed. |
| 116 | + - Docs describe new APIs and migration paths. |
| 117 | + - Implementation meets the Global DoD. |
| 118 | +- [ ] Document release notes describing Symfony 7 compatibility. |
| 119 | + - **Acceptance Criteria** |
| 120 | + - All Global DoR items are satisfied before implementation begins. |
| 121 | + - Release notes highlight Symfony 7 support. |
| 122 | + - Implementation meets the Global DoD. |
| 123 | + |
| 124 | +## Suggestions |
| 125 | + |
| 126 | +- Automate dependency updates with a scheduled tool (e.g., Renovate or Dependabot). |
| 127 | +- Establish coding style guides per component to encourage consistency. |
| 128 | +- Consider setting up benchmarks for performance-critical components. |
| 129 | +- Link epics and tasks to issue trackers for traceability. |
| 130 | +- Review roadmap items quarterly to keep priorities current. |
0 commit comments