event-loop icon indicating copy to clipboard operation
event-loop copied to clipboard

Roadmap to reactphp/event-loop v3

Open clue opened this issue 1 year ago • 2 comments

ReactPHP v3 is going to happen! 🎉

We're committed to work on the next major version of ReactPHP. We've started working on this a while ago and believe it's time to finally make this public and give people a chance to see what we're up to and to contribute. In order to show the ongoing development towards ReactPHP v3, we're using dedicated roadmap tickets (like this one) for each component.

Our plans towards EventLoop v3

  • Create 3.x branch #272 Once this is created, we can start working on the new v3.0.0 milestone. The default branch will be 3.x and the previous 1.x branch still stay in place at least until v3.0.0 is released.

  • Drop deprecated APIs #273, #274 All APIs marked as @deprecated in v1 will be removed in v3. Each occurrence should have a clear upgrade path described.

  • Require PHP 7.1+ and recommend PHP 8.1+ #276 Time to upgrade! The new v3 will make use of newer language features, so we will upgrade to PHP 7.1+ as a minimum requirement (to run absolutely anywhere) and recommend PHP 8.1+ looking forward (Fibers).

  • Type-Safe APIs with PHPStan on max level All our public APIs should use native type declarations to avoid invalid API usage and guide IDEs and static analysis tools.

  • Release reactphp/event-loop v3.0.0 Planned around mid-2024, approaching our 12th birthday? To ensure a smooth release, we will coordinate the process across all our components.

How you can help

We're optimistic to get the above things done in the near future, so this ticket aims to serve as a basic overview and is subject to change as we progress. For more details, see also the milestone links and any referenced tickets. If you have any additional input for ReactPHP v3, we invite you to join our discussion about the roadmap for the next major version.

Working on the next major version involves a lot of work and we're always looking for sponsors to allow us spending more time on ReactPHP. Check out ReactPHP's sponsors profile and consider supporting the ongoing development ❤️

We'll do our best to keep this ticket updated as we make progress. To keep things organized, let's try to limit the discussions in here and please use new tickets and discussions for input. Help us spread the word! We are excited to move forward together! 🚀

clue avatar Jan 23 '24 15:01 clue

In documentation said:

As of v1.2.0, we highly recommend using the Loop class this way and omitting any explicit run() calls. For BC reasons, the explicit run() method is still valid and may still be useful in some applications, especially for a transition period towards the more concise style.

Removing the run() method from the code will break the PHP execution logic. If any exception/error/exit occurs in the ReactPHP registered shutdown function within user code that is called by the loop during queue processing, this will prevent registered functions of other classes (such as error handlers, loggers, and other application logic) from executing and capturing the exception/error/exit.

MyNameIsRoman avatar Apr 17 '24 15:04 MyNameIsRoman

@MyNameIsRoman As @clue wrote above, this ticket is used as a overview for the v3 development and is not supposed to be a place for discussion, use new tickets and discussions for input.

To keep things organized, let's try to limit the discussions in here and please use new tickets and discussions for input.

SimonFrings avatar Apr 18 '24 14:04 SimonFrings