deployangel 0.1.0 → 0.1.1

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: b1740b8bdbebb7cf89db6fe0a93eb1e09f3452492c88ee0d13bac1d6060e6778
4
- data.tar.gz: 95bf36dc26fdf153a4783172dd3296a92e004f0109068ade65716d46ffa18590
3
+ metadata.gz: f2cfd7db0190a370bcb7e464ee8f43edf3674b46035db0c18836826f489bd760
4
+ data.tar.gz: 061c91c247bd1633fa5ab5b36c04b89f3e5fb74d8217c5cca66401d101c5332d
5
5
  SHA512:
6
- metadata.gz: fc6ba275f576aa06da811002891c7d158008fc729462c3c6cec9a30792a62f891469cffb41e8a9538cf863611d348d94c451d6735c41a9b9a0c63fb2fee692ac
7
- data.tar.gz: 6a85b7eef1c4989d5dcab0790d226e21a9acaee7a5c40592d11c1608eb5f5bef06452dcd01ae41e988d91ce9a6d6a475c0d32bc74051ecf23a18d4346ea002ec
6
+ metadata.gz: c07d0699f4927f133484e6521894da8abb59e1f26b5271e3d21ca8b820fd39093a66036887c17a65079a326d487247c2fbd95dc7d7fb92d98185487814fb027f
7
+ data.tar.gz: 47c69848596e777ff7555a6c9ee9f5b12e38c4186fdb70bf48d9c8b25ff143c0c8a6abb2070a8e9b696fea0583697c148d91260f6426e73a79defe725bf2ca50
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.1 (2026-10-02)
4
+
5
+ - Declared Solid Queue schedules carry the time zone Solid Queue reads them
6
+ in (`SolidQueue.time_zone`, which defaults to `config.time_zone`), so
7
+ DeployAngel expects a job scheduled "at 4am every day" at the right hour.
8
+ Without it, a release could fail for a recurring job that wasn't due yet
9
+ when the app's time zone in the dashboard differed from the app's own.
10
+ - `deployangel verify` prints a missing recurring job as "didn't run" and
11
+ when it was expected, instead of its interval as a percentage.
12
+ - The README describes registering deploys on every host before the Heroku
13
+ add-on.
14
+
3
15
  ## 0.1.0 (2026-10-01)
4
16
 
5
17
  - Release identity on Kamal (`KAMAL_VERSION`), Render (`RENDER_GIT_COMMIT`),
data/README.md CHANGED
@@ -130,9 +130,10 @@ including IDs, since only 100 distinct names are counted per minute.
130
130
 
131
131
  ## Registering deploys
132
132
 
133
- On Heroku, the add-on registers every release for you. Anywhere else,
134
- DeployAngel notices a new release when the agent first reports it, and verifies
135
- it from there. The releases running when you install the agent are the baseline.
133
+ DeployAngel notices a new release when the agent first reports it, and
134
+ verifies it from there, with nothing to set up. The releases running when you
135
+ install the agent are the baseline. On Heroku, the add-on also registers every
136
+ release for you.
136
137
 
137
138
  Registering deploys yourself adds a link to the CI run and a label of your
138
139
  choice, and starts verification as soon as the deploy finishes. Use an API
@@ -70,6 +70,9 @@ module DeployAngel
70
70
  label = "#{LABELS.fetch(finding["signal"], finding["signal"])} on #{finding["scope"]}"
71
71
  if COUNTS.include?(finding["signal"])
72
72
  "#{label}: #{finding["observed_value"].to_i} occurrences"
73
+ elsif finding["signal"] == "missing_recurring_job"
74
+ # Its value is the job's interval in seconds, not a rate.
75
+ "#{label}: #{finding["status"] == "pass" ? "ran" : "didn't run"}, #{finding["threshold"]}"
73
76
  elsif finding["baseline_value"].nil? && finding["observed_value"].nil?
74
77
  "#{label}: #{finding["threshold"]}"
75
78
  else
@@ -68,12 +68,23 @@ module DeployAngel
68
68
  Array(tasks).filter_map do |key, task|
69
69
  next unless task.is_a?(Hash) && task["schedule"]
70
70
 
71
- { "key" => key.to_s, "class" => task["class"]&.to_s, "schedule" => task["schedule"].to_s, "source" => "solid_queue" }
71
+ { "key" => key.to_s, "class" => task["class"]&.to_s, "schedule" => task["schedule"].to_s, "source" => "solid_queue",
72
+ "time_zone" => scheduler_time_zone }
72
73
  end
73
74
  rescue StandardError
74
75
  []
75
76
  end
76
77
 
78
+ # The zone Solid Queue reads a schedule in when the schedule names
79
+ # none: its own setting, config.time_zone by default. nil when that's
80
+ # the system's local time or Solid Queue predates the setting, and
81
+ # DeployAngel then doesn't assume one.
82
+ def scheduler_time_zone
83
+ ::SolidQueue.time_zone if defined?(::SolidQueue) && ::SolidQueue.respond_to?(:time_zone)
84
+ rescue StandardError
85
+ nil
86
+ end
87
+
77
88
  def file_manifest
78
89
  @file_manifest ||= begin
79
90
  if @config.file_digests
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DeployAngel
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deployangel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordan Owens