yes 2.6.0 → 2.7.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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +10 -0
  4. data/lib/yes/version.rb +1 -1
  5. metadata +9 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d2ddb9e50702c3c99ab4cba938f1fabcbe8591d149afa8f3ea76e52541f42bb
4
- data.tar.gz: f8f54a0ec7a1906640c47207d6dfc091dd2cac0f4f5e561fa415903d42eb4fa2
3
+ metadata.gz: 944da2a67e980d1fb3cde4eab7489658750049367f7768ecad8f726211c08f81
4
+ data.tar.gz: 907d2c09c45c4a45c185298d318b5c1578f53bf013497ecbe94909a6665c0345
5
5
  SHA512:
6
- metadata.gz: da2a6ae6bd18505cba5cfdf0a80abe4e6de1be364718cb4a489f7b9c79960656ca803a0a1d02169b111aec07056a9f8eaccfb4581aec8bee416ec7784de2f89a
7
- data.tar.gz: 6e0111d1761b8e098a7bb10244cbe5da922dbe9b69327c32ba99420e5dfafb2eb0c5671e75af4eff3ea7628041c9d852727f8bc7c839cf94307f8ec89220bc4c
6
+ metadata.gz: adf1804ce07f002acb29ba54815e8d21c98a1d1a1be3f6ea44bd97805ae236e58bb201bb5f67c133de56999d3280ddc9caee7a4bacc0a43f1ec0f7b25c874540
7
+ data.tar.gz: 57699ff64dd32932c987d489494d96a3569c294d859ed6bdb5d6f2a31031843e77e9f4e2d2b5b5a1552818df7221d1c4ebf5234bddd5f3810aff21ea6b5bb7e0
data/CHANGELOG.md CHANGED
@@ -4,6 +4,40 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [2.7.0] - 2026-10-29
8
+
9
+ ### yes-core
10
+
11
+ #### Added
12
+ - `Yes::Core::Commands::Bus#call` accepts `extra_notifier_classes:`, a list of command notifier classes that
13
+ run for that call only. They are appended to the configured `command_notifier_classes`, get the same
14
+ `notifier_options`, and also run when commands are processed inline. `Yes::Core::Commands::Processor#perform`
15
+ takes their names as an optional last argument. No new argument is passed to the processor unless per-call
16
+ notifiers are given, so jobs enqueued before the upgrade and custom processors keep working.
17
+
18
+ ## [2.6.1] - 2026-10-28
19
+
20
+ ### yes-core
21
+
22
+ #### Changed
23
+ - `CerbosGrpcRetryPolicy.channel_args` now also caps the gRPC reconnect backoff (100ms initial/min, 1s max).
24
+ After a refused connection (e.g. a Cerbos pod that is shutting down) the channel otherwise stays in its
25
+ default reconnect backoff, longer than the retry window, and fails every call of the process for many seconds.
26
+
27
+ ### yes-command-api
28
+
29
+ #### Changed
30
+ - `CommandsController` responds with `503 Service Unavailable` and `Retry-After: 1` instead of a 500 when
31
+ Cerbos is unavailable (`Cerbos::Error::Unavailable`, `Cerbos::Error::DeadlineExceeded`). No command was
32
+ executed, so the request can be retried. The error is still recorded on the span and reported via `Rails.error`.
33
+
34
+ ### yes-read-api
35
+
36
+ #### Changed
37
+ - `QueriesController` responds with `503 Service Unavailable` and `Retry-After: 1` instead of a 500 when
38
+ Cerbos is unavailable (`Cerbos::Error::Unavailable`, `Cerbos::Error::DeadlineExceeded`). The error is still
39
+ reported via `Rails.error`.
40
+
7
41
  ## [2.6.0] - 2026-10-28
8
42
 
9
43
  ### yes-core
data/README.md CHANGED
@@ -1740,6 +1740,16 @@ class SlackNotifier < Yes::Core::Commands::Notifier
1740
1740
  end
1741
1741
  ```
1742
1742
 
1743
+ #### Per-call Notifiers
1744
+
1745
+ To attach a notifier to one specific command bus call only, for example to report failures of a batch import without registering the notifier for every batch, pass it as `extra_notifier_classes`:
1746
+
1747
+ ```ruby
1748
+ Yes::Core::CommandBus.new.call(commands, extra_notifier_classes: [ImportFailureNotifier])
1749
+ ```
1750
+
1751
+ The per-call notifiers are appended to the configured `command_notifier_classes` and receive the same `notifier_options`. Unlike the configured ones, they also run when commands are processed inline, because the caller asked for them explicitly. The notifier classes must be named (anonymous classes are not supported), as only their names are passed on to the command processor job.
1752
+
1743
1753
  ## Read API
1744
1754
 
1745
1755
  The Read API (`yes-read-api`) provides an HTTP endpoint for querying read models with filtering, pagination, and authorization. Like the Command API, it is a standalone Rails engine that does **not** depend on the aggregate DSL — it works with any ActiveRecord model that has a matching serializer.
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.6.0'
4
+ VERSION = '2.7.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.6.0
4
+ version: 2.7.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.6.0
18
+ version: 2.7.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.6.0
25
+ version: 2.7.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.6.0
32
+ version: 2.7.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.6.0
39
+ version: 2.7.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.6.0
46
+ version: 2.7.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.6.0
53
+ version: 2.7.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.6.0
60
+ version: 2.7.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.6.0
67
+ version: 2.7.0
68
68
  description: Event sourcing framework for Ruby on Rails applications
69
69
  email:
70
70
  - nico.ritsche@yousty.ch