diff options
-rw-r--r-- | CHANGELOG.md | 343 | ||||
-rw-r--r-- | plugins/http/attributes/attributes.go | 6 |
2 files changed, 171 insertions, 178 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 897877d3..7839d5a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,270 +1,259 @@ -CHANGELOG -========= +# CHANGELOG -v2.4.0 (02.09.2021) -------------------- +## v2.4.1 (10.09.2021) + +## ๐ฉน Fixes: + +- ๐ Fix: bug with not-idempotent call to the `attributes.Init` + +## v2.4.0 (02.09.2021) ## ๐ Internal BC: -- ๐จ Pool, worker interfaces: payload now passed and returned by the pointer. +- ๐จ Pool, worker interfaces: payload now passed and returned by the pointer. ## ๐ New: -- โ๏ธ Long-awaited, reworked `Jobs` plugin with pluggable drivers. Now you can allocate/destroy pipelines in the runtime. Drivers included in the initial release: `RabbitMQ (0-9-1)`, `SQS v2`, `beanstalk`, `memory` and local queue powered by the `boltdb`. [PR](https://github.com/spiral/roadrunner/pull/726) -- โ๏ธ Support for the IPv6 (`tcp|http(s)|empty [::]:port`, `tcp|http(s)|empty [::1]:port`, `tcp|http(s)|empty :// [0:0:0:0:0:0:0:1]:port`) for RPC, HTTP and other plugins. [RFC](https://datatracker.ietf.org/doc/html/rfc2732#section-2) -- โ๏ธ Support for the Docker images via GitHub packages. -- โ๏ธ Go 1.17 support for the all spiral packages. +- โ๏ธ Long-awaited, reworked `Jobs` plugin with pluggable drivers. Now you can allocate/destroy pipelines in the runtime. Drivers included in the initial release: `RabbitMQ (0-9-1)`, `SQS v2`, `beanstalk`, `memory` and local queue powered by the `boltdb`. [PR](https://github.com/spiral/roadrunner/pull/726) +- โ๏ธ Support for the IPv6 (`tcp|http(s)|empty [::]:port`, `tcp|http(s)|empty [::1]:port`, `tcp|http(s)|empty :// [0:0:0:0:0:0:0:1]:port`) for RPC, HTTP and other plugins. [RFC](https://datatracker.ietf.org/doc/html/rfc2732#section-2) +- โ๏ธ Support for the Docker images via GitHub packages. +- โ๏ธ Go 1.17 support for the all spiral packages. ## ๐ฉน Fixes: -- ๐ Fix: fixed bug with goroutines waiting on the internal worker's container channel, [issue](https://github.com/spiral/roadrunner/issues/750). -- ๐ Fix: RR become unresponsive when new workers failed to re-allocate, [issue](https://github.com/spiral/roadrunner/issues/772). -- ๐ Fix: add `debug` pool config key to the `.rr.yaml` configuration [reference](https://github.com/spiral/roadrunner-binary/issues/79). +- ๐ Fix: fixed bug with goroutines waiting on the internal worker's container channel, [issue](https://github.com/spiral/roadrunner/issues/750). +- ๐ Fix: RR become unresponsive when new workers failed to re-allocate, [issue](https://github.com/spiral/roadrunner/issues/772). +- ๐ Fix: add `debug` pool config key to the `.rr.yaml` configuration [reference](https://github.com/spiral/roadrunner-binary/issues/79). ## ๐ฆ Packages: -- ๐ฆ Update goridge to `v3.2.1` -- ๐ฆ Update temporal to `v1.0.9` -- ๐ฆ Update endure to `v1.0.4` +- ๐ฆ Update goridge to `v3.2.1` +- ๐ฆ Update temporal to `v1.0.9` +- ๐ฆ Update endure to `v1.0.4` ## ๐ Summary: -- RR Milestone [2.4.0](https://github.com/spiral/roadrunner/milestone/29?closed=1) -- RR-Binary Milestone [2.4.0](https://github.com/spiral/roadrunner-binary/milestone/10?closed=1) +- RR Milestone [2.4.0](https://github.com/spiral/roadrunner/milestone/29?closed=1) +- RR-Binary Milestone [2.4.0](https://github.com/spiral/roadrunner-binary/milestone/10?closed=1) --- -v2.3.2 (14.07.2021) -------------------- +## v2.3.2 (14.07.2021) ## ๐ฉน Fixes: -- ๐ Fix: Do not call the container's Stop method after the container stopped by an error. -- ๐ Fix: Bug with ttl incorrectly handled by the worker [PR](https://github.com/spiral/roadrunner/pull/749) -- ๐ Fix: Add `RR_BROADCAST_PATH` to the `websockets` plugin [PR](https://github.com/spiral/roadrunner/pull/749) +- ๐ Fix: Do not call the container's Stop method after the container stopped by an error. +- ๐ Fix: Bug with ttl incorrectly handled by the worker [PR](https://github.com/spiral/roadrunner/pull/749) +- ๐ Fix: Add `RR_BROADCAST_PATH` to the `websockets` plugin [PR](https://github.com/spiral/roadrunner/pull/749) ## ๐ Summary: -- RR Milestone [2.3.2](https://github.com/spiral/roadrunner/milestone/31?closed=1) +- RR Milestone [2.3.2](https://github.com/spiral/roadrunner/milestone/31?closed=1) --- -v2.3.1 (30.06.2021) -------------------- +## v2.3.1 (30.06.2021) ## ๐ New: -- โ๏ธ Rework `broadcast` plugin. Add architecture diagrams to the `doc` - folder. [PR](https://github.com/spiral/roadrunner/pull/732) -- โ๏ธ Add `Clear` method to the KV plugin RPC. [PR](https://github.com/spiral/roadrunner/pull/736) +- โ๏ธ Rework `broadcast` plugin. Add architecture diagrams to the `doc` + folder. [PR](https://github.com/spiral/roadrunner/pull/732) +- โ๏ธ Add `Clear` method to the KV plugin RPC. [PR](https://github.com/spiral/roadrunner/pull/736) ## ๐ฉน Fixes: -- ๐ Fix: Bug with channel deadlock when `exec_ttl` was used and TTL limit - reached [PR](https://github.com/spiral/roadrunner/pull/738) -- ๐ Fix: Bug with healthcheck endpoint when workers were marked as invalid and stay is that state until next - request [PR](https://github.com/spiral/roadrunner/pull/738) -- ๐ Fix: Bugs with `boltdb` storage: [Boom](https://github.com/spiral/roadrunner/issues/717) - , [Boom](https://github.com/spiral/roadrunner/issues/718), [Boom](https://github.com/spiral/roadrunner/issues/719) -- ๐ Fix: Bug with incorrect redis initialization and usage [Bug](https://github.com/spiral/roadrunner/issues/720) -- ๐ Fix: Bug, Goridge duplicate error messages [Bug](https://github.com/spiral/goridge/issues/128) -- ๐ Fix: Bug, incorrect request `origin` check [Bug](https://github.com/spiral/roadrunner/issues/727) +- ๐ Fix: Bug with channel deadlock when `exec_ttl` was used and TTL limit + reached [PR](https://github.com/spiral/roadrunner/pull/738) +- ๐ Fix: Bug with healthcheck endpoint when workers were marked as invalid and stay is that state until next + request [PR](https://github.com/spiral/roadrunner/pull/738) +- ๐ Fix: Bugs with `boltdb` storage: [Boom](https://github.com/spiral/roadrunner/issues/717) + , [Boom](https://github.com/spiral/roadrunner/issues/718), [Boom](https://github.com/spiral/roadrunner/issues/719) +- ๐ Fix: Bug with incorrect redis initialization and usage [Bug](https://github.com/spiral/roadrunner/issues/720) +- ๐ Fix: Bug, Goridge duplicate error messages [Bug](https://github.com/spiral/goridge/issues/128) +- ๐ Fix: Bug, incorrect request `origin` check [Bug](https://github.com/spiral/roadrunner/issues/727) ## ๐ฆ Packages: -- ๐ฆ Update goridge to `v3.1.4` -- ๐ฆ Update temporal to `v1.0.8` +- ๐ฆ Update goridge to `v3.1.4` +- ๐ฆ Update temporal to `v1.0.8` ## ๐ Summary: -- RR Milestone [2.3.1](https://github.com/spiral/roadrunner/milestone/30?closed=1) -- Temporal Milestone [1.0.8](https://github.com/temporalio/roadrunner-temporal/milestone/11?closed=1) -- Goridge Milestone [3.1.4](https://github.com/spiral/goridge/milestone/11?closed=1) +- RR Milestone [2.3.1](https://github.com/spiral/roadrunner/milestone/30?closed=1) +- Temporal Milestone [1.0.8](https://github.com/temporalio/roadrunner-temporal/milestone/11?closed=1) +- Goridge Milestone [3.1.4](https://github.com/spiral/goridge/milestone/11?closed=1) --- -v2.3.0 (08.06.2021) -------------------- +## v2.3.0 (08.06.2021) ## ๐ New: -- โ๏ธ Brand new `broadcast` plugin now has the name - `websockets` with broadcast capabilities. It can handle hundreds of - thousands websocket connections very efficiently (~300k messages per second with 1k connected clients, in-memory bus - on 2CPU cores and 1GB of RAM) [Issue](https://github.com/spiral/roadrunner/issues/513) -- โ๏ธ Protobuf binary messages for the `websockets` and `kv` RPC calls under the - hood. [Issue](https://github.com/spiral/roadrunner/issues/711) -- โ๏ธ Json-schemas for the config file v1.0 (it also registered - in [schemastore.org](https://github.com/SchemaStore/schemastore/pull/1614)) -- โ๏ธ `latest` docker image tag supported now (but we strongly recommend using a versioned tag (like `0.2.3`) instead) -- โ๏ธ Add new option to the `http` config section: `internal_error_code` to override default (500) internal error - code. [Issue](https://github.com/spiral/roadrunner/issues/659) -- โ๏ธ Expose HTTP plugin metrics (workers memory, requests count, requests duration) - . [Issue](https://github.com/spiral/roadrunner/issues/489) -- โ๏ธ Scan `server.command` and find errors related to the wrong path to a `PHP` file, or `.ph`, `.sh` - scripts. [Issue](https://github.com/spiral/roadrunner/issues/658) -- โ๏ธ Support file logger with log rotation [Wiki](https://en.wikipedia.org/wiki/Log_rotation) - , [Issue](https://github.com/spiral/roadrunner/issues/545) +- โ๏ธ Brand new `broadcast` plugin now has the name - `websockets` with broadcast capabilities. It can handle hundreds of + thousands websocket connections very efficiently (~300k messages per second with 1k connected clients, in-memory bus + on 2CPU cores and 1GB of RAM) [Issue](https://github.com/spiral/roadrunner/issues/513) +- โ๏ธ Protobuf binary messages for the `websockets` and `kv` RPC calls under the + hood. [Issue](https://github.com/spiral/roadrunner/issues/711) +- โ๏ธ Json-schemas for the config file v1.0 (it also registered + in [schemastore.org](https://github.com/SchemaStore/schemastore/pull/1614)) +- โ๏ธ `latest` docker image tag supported now (but we strongly recommend using a versioned tag (like `0.2.3`) instead) +- โ๏ธ Add new option to the `http` config section: `internal_error_code` to override default (500) internal error + code. [Issue](https://github.com/spiral/roadrunner/issues/659) +- โ๏ธ Expose HTTP plugin metrics (workers memory, requests count, requests duration) + . [Issue](https://github.com/spiral/roadrunner/issues/489) +- โ๏ธ Scan `server.command` and find errors related to the wrong path to a `PHP` file, or `.ph`, `.sh` + scripts. [Issue](https://github.com/spiral/roadrunner/issues/658) +- โ๏ธ Support file logger with log rotation [Wiki](https://en.wikipedia.org/wiki/Log_rotation) + , [Issue](https://github.com/spiral/roadrunner/issues/545) ## ๐ฉน Fixes: -- ๐ Fix: Bug with `informer.Workers` worked incorrectly: [Bug](https://github.com/spiral/roadrunner/issues/686) -- ๐ Fix: Internal error messages will not be shown to the user (except HTTP status code). Error message will be in - logs: [Bug](https://github.com/spiral/roadrunner/issues/659) -- ๐ Fix: Error message will be properly shown in the log in case of `SoftJob` - error: [Bug](https://github.com/spiral/roadrunner/issues/691) -- ๐ Fix: Wrong applied middlewares for the `fcgi` server leads to the - NPE: [Bug](https://github.com/spiral/roadrunner/issues/701) +- ๐ Fix: Bug with `informer.Workers` worked incorrectly: [Bug](https://github.com/spiral/roadrunner/issues/686) +- ๐ Fix: Internal error messages will not be shown to the user (except HTTP status code). Error message will be in + logs: [Bug](https://github.com/spiral/roadrunner/issues/659) +- ๐ Fix: Error message will be properly shown in the log in case of `SoftJob` + error: [Bug](https://github.com/spiral/roadrunner/issues/691) +- ๐ Fix: Wrong applied middlewares for the `fcgi` server leads to the + NPE: [Bug](https://github.com/spiral/roadrunner/issues/701) ## ๐ฆ Packages: -- ๐ฆ Update goridge to `v3.1.0` +- ๐ฆ Update goridge to `v3.1.0` --- -v2.2.1 (13.05.2021) -------------------- +## v2.2.1 (13.05.2021) ## ๐ฉน Fixes: -- ๐ Fix: revert static plugin. It stays as a separate plugin on the main route (`/`) and supports all the previously - announced features. -- ๐ Fix: remove `build` and other old targets from the Makefile. +- ๐ Fix: revert static plugin. It stays as a separate plugin on the main route (`/`) and supports all the previously + announced features. +- ๐ Fix: remove `build` and other old targets from the Makefile. --- -v2.2.0 (11.05.2021) -------------------- +## v2.2.0 (11.05.2021) ## ๐ New: -- โ๏ธ Reworked `static` plugin. Now, it does not affect the performance of the main route and persist on the separate - file server (within the `http` plugin). Looong awaited feature: `Etag` (+ weak Etags) as well with the `If-Mach` - , `If-None-Match`, `If-Range`, `Last-Modified` - and `If-Modified-Since` tags supported. Static plugin has a bunch of new options such as: `allow`, `calculate_etag` - , `weak` and `pattern`. - ### Option `always` was deleted from the plugin. +- โ๏ธ Reworked `static` plugin. Now, it does not affect the performance of the main route and persist on the separate + file server (within the `http` plugin). Looong awaited feature: `Etag` (+ weak Etags) as well with the `If-Mach` + , `If-None-Match`, `If-Range`, `Last-Modified` + and `If-Modified-Since` tags supported. Static plugin has a bunch of new options such as: `allow`, `calculate_etag` + , `weak` and `pattern`. + ### Option `always` was deleted from the plugin. -- โ๏ธ Update `informer.List` implementation. Now it returns a list with the all available plugins in the runtime. +- โ๏ธ Update `informer.List` implementation. Now it returns a list with the all available plugins in the runtime. ## ๐ฉน Fixes: -- ๐ Fix: issue with wrong ordered middlewares (reverse). Now the order is correct. -- ๐ Fix: issue when RR fails if a user sets `debug` mode with the `exec_ttl` supervisor option. -- ๐ Fix: uniform log levels. Use everywhere the same levels (warn, error, debug, info, panic). +- ๐ Fix: issue with wrong ordered middlewares (reverse). Now the order is correct. +- ๐ Fix: issue when RR fails if a user sets `debug` mode with the `exec_ttl` supervisor option. +- ๐ Fix: uniform log levels. Use everywhere the same levels (warn, error, debug, info, panic). --- -v2.1.1 (29.04.2021) -------------------- +## v2.1.1 (29.04.2021) ## ๐ฉน Fixes: -- ๐ Fix: issue with endure provided wrong logger interface implementation. +- ๐ Fix: issue with endure provided wrong logger interface implementation. -v2.1.0 (27.04.2021) -------------------- +## v2.1.0 (27.04.2021) ## ๐ New: -- โ๏ธ New `service` plugin. Docs: [link](https://roadrunner.dev/docs/beep-beep-service) -- โ๏ธ Stabilize `kv` plugin with `boltdb`, `in-memory`, `memcached` and `redis` drivers. +- โ๏ธ New `service` plugin. Docs: [link](https://roadrunner.dev/docs/beep-beep-service) +- โ๏ธ Stabilize `kv` plugin with `boltdb`, `in-memory`, `memcached` and `redis` drivers. ## ๐ฉน Fixes: -- ๐ Fix: Logger didn't provide an anonymous log instance to a plugins w/o `Named` interface implemented. -- ๐ Fix: http handler was without log listener after `rr reset`. +- ๐ Fix: Logger didn't provide an anonymous log instance to a plugins w/o `Named` interface implemented. +- ๐ Fix: http handler was without log listener after `rr reset`. -v2.0.4 (06.04.2021) -------------------- +## v2.0.4 (06.04.2021) ## ๐ New: -- โ๏ธ Add support for `linux/arm64` platform for docker image (thanks @tarampampam). -- โ๏ธ Add dotenv file support (`.env` in working directory by default; file location can be changed using CLI - flag `--dotenv` or `DOTENV_PATH` environment variable) (thanks @tarampampam). -- ๐ Add a new `raw` mode for the `logger` plugin to keep the stderr log message of the worker unmodified (logger - severity level should be at least `INFO`). -- ๐ Add Readiness probe check. The `status` plugin provides `/ready` endpoint which return the `204` HTTP code if there - are no workers in the `Ready` state and `200 OK` status if there are at least 1 worker in the `Ready` state. +- โ๏ธ Add support for `linux/arm64` platform for docker image (thanks @tarampampam). +- โ๏ธ Add dotenv file support (`.env` in working directory by default; file location can be changed using CLI + flag `--dotenv` or `DOTENV_PATH` environment variable) (thanks @tarampampam). +- ๐ Add a new `raw` mode for the `logger` plugin to keep the stderr log message of the worker unmodified (logger + severity level should be at least `INFO`). +- ๐ Add Readiness probe check. The `status` plugin provides `/ready` endpoint which return the `204` HTTP code if there + are no workers in the `Ready` state and `200 OK` status if there are at least 1 worker in the `Ready` state. ## ๐ฉน Fixes: -- ๐ Fix: bug with the temporal worker which does not follow general graceful shutdown period. +- ๐ Fix: bug with the temporal worker which does not follow general graceful shutdown period. -v2.0.3 (29.03.2021) -------------------- +## v2.0.3 (29.03.2021) ## ๐ฉน Fixes: -- ๐ Fix: slow last response when reached `max_jobs` limit. - -v2.0.2 (06.04.2021) -------------------- - -- ๐ Fix: Bug with required Root CA certificate for the SSL, now it's optional. -- ๐ Fix: Bug with incorrectly consuming metrics collector from the RPC calls (thanks @dstrop). -- ๐ New: HTTP/FCGI/HTTPS internal logs instead of going to the raw stdout will be displayed in the RR logger at - the `Info` log level. -- โก New: Builds for the Mac with the M1 processor (arm64). -- ๐ท Rework ServeHTTP handler logic. Use http.Error instead of writing code directly to the response writer. Other small - improvements. - -v2.0.1 (09.03.2021) -------------------- - -- ๐ Fix: incorrect PHP command validation -- ๐ Fix: ldflags properly inject RR version -- โฌ๏ธ Update: README, links to the go.pkg from v1 to v2 -- ๐ฆ Bump golang version in the Dockerfile and in the `go.mod` to 1.16 -- ๐ฆ Bump Endure container to v1.0.0. - -v2.0.0 (02.03.2021) -------------------- - -- โ๏ธ Add a shared server to create PHP worker pools instead of isolated worker pool in each individual plugin. -- ๐ New plugin system with auto-recovery, easier plugin API. -- ๐ New `logger` plugin to configure logging for each plugin individually. -- ๐ Up to 50% performance increase in HTTP workloads. -- โ๏ธ Add **[Temporal Workflow](https://temporal.io)** plugin to run distributed computations on scale. -- โ๏ธ Add `debug` flag to reload PHP worker ahead of a request (emulates PHP-FPM behavior). -- โ Eliminate `limit` service, now each worker pool includes `supervisor` configuration. -- ๐ New resetter, informer plugins to perform hot reloads and observe loggers in a system. -- ๐ซ Expose more HTTP plugin configuration options. -- ๐ Headers, static and gzip services now located in HTTP config. -- ๐ Ability to configure the middleware sequence. -- ๐ฃ Faster Goridge protocol (eliminated 50% of syscalls). -- ๐พ Add support for binary payloads for RPC (`msgpack`). -- ๐ Server no longer stops when a PHP worker dies (attempts to restart). -- ๐พ New RR binary server downloader. -- ๐ฃ Echoing no longer breaks execution (yay!). -- ๐ Migration to ZapLogger instead of Logrus. -- ๐ฅ RR can no longer stuck when studding down with broken tasks in a pipeline. -- ๐งช More tests, more static analysis. -- ๐ฅ Create a new foundation for new KV, WebSocket, GRPC and Queue plugins. - -v2.0.0-RC.4 (20.02.2021) -------------------- - -- PHP tests use latest signatures (https://github.com/spiral/roadrunner/pull/550). -- Endure container update to v1.0.0-RC.2 version. -- Remove unneeded mutex from the `http.Workers` method. -- Rename `checker` plugin package to `status`, remove `/v1` endpoint prefix (#557). -- Add static, headers, status, gzip plugins to the `main.go`. -- Fix workers pool behavior -> idle_ttl, ttl, max_memory are soft errors and exec_ttl is hard error. - -v2.0.0-RC.3 (17.02.2021) -------------------- - -- Add support for the overwriting `.rr.yaml` keys with values (ref: https://roadrunner.dev/docs/intro-config) -- Make logger plugin optional to define in the config. Default values: level -> `debug`, mode -> `development` -- Add the ability to read env variables from the `.rr.yaml` in the form of: `rpc.listen: {RPC_ADDR}`. Reference: - ref: https://roadrunner.dev/docs/intro-config (Environment Variables paragraph) - -v2.0.0-RC.2 (11.02.2021) -------------------- - -- Update RR to version v2.0.0-RC.2 -- Update Temporal plugin to version v2.0.0-RC.1 -- Update Goridge to version v3.0.1 -- Update Endure to version v1.0.0-RC.1 +- ๐ Fix: slow last response when reached `max_jobs` limit. + +## v2.0.2 (06.04.2021) + +- ๐ Fix: Bug with required Root CA certificate for the SSL, now it's optional. +- ๐ Fix: Bug with incorrectly consuming metrics collector from the RPC calls (thanks @dstrop). +- ๐ New: HTTP/FCGI/HTTPS internal logs instead of going to the raw stdout will be displayed in the RR logger at + the `Info` log level. +- โก New: Builds for the Mac with the M1 processor (arm64). +- ๐ท Rework ServeHTTP handler logic. Use http.Error instead of writing code directly to the response writer. Other small + improvements. + +## v2.0.1 (09.03.2021) + +- ๐ Fix: incorrect PHP command validation +- ๐ Fix: ldflags properly inject RR version +- โฌ๏ธ Update: README, links to the go.pkg from v1 to v2 +- ๐ฆ Bump golang version in the Dockerfile and in the `go.mod` to 1.16 +- ๐ฆ Bump Endure container to v1.0.0. + +## v2.0.0 (02.03.2021) + +- โ๏ธ Add a shared server to create PHP worker pools instead of isolated worker pool in each individual plugin. +- ๐ New plugin system with auto-recovery, easier plugin API. +- ๐ New `logger` plugin to configure logging for each plugin individually. +- ๐ Up to 50% performance increase in HTTP workloads. +- โ๏ธ Add **[Temporal Workflow](https://temporal.io)** plugin to run distributed computations on scale. +- โ๏ธ Add `debug` flag to reload PHP worker ahead of a request (emulates PHP-FPM behavior). +- โ Eliminate `limit` service, now each worker pool includes `supervisor` configuration. +- ๐ New resetter, informer plugins to perform hot reloads and observe loggers in a system. +- ๐ซ Expose more HTTP plugin configuration options. +- ๐ Headers, static and gzip services now located in HTTP config. +- ๐ Ability to configure the middleware sequence. +- ๐ฃ Faster Goridge protocol (eliminated 50% of syscalls). +- ๐พ Add support for binary payloads for RPC (`msgpack`). +- ๐ Server no longer stops when a PHP worker dies (attempts to restart). +- ๐พ New RR binary server downloader. +- ๐ฃ Echoing no longer breaks execution (yay!). +- ๐ Migration to ZapLogger instead of Logrus. +- ๐ฅ RR can no longer stuck when studding down with broken tasks in a pipeline. +- ๐งช More tests, more static analysis. +- ๐ฅ Create a new foundation for new KV, WebSocket, GRPC and Queue plugins. + +## v2.0.0-RC.4 (20.02.2021) + +- PHP tests use latest signatures (https://github.com/spiral/roadrunner/pull/550). +- Endure container update to v1.0.0-RC.2 version. +- Remove unneeded mutex from the `http.Workers` method. +- Rename `checker` plugin package to `status`, remove `/v1` endpoint prefix (#557). +- Add static, headers, status, gzip plugins to the `main.go`. +- Fix workers pool behavior -> idle_ttl, ttl, max_memory are soft errors and exec_ttl is hard error. + +## v2.0.0-RC.3 (17.02.2021) + +- Add support for the overwriting `.rr.yaml` keys with values (ref: https://roadrunner.dev/docs/intro-config) +- Make logger plugin optional to define in the config. Default values: level -> `debug`, mode -> `development` +- Add the ability to read env variables from the `.rr.yaml` in the form of: `rpc.listen: {RPC_ADDR}`. Reference: + ref: https://roadrunner.dev/docs/intro-config (Environment Variables paragraph) + +## v2.0.0-RC.2 (11.02.2021) + +- Update RR to version v2.0.0-RC.2 +- Update Temporal plugin to version v2.0.0-RC.1 +- Update Goridge to version v3.0.1 +- Update Endure to version v1.0.0-RC.1 diff --git a/plugins/http/attributes/attributes.go b/plugins/http/attributes/attributes.go index 81d9f01d..243b6c78 100644 --- a/plugins/http/attributes/attributes.go +++ b/plugins/http/attributes/attributes.go @@ -39,7 +39,11 @@ func (v attrs) del(key string) { // Init returns request with new context and attribute bag. func Init(r *http.Request) *http.Request { - return r.WithContext(context.WithValue(r.Context(), PsrContextKey, attrs{})) + // do not overwrite psr attributes + if val := r.Context().Value(PsrContextKey); val == nil { + return r.WithContext(context.WithValue(r.Context(), PsrContextKey, attrs{})) + } + return r } // All returns all context attributes. |