cronwatch 0.12.2 → 0.12.4
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 +4 -4
- data/LICENSE +1 -1
- data/README.md +5 -5
- data/lib/cronwatch/version.rb +1 -1
- data/lib/cronwatch/web/html.rb +3 -3
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d39b4e146c8c67dc490eefa94ea08be381f5851367f5827e4afb4f6a65b610f4
|
|
4
|
+
data.tar.gz: aafe200c2ae1f93ec641775edbd58416ddfa7f1508cd1f1b93929877e0e6aaf8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 486579780d8c1a48e223c7bd321ff91a592db213d364db4e80167c5edd0652005ef7ecb76a7f0922e4fcab30466f0938cb73dc1b7d8dc42575e0eca69057d4b7
|
|
7
|
+
data.tar.gz: 79a910d5c1acd953fdeaf778007857c1ed962a53107474d2a6a0d655d876be5e6146423d78d69e0fc78ee2f490f8682f210782e19582bc97275ca28e9e001cc9
|
data/LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -235,15 +235,15 @@ Adds two to four sentences from Claude (likely cause, first thing to check) to e
|
|
|
235
235
|
|
|
236
236
|
## Sharing a database with a Node app
|
|
237
237
|
|
|
238
|
-
The ActiveRecord store writes the same three tables as `@cronwatch/sdk/postgres` and `@cronwatch/sdk/sqlite`: same names, columns and indexes, epoch milliseconds in the time columns, the SDK's camelCase JSON in the JSON columns. [`test/active_record/node_compat_test.rb`](https://github.com/
|
|
238
|
+
The ActiveRecord store writes the same three tables as `@cronwatch/sdk/postgres` and `@cronwatch/sdk/sqlite`: same names, columns and indexes, epoch milliseconds in the time columns, the SDK's camelCase JSON in the JSON columns. [`test/active_record/node_compat_test.rb`](https://github.com/cronwatchdev/cronwatch/blob/main/packages/ruby/test/active_record/node_compat_test.rb) runs the SDK's stores in Node beside this one, on SQLite and Postgres, and checks that each reads what the other wrote, that the tables are the same whoever creates them, and that the rows are the same bytes. Use the same prefix on both sides and give each job a name only one side uses. Then one dashboard, Rails or Node, shows every job, and one MCP server reads them all. The Python, PHP, Go and Rust ports keep the same tables too, so a process in any of them can share the database the same way.
|
|
239
239
|
|
|
240
240
|
## Kept in step with the TypeScript SDK
|
|
241
241
|
|
|
242
242
|
The TypeScript SDK is the source of truth. `npm run conformance` at the repository root runs it and writes JSON cases to `conformance/`: duration parsing and formatting, schedules including daylight saving, sequences of runs and checks with the alerts and state they must produce, alert titles and messages, stats and health. This gem's tests replay every case, and the SDK's own check fails when the files are stale. A change of behaviour lands in TypeScript first, the cases are regenerated, and the gem is fixed until its tests pass. When the two disagree, the Ruby side is wrong.
|
|
243
243
|
|
|
244
|
-
The dashboard is held to the SDK the same way: [`test/web/golden.json`](https://github.com/
|
|
244
|
+
The dashboard is held to the SDK the same way: [`test/web/golden.json`](https://github.com/cronwatchdev/cronwatch/blob/main/packages/ruby/test/web/golden.json) records what the SDK's routes answer to a fixed set of requests, and [`test/web_golden_test.rb`](https://github.com/cronwatchdev/cronwatch/blob/main/packages/ruby/test/web_golden_test.rb) makes `Cronwatch::Web` answer them byte for byte.
|
|
245
245
|
|
|
246
|
-
The design of the port is in [DESIGN.md](https://github.com/
|
|
246
|
+
The design of the port is in [DESIGN.md](https://github.com/cronwatchdev/cronwatch/blob/main/packages/ruby/DESIGN.md).
|
|
247
247
|
|
|
248
248
|
## Testing
|
|
249
249
|
|
|
@@ -264,7 +264,7 @@ The node compatibility tests run the built SDK and its drivers, and skip themsel
|
|
|
264
264
|
npm ci && npm run build
|
|
265
265
|
```
|
|
266
266
|
|
|
267
|
-
The default Gemfile tests Rails 8.1. Each supported Rails series has its own Gemfile, with its own lockfile, in [`test/rails/gemfiles`](https://github.com/
|
|
267
|
+
The default Gemfile tests Rails 8.1. Each supported Rails series has its own Gemfile, with its own lockfile, in [`test/rails/gemfiles`](https://github.com/cronwatchdev/cronwatch/tree/main/packages/ruby/test/rails/gemfiles):
|
|
268
268
|
|
|
269
269
|
```sh
|
|
270
270
|
BUNDLE_GEMFILE=test/rails/gemfiles/rails_7_2.gemfile bundle install
|
|
@@ -281,7 +281,7 @@ npm run build --workspace packages/sdk && TZ=UTC node packages/ruby/test/web/gol
|
|
|
281
281
|
|
|
282
282
|
`npm run check` fails while `test/web/golden.json` or `conformance/` is stale.
|
|
283
283
|
|
|
284
|
-
The MCP server's tests can also drive this gem's `Cronwatch::Web` over HTTP ([`test/web/server.rb`](https://github.com/
|
|
284
|
+
The MCP server's tests can also drive this gem's `Cronwatch::Web` over HTTP ([`test/web/server.rb`](https://github.com/cronwatchdev/cronwatch/blob/main/packages/ruby/test/web/server.rb)). They need `fugit`, `rack` and a server rackup can start (puma, or webrick, which the Gemfile's test group has) in the Ruby they run, and only run when asked, from `packages/mcp`:
|
|
285
285
|
|
|
286
286
|
```sh
|
|
287
287
|
CRONWATCH_TEST_RUBY=1 CRONWATCH_RUBY="rbenv exec ruby" npm test
|
data/lib/cronwatch/version.rb
CHANGED
data/lib/cronwatch/web/html.rb
CHANGED
|
@@ -98,7 +98,7 @@ module Cronwatch
|
|
|
98
98
|
.signin{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:28px auto 0;max-width:420px}
|
|
99
99
|
.signin label{font:500 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
|
|
100
100
|
.signin input{flex:1 1 180px;min-width:0;font:400 16px/1.2 var(--mono);color:var(--ink);background:var(--sheet);border:1px solid var(--rule-2);border-radius:3px;height:32px;padding:0 10px}
|
|
101
|
-
footer{display:flex;flex-wrap:wrap;gap:6px 18px;padding:20px 0 40px;border-top:1px solid var(--rule);font:400 12px/1.5 var(--mono);color:var(--muted)}
|
|
101
|
+
footer{display:flex;flex-wrap:wrap;gap:6px 18px;padding:20px 0 40px;border-top:1px solid var(--rule);font:400 12px/1.5 var(--mono);color:var(--muted)}footer .version{margin-left:auto}
|
|
102
102
|
.timeline{margin:18px 0 0}
|
|
103
103
|
.timeline .axis,.timeline .under,.timeline .over,.timeline .lane{display:grid;grid-template-columns:var(--who) minmax(0,1fr)}
|
|
104
104
|
.timeline .hours{position:relative;height:22px;font:400 11px/1 var(--mono);color:var(--muted);letter-spacing:.04em}
|
|
@@ -442,7 +442,7 @@ module Cronwatch
|
|
|
442
442
|
</section>
|
|
443
443
|
#{sections}
|
|
444
444
|
</main>
|
|
445
|
-
<footer><span>Refreshes every minute. Times are UTC.</span><a href="#{h(base)}/api/jobs">JSON</a></footer>
|
|
445
|
+
<footer><span>Refreshes every minute. Times are UTC.</span><a href="#{h(base)}/api/jobs">JSON</a><a class="version" href="https://github.com/cronwatchdev/cronwatch/blob/main/CHANGELOG.md">cronwatch #{Cronwatch::VERSION}</a></footer>
|
|
446
446
|
BODY
|
|
447
447
|
layout("CronWatch", body, base, refresh: 60)
|
|
448
448
|
end
|
|
@@ -570,7 +570,7 @@ module Cronwatch
|
|
|
570
570
|
</div>
|
|
571
571
|
</section>
|
|
572
572
|
</main>
|
|
573
|
-
<footer><span>Refreshes every minute. Times are UTC.</span><a href="#{h(base)}/api/jobs/#{encode_uri_component(job.name)}">JSON</a></footer>
|
|
573
|
+
<footer><span>Refreshes every minute. Times are UTC.</span><a href="#{h(base)}/api/jobs/#{encode_uri_component(job.name)}">JSON</a><a class="version" href="https://github.com/cronwatchdev/cronwatch/blob/main/CHANGELOG.md">cronwatch #{Cronwatch::VERSION}</a></footer>
|
|
574
574
|
BODY
|
|
575
575
|
layout("#{job.name}: CronWatch", body, base, refresh: 60)
|
|
576
576
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cronwatch
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.12.
|
|
4
|
+
version: 0.12.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jon C. Phillips
|
|
@@ -101,9 +101,9 @@ licenses:
|
|
|
101
101
|
- MIT
|
|
102
102
|
metadata:
|
|
103
103
|
homepage_uri: https://cronwatch.dev
|
|
104
|
-
source_code_uri: https://github.com/
|
|
105
|
-
changelog_uri: https://github.com/
|
|
106
|
-
bug_tracker_uri: https://github.com/
|
|
104
|
+
source_code_uri: https://github.com/cronwatchdev/cronwatch/tree/main/packages/ruby
|
|
105
|
+
changelog_uri: https://github.com/cronwatchdev/cronwatch/releases
|
|
106
|
+
bug_tracker_uri: https://github.com/cronwatchdev/cronwatch/issues
|
|
107
107
|
documentation_uri: https://cronwatch.dev/docs/ruby/
|
|
108
108
|
rubygems_mfa_required: 'true'
|
|
109
109
|
rdoc_options: []
|