Upgrade and Compatibility
This section provides information about upgrading your RoadRunner configuration to the latest version.
Compatibility matrix
The compatibility matrix provides information about the supported configuration versions for different RoadRunner versions.
>=2023.x.x
3
>=2.8
2.7
2.7.x
2.7 OR
Unversioned (treated as v2.6.0
, will be auto-updated to v2.7
)
<=2.6.x
Doesn't support versions
*non-versioned: configuration used in the 2.0.x-2.6.x releases.
Changelog
v3.0 Configuration and RR v2023.x.x
Reload plugin Update
The reload
plugin has been removed from the default plugins list. Please use *.pool.debug=true
instead.
OpenTelemetry Middleware Update
Starting from version v2023.1.0, the OpenTelemetry (OTEL) middleware configuration has been moved out of the HTTP plugin to support its usage across multiple plugins, including HTTP, gRPC, jobs, and temporal. The OTEL middleware is now configured using a top-level YAML key.
RoadRunner 2.x:
RoadRunner v2023.x.x:
Updating from version: 2.7
to version: 3
version: 2.7
to version: 3
To update your configuration from version 2.7 to version 3, follow these steps:
Update the version number: Change the
version
value from2.7
to3
.Relocate the
otel
middleware configuration: If your configuration uses theotel
middleware configuration within thehttp
plugin, move it to the configuration root by cutting it from thehttp
plugin and pasting it at the root level.Remove the
reload
plugin configuration and if needed, use the*.pool.debug=true
option instead.
Upgrading to RoadRunner v2024.1.x
There are no breaking changes in the userland API.
Configuration
server.relay_timeout
was deprecated and replaced internally with the Golang context timeout. Starting fromv2024.1.0
this option is no-op.
β οΈ HTTP plugin β οΈ
Starting from v2024.1.0
RR uses the protobuf encoded messages to send the payloads to the PHP workers via pipes and our protocol called goridge
. That means that you'll need to install the protobuf
PHP extension to have the increased performance. PHP userland API remains the same.
RR uses pipes
and our custom protocol called goridge
to communicate with the PHP worker. However, the user payload was usually encoded with a JSON
codec. This approach led to issues, such as broken raw binary payloads due to JSON's
limitations and fields reordering, even in raw mode. With the new protobuf codec, all these problems have been resolved. Now, by using the http.raw_body=true
option, you'll receive the payload completely untouched as it is. Additionally, encoded images or raw binary payloads will no longer be escaped (which previously led to broken images in payloads not encoded in base64).
Compatibility with RoadRunner PHP packages
The
spiral/roadrunner-http
andspiral/roadrunner-worker
packages should be upgraded to version 3.5. Old RR versions up tov2023.3.12
are also supported with the latest versions of the PHP packages.
Upgrading to RoadRunner v2024.2.x
There are no breaking changes in the userland API and no configuration changes.
Information for Plugin Developers
Starting from v2024.2.0
, all plugins were updated to version 5 due to the deprecation of the RoadRunner SDK. Pool, Workers, and Context tools are now available separately:
The
util.CreateListener
API was moved to the TcpListen package with the same functionality.util.Context
(and various context keys) was moved to the Context package.Pool
,Workers API
, and allIPC
related stuff was moved to the Pool package. You only need to replacesdk/v4
withpool
in your imports. For example,github.com/roadrunner-server/sdk/v4/pool/static_pool/config
->github.com/roadrunner-server/pool/static_pool/config
.events
(events bus package fromgithub.com/roadrunner-server/sdk/v4/events
) was moved to the Events package.
Last updated