advanced-sneakers-activejob 0.7.0 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bec1f0d5e31956d8ca88a49fece6f4327a1e5c4445e77f98cbbadd69f70bb96c
4
- data.tar.gz: 04fa0eb0c1c61e076bb944c97fa070baf3d551ee86aa1dbebd459a599f838aba
3
+ metadata.gz: f3e54b47e1e58dc8f9f40d0b00904ed2faf0387731847122f5e2c31afadcfaa8
4
+ data.tar.gz: fdbf333722e254ba0bcdf2732041d7f4041f1a5058c4b1f9e7234c41dd1d4f4f
5
5
  SHA512:
6
- metadata.gz: 1075449c689b6699e58bef54367c026a772880a3a31f61aa467035dba32f23b5164f2f60f4f03f8f5041e8ad4151492670d1909f11863fa93713427a0291e276
7
- data.tar.gz: 855163848962913b241864245cc73a47525b8f5c495bba8a79cbe85a48baa4661ea4ac9d7271016570e48173c3cba0bba5f5d45ae5cbcce23999601b1e356f63
6
+ metadata.gz: f84c9cf19973e7c072da92e296f74c37a241beea37441a14c8e25f7ffc1c366fb6d03971c1477eb7915866b2ec8b19b5cca9b0d63858cbe08d5b4388ce2d7ba0
7
+ data.tar.gz: fbcf0365edfe69364515ba91122199305d2a5a9e69dd1ca5d8f4b669d8d62e27d8c868b41a4ec3cf0941d9014122144e966c0a91a3817bd9598b6d2e1e85658e
data/CHANGELOG.md CHANGED
@@ -4,9 +4,29 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
- ## [Unreleased](https://github.com/veeqo/advanced-sneakers-activejob/compare/v0.7.0...HEAD)
7
+ ## [Unreleased](https://github.com/veeqo/advanced-sneakers-activejob/compare/v1.0.0...HEAD)
8
8
 
9
- ## [0.7.0](https://github.com/veeqo/advanced-sneakers-activejob/compare/v0.6.0...v0.6.0) - 2026-04-09
9
+ ## [1.0.0](https://github.com/veeqo/advanced-sneakers-activejob/compare/v0.7.0...v1.0.0) - 2026-05-27
10
+
11
+ ### Added
12
+ - Add support for ActiveJob v8.0 and v8.1
13
+ - Add Ruby 4.0 to CI matrix
14
+
15
+ ### Changed
16
+ - Replace `sneakers ~> 2.7` dependency with `kicks` (a maintained fork of sneakers)
17
+ - Bump minimum Ruby version from 2.7 to 3.3
18
+ - Bump minimum ActiveJob version from 6.0 to 7.1
19
+
20
+ ### Removed
21
+ - Drop support for Ruby 2.7, 3.0, 3.1, and 3.2
22
+ - Drop support for ActiveJob 6.0, 6.1, and 7.0
23
+
24
+ ### Fixed
25
+ - Fix test helpers for RabbitMQ 4.x compatibility (strip `x-queue-type` from queue arguments)
26
+ - Fix `KeyError: key not found: "x-death"` in `Handler#death_header` when handling first job failure (headers have no `x-death` entry yet)
27
+ - Fix integration tests leaving behind queues from sneakers daemon processes, causing test ordering failures
28
+
29
+ ## [0.7.0](https://github.com/veeqo/advanced-sneakers-activejob/compare/v0.6.0...v0.7.0) - 2026-04-09
10
30
 
11
31
  ### Added
12
32
  - [#42](https://github.com/veeqo/advanced-sneakers-activejob/pull/42) Add support for ActiveJob v7.1 and v7.2 (including ActionMailer queue consumer detection)
@@ -29,6 +29,14 @@ module AdvancedSneakersActiveJob
29
29
 
30
30
  # Headers are patched to mimic behavior of "nack" and DLX
31
31
  def track_death_in_headers(headers, queue, exchange, routing_key)
32
+ headers['x-retry-count'] = if headers.key?('x-retry-count')
33
+ headers['x-retry-count'] + 1
34
+ elsif (death = death_header(headers, queue))
35
+ death['count'] + 1
36
+ else
37
+ 1
38
+ end
39
+
32
40
  headers['x-first-death-exchange'] ||= exchange
33
41
  headers['x-first-death-queue'] ||= queue
34
42
  headers['x-first-death-reason'] ||= 'rejected'
@@ -62,7 +70,7 @@ module AdvancedSneakersActiveJob
62
70
  end
63
71
 
64
72
  def calculate_delay(headers, delivery_info)
65
- death_count = death_header(headers, queue_name(delivery_info)).fetch('count')
73
+ death_count = headers['x-retry-count'] || 1
66
74
 
67
75
  AdvancedSneakersActiveJob.config.retry_delay_proc.call(death_count)
68
76
  end
@@ -72,7 +80,7 @@ module AdvancedSneakersActiveJob
72
80
  end
73
81
 
74
82
  def death_header(headers, queue_name)
75
- headers.fetch('x-death').detect { |death| death.fetch('queue') == queue_name }
83
+ headers.fetch('x-death', []).detect { |death| death.fetch('queue') == queue_name }
76
84
  end
77
85
  end
78
86
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AdvancedSneakersActiveJob
4
- VERSION = '0.7.0'
4
+ VERSION = '1.0.0'
5
5
  end
@@ -87,7 +87,6 @@ module AdvancedSneakersActiveJob
87
87
 
88
88
  def action_mailer_classes_with_matching_adapter
89
89
  return [] if !defined?(ActionMailer::Base) ||
90
- ActionMailer.gem_version < Gem::Version.new('6.0.0') ||
91
90
  !advanced_sneakers_adapter?(ActionMailer::MailDeliveryJob)
92
91
 
93
92
  ([ActionMailer::Base] + ActionMailer::Base.descendants).select do |klass|
@@ -27,11 +27,7 @@ end
27
27
 
28
28
  # Enforce definition of ActionMailer consumers
29
29
  ActiveSupport.on_load(:action_mailer) do
30
- # https://github.com/rails/rails/commit/f5050d998def98563f8fa4b381c09f563681f159
31
- require 'action_mailer/mail_delivery_job' if ActionMailer.gem_version >= Gem::Version.new('6.0.0')
32
-
33
- # https://github.com/rails/rails/commit/ddc7fb6e6ee957aae35f1bb11d35c2d3e3b0cdda
34
- require 'action_mailer/delivery_job' if ActionMailer.gem_version < Gem::Version.new('7.0.0')
30
+ require 'action_mailer/mail_delivery_job'
35
31
  end
36
32
 
37
33
  # Advanced Sneakers adapter for ActiveJob
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: advanced-sneakers-activejob
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rustam Sharshenov
8
8
  - Vlad Bokov
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 1980-01-02 00:00:00.000000000 Z
12
+ date: 2026-06-05 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: activejob
@@ -16,14 +17,14 @@ dependencies:
16
17
  requirements:
17
18
  - - ">="
18
19
  - !ruby/object:Gem::Version
19
- version: '6.0'
20
+ version: '7.1'
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - ">="
25
26
  - !ruby/object:Gem::Version
26
- version: '6.0'
27
+ version: '7.1'
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: bunny-publisher
29
30
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +40,25 @@ dependencies:
39
40
  - !ruby/object:Gem::Version
40
41
  version: 0.2.0
41
42
  - !ruby/object:Gem::Dependency
42
- name: sneakers
43
+ name: kicks
43
44
  requirement: !ruby/object:Gem::Requirement
44
45
  requirements:
45
- - - "~>"
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '3.3'
49
+ - - "<"
46
50
  - !ruby/object:Gem::Version
47
- version: '2.7'
51
+ version: '4'
48
52
  type: :runtime
49
53
  prerelease: false
50
54
  version_requirements: !ruby/object:Gem::Requirement
51
55
  requirements:
52
- - - "~>"
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '3.3'
59
+ - - "<"
53
60
  - !ruby/object:Gem::Version
54
- version: '2.7'
61
+ version: '4'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: appraisal
57
64
  requirement: !ruby/object:Gem::Requirement
@@ -156,6 +163,7 @@ metadata:
156
163
  homepage_uri: https://github.com/veeqo/advanced-sneakers-activejob
157
164
  source_code_uri: https://github.com/veeqo/advanced-sneakers-activejob
158
165
  changelog_uri: https://github.com/veeqo/advanced-sneakers-activejob/blob/main/CHANGELOG.md
166
+ post_install_message:
159
167
  rdoc_options: []
160
168
  require_paths:
161
169
  - lib
@@ -163,14 +171,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
171
  requirements:
164
172
  - - ">="
165
173
  - !ruby/object:Gem::Version
166
- version: '2.7'
174
+ version: '3.3'
167
175
  required_rubygems_version: !ruby/object:Gem::Requirement
168
176
  requirements:
169
177
  - - ">="
170
178
  - !ruby/object:Gem::Version
171
179
  version: '0'
172
180
  requirements: []
173
- rubygems_version: 3.7.1
181
+ rubygems_version: 3.0.3.1
182
+ signing_key:
174
183
  specification_version: 4
175
184
  summary: Advanced Sneakers adapter for ActiveJob
176
185
  test_files: []