Roadmap to reactphp/socket v3

Aperta
#312 0 commenti 3 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
20/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
php
Ambito
networking

Direzione di ricerca

Start with the v3.0.0 milestone and the referenced tickets for the event-loop, DNS, and stream dependencies, then review the ReactPHP v3 roadmap discussion. This issue is an overview rather than a self-contained task; completion means coordinating the listed API, dependency, and release work through reactphp/socket v3.0.0.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

maintenance

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 Socket v3

  • Create 3.x branch #313
    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 #314 #315
    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+ #316
    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.

  • Remove all optional loop parameters
    In order to introduce Fiber-based APIs and make our APIs easier to use, we're going to make the event loop entirely opaque and remove all optional loop parameters.

  • Blocking APIs and async APIs
    We will rename the existing async APIs and then add new synchronous APIs using the previous names. This means you get the best of both worlds and can use whichever style works best for your use case. Each change will have a clear upgrade path described.

  • Upgrade to require EventLoop, Promise, DNS & Stream v3
    All upcoming v3 components should require any other ReactPHP components from the same major version or above, so we can deprecate legacy versions in the future. May require upgrade to dev version prior to v3 release (reactphp/event-loop#271, reactphp/dns#219, reactphp/stream#173).

  • Release reactphp/socket 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! 🚀

Lingua principale
PHP
Stelle
1.3k
Fork
160
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di reactphp/socket

Tutte le issue di reactphp/socket

Issue simili

Altre issue su PHP

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.