maintenance_tasks 2.12.0 → 2.14.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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class AddIndexOnTaskNameAndStatusToRuns < ActiveRecord::Migration[6.0]
3
+ class AddIndexOnTaskNameAndStatusToRuns < ActiveRecord::Migration[7.0]
4
4
  def change
5
5
  remove_index(
6
6
  :maintenance_tasks_runs,
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class AddMetadataToRuns < ActiveRecord::Migration[6.0]
3
+ class AddMetadataToRuns < ActiveRecord::Migration[7.0]
4
4
  def change
5
5
  add_column(:maintenance_tasks_runs, :metadata, :text)
6
6
  end
@@ -21,10 +21,8 @@ module MaintenanceTasks
21
21
  MaintenanceTasks.backtrace_cleaner = Rails.backtrace_cleaner
22
22
  end
23
23
 
24
- if Rails.gem_version >= Gem::Version.new("7.1")
25
- initializer "maintenance_tasks.deprecator" do
26
- Rails.application.deprecators[:maintenance_tasks] = MaintenanceTasks.deprecator
27
- end
24
+ initializer "maintenance_tasks.deprecator" do
25
+ Rails.application.deprecators[:maintenance_tasks] = MaintenanceTasks.deprecator
28
26
  end
29
27
 
30
28
  config.to_prepare do
@@ -85,6 +85,30 @@ module MaintenanceTasks
85
85
  # @return [ActiveSupport::Duration] the threshold in seconds after which a task is considered stuck.
86
86
  mattr_accessor :stuck_task_duration, default: 5.minutes
87
87
 
88
+ # @!attribute status_reload_frequency
89
+ # @scope class
90
+ # The frequency at which to reload the run status during iteration.
91
+ # Defaults to 1 second, meaning reload status every second.
92
+ #
93
+ # @return [ActiveSupport::Duration, Numeric] the time interval between status reloads.
94
+ mattr_accessor :status_reload_frequency, default: 1.second
95
+
96
+ # @!attribute report_errors_as_handled
97
+ # @scope class
98
+ # How unexpected errors are reported to Rails.error.report.
99
+ #
100
+ # When an error occurs that isn't explicitly handled (e.g., via `report_on`),
101
+ # it gets reported to Rails.error.report. This setting determines whether
102
+ # these errors are marked as "handled" or "unhandled".
103
+ #
104
+ # The current default of `true` is for backwards compatibility, but it prevents
105
+ # error subscribers from distinguishing between expected and unexpected errors.
106
+ # Setting this to `false` provides more accurate error reporting and will become the default in v3.0.
107
+ #
108
+ # @see https://api.rubyonrails.org/classes/ActiveSupport/ErrorReporter.html#method-i-report
109
+ # @return [Boolean] whether to report unexpected errors as handled (true) or unhandled (false).
110
+ mattr_accessor :report_errors_as_handled, default: true
111
+
88
112
  class << self
89
113
  DEPRECATION_MESSAGE = "MaintenanceTasks.error_handler is deprecated and will be removed in the 3.0 release. " \
90
114
  "Instead, reports will be sent to the Rails error reporter. Do not set a handler and subscribe " \
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maintenance_tasks
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.0
4
+ version: 2.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify Engineering
@@ -15,42 +15,42 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '7.0'
18
+ version: '7.1'
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: '7.0'
25
+ version: '7.1'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activejob
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '7.0'
32
+ version: '7.1'
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: '7.0'
39
+ version: '7.1'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: activerecord
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '7.0'
46
+ version: '7.1'
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: '7.0'
53
+ version: '7.1'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: csv
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -85,14 +85,14 @@ dependencies:
85
85
  requirements:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: '7.0'
88
+ version: '7.1'
89
89
  type: :runtime
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
- version: '7.0'
95
+ version: '7.1'
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: zeitwerk
98
98
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +122,7 @@ files:
122
122
  - app/helpers/maintenance_tasks/tasks_helper.rb
123
123
  - app/jobs/concerns/maintenance_tasks/task_job_concern.rb
124
124
  - app/jobs/maintenance_tasks/task_job.rb
125
+ - app/models/concerns/maintenance_tasks/run_concern.rb
125
126
  - app/models/maintenance_tasks/application_record.rb
126
127
  - app/models/maintenance_tasks/batch_csv_collection_builder.rb
127
128
  - app/models/maintenance_tasks/csv_collection_builder.rb
@@ -182,7 +183,7 @@ homepage: https://github.com/Shopify/maintenance_tasks
182
183
  licenses:
183
184
  - MIT
184
185
  metadata:
185
- source_code_uri: https://github.com/Shopify/maintenance_tasks/tree/v2.12.0
186
+ source_code_uri: https://github.com/Shopify/maintenance_tasks/tree/v2.14.0
186
187
  allowed_push_host: https://rubygems.org
187
188
  rdoc_options: []
188
189
  require_paths:
@@ -191,14 +192,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
191
192
  requirements:
192
193
  - - ">="
193
194
  - !ruby/object:Gem::Version
194
- version: '3.1'
195
+ version: '3.2'
195
196
  required_rubygems_version: !ruby/object:Gem::Requirement
196
197
  requirements:
197
198
  - - ">="
198
199
  - !ruby/object:Gem::Version
199
200
  version: '0'
200
201
  requirements: []
201
- rubygems_version: 3.6.8
202
+ rubygems_version: 4.0.6
202
203
  specification_version: 4
203
204
  summary: A Rails engine for queuing and managing maintenance tasks
204
205
  test_files: []