Skip to content
This repository has been archived by the owner on Feb 3, 2022. It is now read-only.

Commit

Permalink
#92: feat(release): v2.4.0
Browse files Browse the repository at this point in the history
#92: feat(release): `v2.4.0`
  • Loading branch information
rustatian committed Sep 2, 2021
2 parents 9b338dd + dd63e4c commit e481454
Show file tree
Hide file tree
Showing 15 changed files with 112 additions and 178 deletions.
34 changes: 0 additions & 34 deletions .rr-sample-bench-jobs.yaml

This file was deleted.

22 changes: 0 additions & 22 deletions .rr-sample-bench.yaml

This file was deleted.

23 changes: 0 additions & 23 deletions .rr-with-temporal.yaml

This file was deleted.

30 changes: 28 additions & 2 deletions .rr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -744,6 +744,15 @@ reload:
# Default: []
patterns: [ ".php", ".go", ".md" ]

# Boltdb local jobs driver
#
# This option is required to use boltdb driver
boltdb:
# Permissions for hte boltdb database file
#
# This option is optional. Default: 0777
permissions: 0777

# AMQP jobs driver
#
# This option is required to use AMQP driver
Expand Down Expand Up @@ -824,7 +833,7 @@ jobs:
test-local:
# Driver associated with the pipeline
#
# This option is required. Possible values: amqp, ephemeral, sqs, beanstalk
# This option is required. Possible values: amqp, memory, sqs, beanstalk, boltdb
driver: ephemeral
# Pipeline priority
#
Expand All @@ -835,6 +844,23 @@ jobs:
# Default: 100_000.
prefetch: 10000

# Pipeline name
#
# This option is required when defining pipelines via configuration.
test-local-1:
# Driver associated with the pipeline
#
# This option is required. Possible values: amqp, memory, sqs, beanstalk, boltdb
driver: boltdb
# Pipeline priority
#
# If the job has priority set to 0, it will inherit the pipeline's priority. Default: 10.
priority: 10
# Number of job to prefetch from the driver.
#
# Default: 100_000.
prefetch: 10000

test-local-2:
# Driver name
#
Expand Down Expand Up @@ -944,7 +970,7 @@ jobs:


# list of pipelines to be consumed by the server, keep empty if you want to start consuming manually
consume: [ "test-local", "test-local-2", "test-local-3", "test-local-4" ]
consume: [ "test-local", "test-local-1","test-local-2", "test-local-3", "test-local-4" ]

## RoadRunner internal container configuration (docs: https://github.com/spiral/endure).
endure:
Expand Down
70 changes: 24 additions & 46 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
CHANGELOG
=========

v2.4.0 (-.08.2021)
v2.4.0 (02.09.2021)
-------------------

## 💔 Internal BC:
Expand All @@ -10,16 +10,14 @@ v2.4.0 (-.08.2021)

## 👀 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`, `ephemeral` 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.
- ✏️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`, `ephemeral` 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: add `debug` pool config key to the `.rr.yaml`
configuration [reference](https://github.com/spiral/roadrunner-binary/issues/79).
- 🐛 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.
- 🐛 Fix: RR become unresponsive when new workers failed to re-allocate, [issue](https://github.com/spiral/roadrunner/issues/772).

Expand All @@ -28,10 +26,11 @@ v2.4.0 (-.08.2021)
- 📦 Update goridge to `v3.2.1`
- 📦 Update temporal to `v1.0.9`
- 📦 Update RR to `v2.4.0`
- 📦 Update endure to `v1.0.4`

## 📈 Summary:

- RR Milestone [2.4.0](https://github.com/spiral/roadrunner/milestones/2.4.0?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)
Expand All @@ -50,18 +49,14 @@ v2.3.2 (14.07.2021)
v2.3.1 (30.06.2021)
-------------------

- ✏️ Rework `broadcast` plugin. Add architecture diagrams to the `doc`
folder. [PR](https://github.com/spiral/roadrunner/pull/732)
- ✏️ 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 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 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 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)
Expand All @@ -76,32 +71,21 @@ 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))
- ✏️ 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)
- ✏️ 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: 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:

Expand All @@ -112,8 +96,7 @@ 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: 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.

---
Expand All @@ -123,14 +106,9 @@ 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`.
- ✏️ 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.

## 🩹 Fixes:
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
39 changes: 39 additions & 0 deletions dev/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Local testing/development files

### Usage:
1. Build the RR binary with the following command: `make build`. As the result you'll see a RR binary.
2. If you are testing you own plugin (Go), you may use `replace` directive in the root `go.mod` file, for example:
```go
module github.com/spiral/roadrunner-binary/v2

go 1.17

require (
github.com/buger/goterm v1.0.1
github.com/dustin/go-humanize v1.0.0
github.com/fatih/color v1.12.0
github.com/joho/godotenv v1.3.0
github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d
github.com/mattn/go-runewidth v0.0.13
github.com/olekukonko/tablewriter v0.0.5
github.com/spf13/cobra v1.2.1
// SPIRAL ------------
github.com/spiral/endure v1.0.3
github.com/spiral/errors v1.0.12
github.com/spiral/goridge/v3 v3.2.1
github.com/spiral/roadrunner/v2 v2.4.0-rc.1
// ---------------------
github.com/stretchr/testify v1.7.0
// SPIRAL --------------
github.com/temporalio/roadrunner-temporal v1.0.9-beta.1
// ---------------------
github.com/vbauerster/mpb/v5 v5.4.0
)

replace github.com/spiral/roadrunner/v2 => ../roadrunner <----- SAMPLE
```

3. Replace sample worker `psr-worker.php` with your application. You can do that by putting all `dev` env into the folder
with your app and replacing lines 21-24 of the `Dockerfile.local` with your app OR by replacing the sample worker. Also, do not forget to update `.rr-docker.yaml`.

5. Next step is to build docker-compose: `docker-compose up`, that's it. After that, you'll have your app running in local dev env with RR.
File renamed without changes.
4 changes: 2 additions & 2 deletions local_dev/docker-compose.yml → dev/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ services:
nofile:
soft: 65000
hard: 65000
mem_limit: 1024m
cpus: 1
mem_limit: 1024
cpus: 1
restart: always
build:
context: .
Expand Down
File renamed without changes.
14 changes: 6 additions & 8 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ require (
github.com/olekukonko/tablewriter v0.0.5
github.com/spf13/cobra v1.2.1
// SPIRAL ------------
github.com/spiral/endure v1.0.3
github.com/spiral/endure v1.0.4
github.com/spiral/errors v1.0.12
github.com/spiral/goridge/v3 v3.2.1
github.com/spiral/roadrunner/v2 v2.4.0-rc.1
github.com/spiral/roadrunner/v2 v2.4.0
// ---------------------
github.com/stretchr/testify v1.7.0
// SPIRAL --------------
github.com/temporalio/roadrunner-temporal v1.0.9-beta.1
github.com/temporalio/roadrunner-temporal v1.0.9
// ---------------------
github.com/vbauerster/mpb/v5 v5.4.0
)
Expand Down Expand Up @@ -58,7 +58,6 @@ require (
github.com/golang/mock v1.6.0 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/inconshreveable/mousetrap v1.0.0 // indirect
Expand Down Expand Up @@ -88,8 +87,7 @@ require (
github.com/rivo/uniseg v0.2.0 // indirect
github.com/robfig/cron v1.2.0 // indirect
github.com/savsgio/gotils v0.0.0-20210617111740-97865ed5a873 // indirect
github.com/shirou/gopsutil v3.21.7+incompatible // indirect
github.com/smartystreets/assertions v1.1.1 // indirect
github.com/shirou/gopsutil v3.21.8+incompatible // indirect
github.com/spf13/afero v1.6.0 // indirect
github.com/spf13/cast v1.4.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
Expand All @@ -112,9 +110,9 @@ require (
go.uber.org/atomic v1.9.0 // indirect
go.uber.org/multierr v1.7.0 // indirect
go.uber.org/zap v1.19.0 // indirect
golang.org/x/net v0.0.0-20210825183410-e898025ed96a // indirect
golang.org/x/net v0.0.0-20210902165921-8d991716f632 // indirect
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e // indirect
golang.org/x/sys v0.0.0-20210902050250-f475640dd07b // indirect
golang.org/x/text v0.3.7 // indirect
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2 // indirect
Expand Down
Loading

0 comments on commit e481454

Please sign in to comment.