reactphp-legacy/socket-client

Roadmap to stable v1.0.0

Closed this issue · 7 comments

clue commented

Let's face it, this project is stable and has been used in production for years :shipit:

However, we're currently following a v0.X.Y release scheme (http://sentimentalversioning.org/).

We should finally make this explicit and fully adhere to SemVer and release a stable v1.0.0.

To a large extend, a stable v1.0.0 helps making BC breaks more explicit and thus the whole project more reliable from a consumer perspective. This project is actively maintained and has received some major updates in the last weeks and has some major updates planned in the next weeks. Given our current versioning scheme, we'd like to ensure all anticipated BC breaks will be merged before the planned v1.0.0 release.

As such, I've set up a roadmap that enlists only the major changes for each version among with planned release dates towards a stable v1.0.0 release:

v0.5.0 ✅

  • Released 2016-03-19
  • Support Connector without DNS
  • Context options
  • Improved test suite and error handling

v0.5.1 ✅

  • Released 2016-11-20
  • Promise cancellation
  • Timeout handling

v0.5.2 ✅

  • Released 2016-12-20
  • Add examples and simplify internal stream handling

v0.5.3 ✅

  • Released 2016-12-24
  • Skip IPv6 tests if not supported and improve documentation

v0.6.0 ✅

  • Released 2017-02-17
  • URIs everywhere
  • Add ConnectionInterface
  • Cancellation support is now mandatory
  • Reduce public API

v0.6.1 ✅

  • Released 2017-03-10
  • Update stream component

v0.6.2 ✅

  • Released 2017-03-17
  • SNI on legacy PHP < 5.6

v0.7.0:white_check_mark:

  • Released 2017-04-02
  • Simpler facade API

v0.8.0

  • Planned 2017-??
  • Merge this component into Socket

v1.0.0

  • Planned 2017-??
  • No new changes planned, this should merely mark the previous release as "stable"

This ticket aims to serve as a basic overview and does not contain every single change. Please also see the milestone links and the CHANGELOG for more details.

Obviously, this roadmap is subject to change and I'll try to keep it updated as we progress. In order to avoid cluttering this, please keep discussion in this ticket to a minimum and consider reaching out to us through new tickets or Twitter etc.

clue commented

Given that there is already ongoing effort to merge this component into the Socket component, it's questionable whether this component here will ever be tagged as stable v1.0.0 at all.

See #86 for more details.

I've opened this ticket to give people a realistic overview of how this component is planned to evolve over the course of the next few months and how reliable this component is.

IMHO this component is very stable and once the v0.6.0 release is out, there are no BC breaks planned anytime soon. As such, you're safe to build on top of this component now.

Once we merge this component into the Socket component, we'll make sure to provide some upgrade guides on what needs to be changed. Upgrading this should not take more than a few minutes, as existing code will be moved as-is.

clue commented

Updated now that the v0.6.0 release is out :shipit:

https://github.com/reactphp/socket-client/milestone/8

clue commented

Updated now that the v0.6.1 release is out :shipit: This also makes the previously planned v0.7.0 release pretty much obsolete, as the updated streams do not affect BC.

clue commented

Updated to include simpler facade API as v0.7.0 before we evaluate if this gets merged into Socket.

clue commented

Updated now that the v0.6.2 release is out :shipit: I'm now focusing on the v0.7.0 release.

clue commented

Updated now that the v0.7.0 release is out :shipit:

Note that this will likely be the last (planned) release and I'm now focusing on merging this into the Socket component, see #86 for more details.

clue commented

Closed in favor of reactphp/socket#75 (Migrating over to Socket now that #86 is in)