Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release: v2023.3 #1744

Merged
merged 1 commit into from
Oct 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,4 +189,11 @@ jobs:
BUILD_TIME=${{ steps.values.outputs.timestamp }}
tags: |
spiralscout/roadrunner:${{ steps.values.outputs.version_full}}
spiralscout/roadrunner:latest
spiralscout/roadrunner:2023
spiralscout/roadrunner:2023.3

ghcr.io/roadrunner-server/roadrunner:${{ steps.values.outputs.version_full}}
ghcr.io/roadrunner-server/roadrunner:latest
ghcr.io/roadrunner-server/roadrunner:2023
ghcr.io/roadrunner-server/roadrunner:2023.3
59 changes: 49 additions & 10 deletions .rr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,30 @@ service:
restart_sec: 1

otel:
# OpenTelemetry Resources
#
# https://github.com/open-telemetry/opentelemetry-specification/blob/v1.25.0/specification/resource/semantic_conventions/README.md
resources:

# User's service name
#
# Default: RoadRunner
service_name: "rr_test"

# User's service version
#
# Default: RoadRunner
service_version: "1.0.0"

# User's service namespace
#
# Default: RoadRunner
service_namespace: "RR-Shop"

# User's service instance id
#
# Default: Generated UUID
service_instance_id: "UUID"
# Use insecure endpoint (http) or insecure gRPC
#
# Default: false
Expand All @@ -598,16 +622,6 @@ otel:
# Default: empty
custom_url: ""

# User's service name
#
# Default: RoadRunner
service_name: "rr_test"

# User's service version
#
# Default: RoadRunner
service_version: "1.0.0"

# Consumer's endpoint
#
# Default: 127.0.0.1:4318
Expand Down Expand Up @@ -876,6 +890,11 @@ http:
# Default: 60s
reset_timeout: 60s

# Timeout for the stream cancellation. Zero means 60s.
#
# Default: 60s
stream_timeout: 60s

# Timeout for worker destroying before process killing. Zero means 60s.
#
# Default: 60s
Expand Down Expand Up @@ -1313,6 +1332,11 @@ jobs:
# Default: 60s
reset_timeout: 60s

# Timeout for the stream cancellation. Zero means 60s.
#
# Default: 60s
stream_timeout: 60s

# Timeout for worker destroying before process killing. Zero means 60s.
#
# Default: 60s
Expand Down Expand Up @@ -1933,6 +1957,11 @@ grpc:
# Default: 60s
reset_timeout: 60s

# Timeout for the stream cancellation. Zero means 60s.
#
# Default: 60s
stream_timeout: 60s

# Timeout for worker destroying before process killing. Zero means 60s.
#
# Default: 60s
Expand Down Expand Up @@ -2001,6 +2030,11 @@ tcp:
# Default: 60s
reset_timeout: 60s

# Timeout for the stream cancellation. Zero means 60s.
#
# Default: 60s
stream_timeout: 60s

# Timeout for worker destroying before process killing. Zero means 60s.
#
# Default: 60s
Expand Down Expand Up @@ -2127,6 +2161,11 @@ centrifuge:
# Default: 60s
reset_timeout: 60s

# Timeout for the stream cancellation. Zero means 60s.
#
# Default: 60s
stream_timeout: 60s

# Timeout for worker destroying before process killing. Zero means 60s.
#
# Default: 60s
Expand Down
100 changes: 66 additions & 34 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
# CHANGELOG

# <center> πŸš€ v2023.3.0-rc.1 πŸš€ </center>
# <center> πŸš€ v2023.3.0 πŸš€ </center>

## πŸ”₯ Features:

## πŸ‘€ AMQP driver:
### RR Core:

- βœ’οΈ Support for a custom `routing_key` in the JOBS payload: [FR](https://github.com/roadrunner-server/roadrunner/issues/1555), (thanks @rauanmayemir)
- βœ’οΈ `sdnotify` support: [FR](https://github.com/roadrunner-server/roadrunner/pull/1671), (thanks @Kaspiman), Docs: [link](https://roadrunner.dev/docs/app-server-systemd/current/en)

## πŸ‘€ JOBS plugin:

- βœ’οΈ **AMQP Driver:** Support for a custom `routing_key` in the JOBS payload: [FR](https://github.com/roadrunner-server/roadrunner/issues/1555), (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](https://github.com/roadrunner-server/roadrunner/issues/1672), (thanks @Kaspiman)

## πŸ‘€ KV drivers (all):

Expand All @@ -16,28 +22,14 @@

- βœ’οΈ Added new methods for your logger to log with context (message + key-values array): [FR](https://github.com/roadrunner-server/roadrunner/issues/1633), (thanks @Baiquette)

---

# <center> πŸš€ v2023.3.0-beta.2 πŸš€ </center>

## πŸ”₯Features:

## πŸ‘€ Temporal plugin:

- βœ’οΈ Replay API support [SINCE PHP-SDK 2.6.0]: [FR](https://github.com/roadrunner-server/roadrunner/issues/1640)
- βœ’οΈ Add support for the Worker Versioning: [FR](https://github.com/roadrunner-server/roadrunner/issues/1689)

## 🩹 Fixes:

- πŸ› **Streaming**: Add stream timeout (will be configurable in the next release). Fix loss of the first chunk of the streamed response.

---

# <center> πŸš€ v2023.3.0-beta.1 πŸš€ </center>

## πŸ‘€ New

- βœ’οΈ **Service plugin**: Support for the user/group per-service: [FR](https://github.com/roadrunner-server/roadrunner/issues/1570), (thanks @Kaspiman)
## πŸ‘€ Service plugin:

- βœ’οΈ Support for the user/group per-service: [FR](https://github.com/roadrunner-server/roadrunner/issues/1570), (thanks @Kaspiman)
#### Configuration example:
```yaml
service:
Expand All @@ -52,13 +44,14 @@ service:
group: www-data # <---------- [NEW]
```

- βœ’οΈ **Temporal plugin**: Replay API support [SINCE PHP-SDK 2.6.0]: [FR](https://github.com/roadrunner-server/roadrunner/issues/1640)
- βœ’οΈ **RR core**: `sdnotify` support: [FR](https://github.com/roadrunner-server/roadrunner/pull/1671), (thanks @Kaspiman)
- βœ’οΈ **HTTP response streaming support**: : [FR](https://github.com/roadrunner-server/http/pull/152), (thanks @roxblnfk)
## πŸ‘€ HTTP plugin:

- βœ’οΈ Response streaming support [FR](https://github.com/roadrunner-server/http/pull/152), (thanks @roxblnfk)

#### Worker.php example:
Worker example:

```php

<?php

require __DIR__ . '/vendor/autoload.php';
Expand Down Expand Up @@ -90,12 +83,54 @@ try {
}
```

- βœ’οΈ **HTTP plugin**: Support for the `103` Early Hints via streamed response: [FR](https://github.com/roadrunner-server/roadrunner/issues/918), (thanks @roxblnfk)
- βœ’οΈ **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](https://github.com/roadrunner-server/roadrunner/issues/1667), (thanks @nunomaduro)
- βœ’οΈ Support for the `103` Early Hints via streamed response: [FR](https://github.com/roadrunner-server/roadrunner/issues/918), (thanks @azjezz)

Worker example:

```php
<?php

#### Configuration:
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](https://github.com/roadrunner-server/roadrunner/issues/1667), (thanks @nunomaduro)
First argument should be a command (executable) and the rest of the arguments are passed to the command as arguments.
rustatian marked this conversation as resolved.
Show resolved Hide resolved

1.
```yaml
version: "3"

Expand All @@ -116,18 +151,15 @@ server:
relay_timeout: "20s"
```

First argument should be a command (executable) and the rest of the arguments are passed to the command as arguments.

- βœ’οΈ **JOBS plugin**: Parallel pipelines start/stop/destroy initialization. If you have a much number of the pipelines, this feature should significantly reduce RR startup/shutdown time: [FR](https://github.com/roadrunner-server/roadrunner/issues/1672), (thanks @Kaspiman)

## 🩹 Fixes
## 🩹 Fixes:

- πŸ› **RR Core**: Actualize according to the docs `./rr jobs list/stop/resume` commands: [PR](https://github.com/roadrunner-server/roadrunner/pull/1675), (thanks @gam6itko).
- πŸ› **JOBS plugin**: Correctly handle OTEL span on listener error: [PR](https://github.com/roadrunner-server/amqp/pull/87), (thanks @Kaspiman).
- πŸ› **RR tests**: Fix tests failures on Darwin: [PR](https://github.com/roadrunner-server/roadrunner/pull/1680), (thanks @shyim).
- πŸ› **Streaming**: Add stream timeout (will be configurable in the next release). Fix loss of the first chunk of the streamed response.

### <center>🧹 Chore:</center>

### <center>🧹 Chore:</center>
- πŸ§‘β€πŸ­ **Golang**: Update Golang version to v1.21.
- πŸ§‘β€πŸ­ **Dependencies**: update project dependencies.

Expand Down
2 changes: 1 addition & 1 deletion container/plugins.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import (
rrt "github.com/temporalio/roadrunner-temporal/v4"
)

// Plugins returns active plugins for the endure container. Feel free to add or remove any plugins.
// Plugins returns active plugins for the endured container. Feel free to add or remove any plugins.
func Plugins() []any { //nolint:funlen
return []any{
// bundled
Expand Down
Loading
Loading