Skip to content

Releases: roadrunner-server/roadrunner

v2023.3.9

11 Jan 13:42
362f643
Compare
Choose a tag to compare

🚀 v2023.3.9 🚀

HTTP plugin

  • 🐛️ Streaming responses can experience a lock-up when the client disconnects early, BUG, (thanks @segrax)

SQS JOBS driver

  • 🐛️ Use user specified credentials if they are set even if we're inside AWS, BUG, (thanks @matteokov)

Service plugin

  • 🐛️ Services directly killed when restarting on terminating. BUG, (thanks @chazzbg)

Server plugin

  • 🔥 Add user parameter to on_init command section. PR, docs, (thanks @Kaspiman)

Redis KV driver

  • 🐛️ Correctly finish the OTEL span. PR, (thanks @Kaspiman)

🧹 Chore:

  • 🧑‍🏭 Dependencies: update project/system dependencies.
  • 🧑‍🏭 Docs: update docs, BUG.

v2023.3.8

14 Dec 16:05
80eff8a
Compare
Choose a tag to compare

🚀 v2023.3.8 🚀

HTTP plugin

gRPC plugin

  • 🔥 Experimental support for the OTLP protocol inside the gRPC plugin: FR, docs: link (thanks @rauanmayemir)

Beanstalk driver

Velox

  • 🔥 To ensure that Velox is able to build every RoadRunner version, we've added a new CI CRON job that builds RoadRunner with Velox daily. This job is not related to the RoadRunner release process, but it will help us to ensure that Velox is always compatible with the latest RoadRunner version.

🧹 Chore:

  • 🧑‍🏭 Dependencies: update project/system dependencies.

v2023.3.7

30 Nov 19:15
6c15487
Compare
Choose a tag to compare

🚀 v2023.3.7 🚀

gRPC plugin:

  • 🔥 Re-enable HTTP health and readiness checks via regular endpoints /health and /ready.

AMQP driver:

  • 🐛️ Fix mapping for the RabbitMQ type List (Golang []any), BUG, (thanks @iborysenko).
  • 🐛️ Fix an edge case for the DLX queue type when user doesn't specify any queue, but use Push method with delays, BUG, (thanks @fereron).

🧹 Chore:

  • 🧑‍🏭 Dependencies: update project/system dependencies.

v2023.3.6

23 Nov 16:35
fa7db30
Compare
Choose a tag to compare

🚀 v2023.3.6 🚀

CI releases:

🧹 Chore:

  • 🧑‍🏭 Dependencies: update project/system dependencies.

v2023.3.5

16 Nov 14:06
2c69fed
Compare
Choose a tag to compare

🚀 v2023.3.5 🚀

Config plugin:

  • 🔥 Add the ability to include .env files in the configuration (experimental feature): Docs, (thanks @OO00O0O).

Temporal plugin:

HTTP plugin:

  • 🔥 Allow showing PHP exception traces in the response: BUG, (thanks @speller).

🧹 Chore:

  • 🧑‍🏭 Dependencies: update project (system) dependencies.

v2023.3.4

09 Nov 16:27
2f2aeb9
Compare
Choose a tag to compare

🚀 v2023.3.4 🚀

🔥 Features:

RR Core:

  • ✒️ Experimental features: Add support for the experimental features: Docs.

👀 Plugins:

  • ✒️ NATS driver: Replace the old JetStream client with the new one: FR, API.
  • ✒️ Config driver: Add experimental support for merging two and more configuration files: FR, Docs, (thanks @hugochinchilla)
  • ✒️ Headers middleware: Add support for the regular expressions for origin: FR, Docs, (thanks @orlandothoeny)

🩹 Fixes

  • 🐛 HTTP Plugin: Unable to POST relatively chunky POST: BUG, (thanks @FluffyDiscord)

v2023.3.3

26 Oct 18:42
b5acfd6
Compare
Choose a tag to compare

🚀 v2023.3.3 [Bugfix] 🚀

🩹 Fixes

  • 🐛 RR Core: Fix mistakenly removed RPC endpoint: ISSUE, (thanks @Kaspiman)

v2023.3.2

19 Oct 16:29
093f7c8
Compare
Choose a tag to compare

🚀 v2023.3.2 [Maintenance] 🚀

🩹 Fixes

🧹 Chore:

  • 🧑‍🏭 Dependencies: update project dependencies (including CVE in transitive dependencies, especially gofiber).

v2023.3.1

12 Oct 16:17
99cbb89
Compare
Choose a tag to compare

🚀 v2023.3.1 [Maintenance release] 🚀

🧹 Chore:

  • 🧑‍🏭 Dependencies: update project dependencies (including CVE in Go libraries).
  • 🧑‍🏭 Go: Update Golang to version 1.21.3.
  • 🧑‍🏭 Docs: Missed documentation about Dynamic Workers Scaling: link

v2023.3.0

05 Oct 23:30
90544d7
Compare
Choose a tag to compare

Description of Changes

🚀 v2023.3.0 🚀

🔥 Features:

RR Core:

👀 JOBS plugin:

  • ✒️ AMQP Driver: Support for a custom routing_key in the JOBS payload: FR, (thanks @rauanmayemir)
  • ✒️ JOBS plugin: Parallel pipelines start/stop/destroy initialization. If you have much number of the pipelines,
    this feature should significantly reduce RR startup/shutdown time: FR, (thanks @Kaspiman)

👀 KV drivers (all):

  • ✒️ Support for OTEL across all KV drivers: FR

👀 App-Logger plugin:

  • ✒️ Added new methods for your logger to log with context (message + key-values array): FR, (thanks @Baiquette)

👀 Temporal plugin:

  • ✒️ Replay API support [SINCE PHP-SDK 2.6.0]: FR
  • ✒️ Add support for the Worker Versioning: FR

👀 Service plugin:

  • ✒️ Support for the user/group per-service: FR, (thanks @Kaspiman)

Configuration example:

service:
    schedule:run:
        command: "bin/console schedule:run"
        process_num: 1
        exec_timeout: 0s
        remain_after_exit: true
        service_name_in_log: false
        restart_sec: 60
        user: www-data  # <---------- [NEW]
        group: www-data # <---------- [NEW]

👀 HTTP plugin:

  • ✒️ Response streaming support FR, (thanks @roxblnfk)

Worker example:

<?php

require __DIR__ . '/vendor/autoload.php';

use Spiral\RoadRunner;

ini_set('display_errors', 'stderr');
require __DIR__ . "/vendor/autoload.php";

$worker = RoadRunner\Worker::create();
$http = new RoadRunner\Http\HttpWorker($worker);
$read = static function (): Generator {
    foreach (\file(__DIR__ . '/test.txt') as $line) {
        try {
            yield $line;
        } catch (Spiral\RoadRunner\Http\Exception\StreamStoppedException) {
            // Just stop sending data
            return;
        }
    }
};

try {
    while ($req = $http->waitRequest()) {
        $http->respond(200, $read());
    }
} catch (\Throwable $e) {
    $worker->error($e->getMessage());
}
  • ✒️ Support for the 103 Early Hints via streamed response: FR, (thanks @azjezz)

Worker example:

<?php

use Spiral\RoadRunner;

ini_set('display_errors', 'stderr');
require __DIR__ . "/vendor/autoload.php";

$worker = RoadRunner\Worker::create();
$http = new RoadRunner\Http\HttpWorker($worker);
$read = static function (): Generator {
    $limit = 10;
    foreach (\file(__DIR__ . '/test.txt') as $line) {
        foreach (explode('"', $line) as $chunk) {
            try {
                usleep(50_000);
                yield $chunk;
            } catch (Spiral\RoadRunner\Http\Exception\StreamStoppedException $e) {
                // Just stop sending data
                return;
            }
            if (--$limit === 0) {
                return;
            }
        }
    }
};


try {
    while ($req = $http->waitRequest()) {
        $http->respond(103, '', headers: ['Link' => ['</style111.css>; rel=preload; as=style'], 'X-103' => ['103']], endOfStream: false);
        $http->respond(200, $read(), headers: ['X-200' => ['200']], endOfStream: true); // your regular response
    }
} catch (\Throwable $e) {
    $worker->error($e->getMessage());
}

👀 Server plugin:

  • ✒️ RAW command support: Support for raw commands, which are not validated by RR and may contain spaces. Note that this feature is only supported via .rr.yaml configuration: FR, (thanks @nunomaduro)
    First argument should be a command (executable) and the rest of the arguments are passed to the command as arguments.
version: "3"

server:
  command: ["php", "../../php_test_files/client.php echo pipes"]
  relay: "pipes"
  relay_timeout: "20s"
version: "3"

server:
    command:
      - "php"
      - "../../php_test_files/client.php echo pipes"
    relay: "pipes"
    relay_timeout: "20s"

🩹 Fixes:

  • 🐛 RR Core: Actualize, according to the docs ./rr jobs list/stop/resume commands: PR, (thanks @gam6itko).
  • 🐛 JOBS plugin: Correctly handle OTEL span on listener error: PR, (thanks @Kaspiman).
  • 🐛 RR tests: Fix tests failures on Darwin: PR, (thanks @shyim).
  • 🐛 Streaming: Add stream timeout (will be configurable in the next release). Fix loss of the first chunk of the streamed response.

🧹 Chore:

  • 🧑‍🏭 Golang: Update Golang version to v1.21.
  • 🧑‍🏭 Dependencies: update project dependencies.