yes 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -1
  3. data/lib/yes/version.rb +1 -1
  4. metadata +9 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5eff49dca0523282e364a82fb408cc06d00742f2fca7056b82384ac091c7e107
4
- data.tar.gz: a2a87f022f74b86b515bc66f8862086a9c036c677e9a1202226361dc5ba48243
3
+ metadata.gz: 716bbc2936a7d3ab1ebf51056dbf9b9def90436798a809440a2660f5298b2692
4
+ data.tar.gz: b75d0c306e0054e106c2d5ee47580881cab3b386f07ef25300577d3493e2ab16
5
5
  SHA512:
6
- metadata.gz: b28a95c77f846978113afb0e33996670b693413d972f9b8b20b5734bcafdf783cdec7c5122865e691e37becd8934ae9b800b63fe0e8e74bd458b7015b52eff96
7
- data.tar.gz: 89dd8e95c3ef2cedc6f796e3052886c5948c865f8f8e844a9d23e9ca6d2a00dab1aae61f6f1fc8802ba9f92177ad92d9fef9b54149fadbbdd5e13c1486f426dd
6
+ metadata.gz: e9f091c81746e666e9d5666dea65ae2fe707a1fe745ca456a1b66a3fec0200005aa07c847e11b109a202983e077b4c5bd650803e04a6eff12aed587d53e0c274
7
+ data.tar.gz: 6d47b1f1366ca84dfd206ae5f8db5acb509ff8cb05caa3ec82b4bca48727f170b0201545b3ba432f7945c4436a7000df513db71a55a51bf4fdfb3f93f0ef6963
data/CHANGELOG.md CHANGED
@@ -2,6 +2,43 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [2.4.0] - 2026-09-07
6
+
7
+ ### yes-core
8
+
9
+ #### Added
10
+ - `Authorization::CerbosGrpcRetryPolicy` and the `cerbos_grpc_channel_args` configuration option.
11
+ The Cerbos client now carries a gRPC retry policy that retries `UNAVAILABLE` calls (up to 4
12
+ attempts, exponential backoff from 100ms) so a PDP pod that is killed or restarting mid-check
13
+ no longer surfaces as `Cerbos::Error::Unavailable`.
14
+
15
+ #### Changed
16
+ - `Authorization::CerbosClientProvider` keeps one `Cerbos::Client` (one gRPC channel) per
17
+ process instead of building a new client, and opening new connections, on every check. The
18
+ client is rebuilt after a fork; `CerbosClientProvider.reset!` drops it explicitly (tests).
19
+
20
+ ## [2.3.0] - 2026-09-03
21
+
22
+ ### yes-core
23
+
24
+ #### Added
25
+ - `CommandHandling::RevisionConflictBackoff` and `RevisionConflictWaiting`: an
26
+ exponential, jittered backoff (10 ms → 1 s per attempt, 2 s in total) applied
27
+ between revision-conflict retries while the read model still lags the stream.
28
+
29
+ #### Changed
30
+ - `CommandExecutor` and `CommandGroupExecutor` wait for the read model to catch up
31
+ before retrying a `PgEventstore::WrongExpectedRevisionError` instead of retrying
32
+ immediately; conflicts the same process caused still retry at once.
33
+ - The `ConcurrentUpdateError` retries take their delay from
34
+ `RevisionConflictBackoff.schedule`; timing unchanged.
35
+
36
+ #### Fixed
37
+ - `EventPublisher#verify_external_revisions!` and `Stateless::Handler#revision_error!`
38
+ raise `WrongExpectedRevisionError` with pg_eventstore's field order: `revision` is the
39
+ store's value, `expected_revision` the caller's. Both were inverted.
40
+
41
+
5
42
  ## [2.2.0] - 2026-09-01
6
43
 
7
44
  ### yes-core
@@ -135,7 +172,7 @@ one-way, downtime-requiring operation — see the `pg_eventstore` upgrade notes.
135
172
  `event.link_global_position`, in `Commands::Stateless::Handler` and
136
173
  `CommandHandling::EventPublisher`. `pg_eventstore` v3 drops `events.link_id`
137
174
  (migration 13) in favour of the bigint `link_global_position`, so `Event#link_id`
138
- raises `NoMethodError`. Mirrors the same change in `yousty-eventsourcing` 16.0.0.
175
+ raises `NoMethodError`.
139
176
  **Update any dashboards or trace queries keyed on `event.link_id`.**
140
177
 
141
178
  ### yes-auth
data/lib/yes/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yes
4
- VERSION = '2.2.0'
4
+ VERSION = '2.4.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 'yes'
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nico Ritsche
@@ -15,56 +15,56 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 2.2.0
18
+ version: 2.4.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 2.2.0
25
+ version: 2.4.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: yes-command-api
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - '='
31
31
  - !ruby/object:Gem::Version
32
- version: 2.2.0
32
+ version: 2.4.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: 2.2.0
39
+ version: 2.4.0
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: yes-core
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: 2.2.0
46
+ version: 2.4.0
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - '='
52
52
  - !ruby/object:Gem::Version
53
- version: 2.2.0
53
+ version: 2.4.0
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: yes-read-api
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - '='
59
59
  - !ruby/object:Gem::Version
60
- version: 2.2.0
60
+ version: 2.4.0
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - '='
66
66
  - !ruby/object:Gem::Version
67
- version: 2.2.0
67
+ version: 2.4.0
68
68
  description: Event sourcing framework for Ruby on Rails applications
69
69
  email:
70
70
  - nico.ritsche@yousty.ch