Skip to content

Commit 581477d

Browse files
authored
[#2234]: release/v2025.1.3
2 parents b67b3ae + 75a1e3c commit 581477d

File tree

9 files changed

+3193
-315
lines changed

9 files changed

+3193
-315
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ jobs:
8686
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
8787
GPG_PASS: ${{secrets.GPG_PASS}}
8888
CGO_ENABLED: 0
89+
GOEXPERIMENT: greenteagc
8990
LDFLAGS: >-
9091
-s
9192
-X github.com/roadrunner-server/roadrunner/v2025/internal/meta.version=${{ steps.values.outputs.version }}

.github/workflows/schema.yaml

Lines changed: 0 additions & 38 deletions
This file was deleted.

.rr.yaml

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -932,6 +932,18 @@ http:
932932
# Default: 128
933933
max_concurrent_streams: 128
934934

935+
# HTTP/3 settings (experimental). Enable QUIC + HTTP/3 on a separate (optional) address.
936+
# Provide key+cert here if ACME is not configured (same as for the TLS section above).
937+
http3:
938+
# Host and port to listen on for HTTP/3.
939+
#
940+
# Default: disabled (section absent)
941+
address: 127.0.0.1:8443
942+
# Path to the certificate (must be provided together with the key if section enabled).
943+
# cert: "/ssl/cert.crt"
944+
# Path to the private key.
945+
# key: "/ssl/key.pem"
946+
935947
# Redis section.
936948
redis:
937949
# UniversalClient is an abstract client which - based on the provided options -
@@ -964,6 +976,15 @@ redis:
964976
idle_check_freq: 0s # accepted values [1s, 5m, 3h]
965977
read_only: false
966978

979+
# Optional TLS configuration for Redis (leave section absent to disable TLS).
980+
# tls:
981+
# # Path to the CA certificate (required if section enabled).
982+
# root_ca: "/ssl/ca.crt"
983+
# # (Optional) Client certificate + key if mTLS required.
984+
# # cert: "/ssl/cert.crt"
985+
# # key: "/ssl/key.pem"
986+
# # client_auth_type: no_client_certs
987+
967988
# Application metrics in Prometheus format (docs: https://roadrunner.dev/docs/plugins-metrics/2.x/en). Drop this section
968989
# for this feature disabling.
969990
metrics:
@@ -1005,6 +1026,12 @@ status:
10051026
# Default: 503
10061027
unavailable_status_code: 503
10071028

1029+
# Maximum duration (in seconds) to wait for a complete response from the queried plugin(s).
1030+
# If the plugin does not respond within this time RR returns `unavailable_status_code`.
1031+
#
1032+
# Default: 60
1033+
check_timeout: 60
1034+
10081035
# Automatically detect PHP file changes and reload connected services
10091036
# (docs: https://roadrunner.dev/docs/plugins-reload/2.x/en). Drop this section for this feature disabling.
10101037
reload:
@@ -1671,6 +1698,10 @@ jobs:
16711698
# Optional, default is chosen in the order preferred based on broker support. Possible values: gzip, snappy, lz4, zstd.
16721699
compression_codec: gzip
16731700

1701+
# Partitioning strategy to use. Possible values: Manual, Uniform, RoundRobin, LeastBackup, Sticky.
1702+
# Default (if omitted): Uniform
1703+
partitioning_strategy: Uniform
1704+
16741705
# Kafka Consumer options. Needed to consume messages from the Kafka cluster.
16751706
#
16761707
# Optional, needed only if `consume` is used.
@@ -1765,6 +1796,16 @@ jobs:
17651796
# Optional, default: false.
17661797
block_rebalance_on_poll: true
17671798

1799+
# InstanceID switches the group member from dynamic to static membership.
1800+
# Optional.
1801+
# instance_id: rr-instance-1
1802+
1803+
# SASL options specific for this pipeline (optional). If omitted, global driver SASL settings are used.
1804+
sasl_options:
1805+
mechanism: plain
1806+
username: foo
1807+
password: bar
1808+
17681809
# list of pipelines to be consumed by the server automatically at the start, keep empty if you want to start consuming manually
17691810
consume:
17701811
[
@@ -2067,8 +2108,8 @@ centrifuge:
20672108

20682109
# gRPC server API address (docs: https://centrifugal.dev/docs/server/server_api#grpc-api)
20692110
#
2070-
# Optional, default: tcp://127.0.0.1:30000. Centrifugo: `grpc_api` should be set to true and `grpc_port` should be the same as in the RR's config.
2071-
grpc_api_address: tcp://127.0.0.1:30000
2111+
# Optional, default: tcp://127.0.0.1:10000. Centrifugo: `grpc_api` should be set to true and `grpc_port` should match this value.
2112+
grpc_api_address: tcp://127.0.0.1:10000
20722113

20732114
# Use gRPC gzip compressor
20742115
#

AGENTS.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Repository Guidelines
2+
3+
This guide helps contributors work efficiently on the RoadRunner core (Go) CLI and runtime.
4+
5+
## Project Structure & Module Organization
6+
- `cmd/rr/`: CLI entrypoint (`main.go`) and basic CLI tests.
7+
- `internal/`: CLI commands, debug helpers, metadata, RPC, service wiring.
8+
- `lib/`: Public Go API to embed and control RoadRunner (`RR` type).
9+
- `schemas/`: YAML schemas and config examples; `.rr.yaml` at repo root.
10+
- `benchmarks/`, `container/`: Performance samples and container settings.
11+
- Tests live alongside code as `*_test.go` files.
12+
13+
## Build, Test, and Development Commands
14+
- `make build` — build the `rr` binary to `./rr`.
15+
- `make test` — run `go test -v -race ./...` across modules.
16+
- `./rr serve -c .rr.yaml` — run locally with the sample config.
17+
- `dlv debug cmd/rr/main.go -- serve -c .rr-sample-bench-http.yaml` — debug run (needs Delve).
18+
- `golangci-lint run` — lint/format per `.golangci.yml` (install locally).
19+
20+
## Coding Style & Naming Conventions
21+
- Go 1.x standards: `gofmt`/`goimports`; tabs; 120‑char lines (see linter config).
22+
- Package names: short, lower‑case; exported identifiers use Go’s `UpperCamelCase`.
23+
- Errors: wrap with `%w`; prefer sentinel/typed errors; no panics in library code.
24+
- Keep functions small; avoid globals (see `gochecknoglobals`); prefer context‑aware APIs.
25+
26+
## Testing Guidelines
27+
- Use table‑driven tests; place in `*_test.go`. Call `t.Parallel()` where safe.
28+
- Run with race detector and coverage: `go test -race -cover ./...`.
29+
- Add tests for new CLI flags, config parsing, and plugin wiring. Keep fixtures minimal.
30+
31+
## Commit & Pull Request Guidelines
32+
- Conventional commits: `feat:`, `fix:`, `chore:`, `docs:`, `refactor:`, `test:`, `ci:`.
33+
- PRs must include: clear description, linked issues, test updates, and config/schema changes if applicable.
34+
- Ensure `make test` and `golangci-lint run` pass; include usage examples for CLI‑related changes.
35+
36+
## Security & Configuration Tips
37+
- Never commit secrets; prefer `.env` loaded via `DOTENV_PATH` or `--dotenv`.
38+
- Debug server (`-d`) listens on `:6061`; avoid exposing in production.

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ ENV LDFLAGS="-s \
1515
-X github.com/roadrunner-server/roadrunner/v2025/internal/meta.version=$APP_VERSION \
1616
-X github.com/roadrunner-server/roadrunner/v2025/internal/meta.buildTime=$BUILD_TIME"
1717

18+
# enable Go greentea GC experiment during build
19+
ENV GOEXPERIMENT=greenteagc
20+
1821
# compile binary file
1922
RUN set -x
2023
RUN go mod download

go.mod

Lines changed: 49 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -10,49 +10,49 @@ require (
1010
github.com/fatih/color v1.18.0
1111
github.com/joho/godotenv v1.5.1
1212
github.com/olekukonko/tablewriter v1.0.9
13-
github.com/roadrunner-server/amqp/v5 v5.2.2
13+
github.com/roadrunner-server/amqp/v5 v5.2.3
1414
github.com/roadrunner-server/api/v4 v4.22.1
15-
github.com/roadrunner-server/app-logger/v5 v5.1.8
16-
github.com/roadrunner-server/beanstalk/v5 v5.1.8
17-
github.com/roadrunner-server/boltdb/v5 v5.1.8
18-
github.com/roadrunner-server/centrifuge/v5 v5.1.8
19-
github.com/roadrunner-server/config/v5 v5.1.8
15+
github.com/roadrunner-server/app-logger/v5 v5.1.9
16+
github.com/roadrunner-server/beanstalk/v5 v5.1.9
17+
github.com/roadrunner-server/boltdb/v5 v5.1.9
18+
github.com/roadrunner-server/centrifuge/v5 v5.1.9
19+
github.com/roadrunner-server/config/v5 v5.1.9
2020
github.com/roadrunner-server/endure/v2 v2.6.2
2121
github.com/roadrunner-server/errors v1.4.1
22-
github.com/roadrunner-server/google-pub-sub/v5 v5.1.8
22+
github.com/roadrunner-server/google-pub-sub/v5 v5.1.9
2323
github.com/roadrunner-server/goridge/v3 v3.8.3
24-
github.com/roadrunner-server/grpc/v5 v5.2.2
25-
github.com/roadrunner-server/gzip/v5 v5.1.8
26-
github.com/roadrunner-server/headers/v5 v5.1.8
27-
github.com/roadrunner-server/http/v5 v5.2.7
28-
github.com/roadrunner-server/informer/v5 v5.1.8
29-
github.com/roadrunner-server/jobs/v5 v5.1.8
30-
github.com/roadrunner-server/kafka/v5 v5.2.4
31-
github.com/roadrunner-server/kv/v5 v5.2.8
32-
github.com/roadrunner-server/lock/v5 v5.1.8
33-
github.com/roadrunner-server/logger/v5 v5.1.8
34-
github.com/roadrunner-server/memcached/v5 v5.1.8
35-
github.com/roadrunner-server/memory/v5 v5.2.8
36-
github.com/roadrunner-server/metrics/v5 v5.1.8
37-
github.com/roadrunner-server/nats/v5 v5.1.8
38-
github.com/roadrunner-server/otel/v5 v5.3.0
24+
github.com/roadrunner-server/grpc/v5 v5.2.3
25+
github.com/roadrunner-server/gzip/v5 v5.1.9
26+
github.com/roadrunner-server/headers/v5 v5.1.9
27+
github.com/roadrunner-server/http/v5 v5.2.8
28+
github.com/roadrunner-server/informer/v5 v5.1.9
29+
github.com/roadrunner-server/jobs/v5 v5.1.9
30+
github.com/roadrunner-server/kafka/v5 v5.2.5
31+
github.com/roadrunner-server/kv/v5 v5.2.9
32+
github.com/roadrunner-server/lock/v5 v5.1.9
33+
github.com/roadrunner-server/logger/v5 v5.1.9
34+
github.com/roadrunner-server/memcached/v5 v5.1.9
35+
github.com/roadrunner-server/memory/v5 v5.2.9
36+
github.com/roadrunner-server/metrics/v5 v5.1.9
37+
github.com/roadrunner-server/nats/v5 v5.1.9
38+
github.com/roadrunner-server/otel/v5 v5.3.1
3939
github.com/roadrunner-server/pool v1.1.3
40-
github.com/roadrunner-server/prometheus/v5 v5.1.7
41-
github.com/roadrunner-server/proxy_ip_parser/v5 v5.1.8
42-
github.com/roadrunner-server/redis/v5 v5.1.9
43-
github.com/roadrunner-server/resetter/v5 v5.1.8
44-
github.com/roadrunner-server/rpc/v5 v5.1.8
45-
github.com/roadrunner-server/send/v5 v5.1.5
46-
github.com/roadrunner-server/server/v5 v5.2.9
47-
github.com/roadrunner-server/service/v5 v5.1.8
48-
github.com/roadrunner-server/sqs/v5 v5.1.8
49-
github.com/roadrunner-server/static/v5 v5.1.6
50-
github.com/roadrunner-server/status/v5 v5.1.8
51-
github.com/roadrunner-server/tcp/v5 v5.1.8
40+
github.com/roadrunner-server/prometheus/v5 v5.1.8
41+
github.com/roadrunner-server/proxy_ip_parser/v5 v5.1.9
42+
github.com/roadrunner-server/redis/v5 v5.1.10
43+
github.com/roadrunner-server/resetter/v5 v5.1.9
44+
github.com/roadrunner-server/rpc/v5 v5.1.9
45+
github.com/roadrunner-server/send/v5 v5.1.6
46+
github.com/roadrunner-server/server/v5 v5.2.10
47+
github.com/roadrunner-server/service/v5 v5.1.9
48+
github.com/roadrunner-server/sqs/v5 v5.1.9
49+
github.com/roadrunner-server/static/v5 v5.1.7
50+
github.com/roadrunner-server/status/v5 v5.1.9
51+
github.com/roadrunner-server/tcp/v5 v5.1.9
5252
github.com/spf13/cobra v1.10.1
5353
github.com/spf13/viper v1.21.0
5454
github.com/stretchr/testify v1.11.1
55-
github.com/temporalio/roadrunner-temporal/v5 v5.8.0
55+
github.com/temporalio/roadrunner-temporal/v5 v5.9.0
5656
go.uber.org/automaxprocs v1.6.0
5757
)
5858

@@ -68,22 +68,20 @@ require (
6868
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
6969
cloud.google.com/go/compute/metadata v0.8.0 // indirect
7070
cloud.google.com/go/iam v1.5.2 // indirect
71-
cloud.google.com/go/pubsub v1.50.1 // indirect
7271
cloud.google.com/go/pubsub/v2 v2.0.0 // indirect
73-
github.com/aws/aws-sdk-go v1.55.8 // indirect
7472
github.com/aws/aws-sdk-go-v2 v1.39.0 // indirect
75-
github.com/aws/aws-sdk-go-v2/config v1.31.7 // indirect
76-
github.com/aws/aws-sdk-go-v2/credentials v1.18.11 // indirect
73+
github.com/aws/aws-sdk-go-v2/config v1.31.8 // indirect
74+
github.com/aws/aws-sdk-go-v2/credentials v1.18.12 // indirect
7775
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 // indirect
7876
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 // indirect
7977
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 // indirect
8078
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
8179
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect
8280
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 // indirect
83-
github.com/aws/aws-sdk-go-v2/service/sqs v1.42.4 // indirect
84-
github.com/aws/aws-sdk-go-v2/service/sso v1.29.2 // indirect
85-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.3 // indirect
86-
github.com/aws/aws-sdk-go-v2/service/sts v1.38.3 // indirect
81+
github.com/aws/aws-sdk-go-v2/service/sqs v1.42.5 // indirect
82+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.3 // indirect
83+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4 // indirect
84+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.4 // indirect
8785
github.com/aws/smithy-go v1.23.0 // indirect
8886
github.com/beanstalkd/go-beanstalk v0.2.0 // indirect
8987
github.com/beorn7/perks v1.0.1 // indirect
@@ -114,7 +112,6 @@ require (
114112
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.2 // indirect
115113
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect
116114
github.com/inconshreveable/mousetrap v1.1.0 // indirect
117-
github.com/jmespath/go-jmespath v0.4.0 // indirect
118115
github.com/klauspost/compress v1.18.0 // indirect
119116
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
120117
github.com/libdns/libdns v1.1.1 // indirect
@@ -129,7 +126,7 @@ require (
129126
github.com/nats-io/nkeys v0.4.11 // indirect
130127
github.com/nats-io/nuid v1.0.1 // indirect
131128
github.com/nexus-rpc/sdk-go v0.4.0 // indirect
132-
github.com/olekukonko/cat v0.0.0-20250908003013-b0de306c343b // indirect
129+
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
133130
github.com/olekukonko/errors v1.1.0 // indirect
134131
github.com/olekukonko/ll v0.1.1 // indirect
135132
github.com/openzipkin/zipkin-go v0.4.3 // indirect
@@ -144,14 +141,14 @@ require (
144141
github.com/quic-go/qpack v0.5.1 // indirect
145142
github.com/quic-go/quic-go v0.54.0 // indirect
146143
github.com/rabbitmq/amqp091-go v1.10.0 // indirect
147-
github.com/redis/go-redis/extra/rediscmd/v9 v9.13.0 // indirect
148-
github.com/redis/go-redis/extra/redisotel/v9 v9.13.0 // indirect
149-
github.com/redis/go-redis/extra/redisprometheus/v9 v9.13.0 // indirect
150-
github.com/redis/go-redis/v9 v9.13.0 // indirect
144+
github.com/redis/go-redis/extra/rediscmd/v9 v9.14.0 // indirect
145+
github.com/redis/go-redis/extra/redisotel/v9 v9.14.0 // indirect
146+
github.com/redis/go-redis/extra/redisprometheus/v9 v9.14.0 // indirect
147+
github.com/redis/go-redis/v9 v9.14.0 // indirect
151148
github.com/rivo/uniseg v0.4.7 // indirect
152149
github.com/roadrunner-server/context v1.1.0 // indirect
153150
github.com/roadrunner-server/events v1.0.1 // indirect
154-
github.com/roadrunner-server/priority_queue v1.0.5 // indirect
151+
github.com/roadrunner-server/priority_queue v1.0.6 // indirect
155152
github.com/roadrunner-server/tcplisten v1.5.2 // indirect
156153
github.com/robfig/cron v1.2.0 // indirect
157154
github.com/rs/cors v1.11.1 // indirect
@@ -201,7 +198,7 @@ require (
201198
go.uber.org/multierr v1.11.0 // indirect
202199
go.uber.org/zap v1.27.0 // indirect
203200
go.uber.org/zap/exp v0.3.0 // indirect
204-
go.yaml.in/yaml/v2 v2.4.2 // indirect
201+
go.yaml.in/yaml/v2 v2.4.3 // indirect
205202
go.yaml.in/yaml/v3 v3.0.4 // indirect
206203
golang.org/x/crypto v0.42.0 // indirect
207204
golang.org/x/mod v0.28.0 // indirect
@@ -211,7 +208,7 @@ require (
211208
golang.org/x/sys v0.36.0 // indirect
212209
golang.org/x/text v0.29.0 // indirect
213210
golang.org/x/time v0.13.0 // indirect
214-
golang.org/x/tools v0.36.0 // indirect
211+
golang.org/x/tools v0.37.0 // indirect
215212
google.golang.org/api v0.249.0 // indirect
216213
google.golang.org/genproto v0.0.0-20250908214217-97024824d090 // indirect
217214
google.golang.org/genproto/googleapis/api v0.0.0-20250908214217-97024824d090 // indirect

0 commit comments

Comments
 (0)