source_monitor 0.1.1 → 0.1.2
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/CHANGELOG.md +17 -0
- data/Gemfile.lock +1 -1
- data/README.md +15 -11
- data/config/coverage_baseline.json +350 -107
- data/docs/deployment.md +8 -0
- data/docs/gh-cli-workflow.md +5 -1
- data/docs/setup-validation-log.md +36 -0
- data/docs/setup.md +144 -0
- data/lib/generators/source_monitor/install/install_generator.rb +1 -1
- data/lib/source_monitor/setup/bundle_installer.rb +17 -0
- data/lib/source_monitor/setup/cli.rb +51 -0
- data/lib/source_monitor/setup/dependency_checker.rb +165 -0
- data/lib/source_monitor/setup/detectors.rb +67 -0
- data/lib/source_monitor/setup/gemfile_editor.rb +29 -0
- data/lib/source_monitor/setup/initializer_patcher.rb +59 -0
- data/lib/source_monitor/setup/install_generator.rb +22 -0
- data/lib/source_monitor/setup/migration_installer.rb +40 -0
- data/lib/source_monitor/setup/node_installer.rb +27 -0
- data/lib/source_monitor/setup/prompter.rb +34 -0
- data/lib/source_monitor/setup/requirements.rb +51 -0
- data/lib/source_monitor/setup/shell_runner.rb +14 -0
- data/lib/source_monitor/setup/verification/action_cable_verifier.rb +79 -0
- data/lib/source_monitor/setup/verification/printer.rb +24 -0
- data/lib/source_monitor/setup/verification/result.rb +68 -0
- data/lib/source_monitor/setup/verification/runner.rb +24 -0
- data/lib/source_monitor/setup/verification/solid_queue_verifier.rb +75 -0
- data/lib/source_monitor/setup/verification/telemetry_logger.rb +33 -0
- data/lib/source_monitor/setup/workflow.rb +99 -0
- data/lib/source_monitor/version.rb +1 -1
- data/lib/source_monitor.rb +19 -0
- data/lib/tasks/source_monitor_setup.rake +39 -0
- data/tasks/prd-setup-workflow-streamlining.md +68 -0
- data/tasks/tasks-setup-workflow-streamlining.md +51 -0
- metadata +25 -2
- data/docs/installation.md +0 -144
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3831f3ec3fa841e1e15fb16fc7ab780177d35353fce96975338c2e7aa129bd9f
|
|
4
|
+
data.tar.gz: ac970a0b226c1b8c1c9a266a892754941d92173b8753ac37d2a4cd89f1895fd9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 46dc5a034c7b7c294877d124a59b632aec2cfbc420544835b06d0809a7e8d574930ffc86cd5bfbceb436516a0bc88b55ffdb34a38a0bb873ae3892bb3615b503
|
|
7
|
+
data.tar.gz: 542c9c82713daadb6f0cfa4151ab99df55440a8e86a553ee46b2223806096f6d36d1e1987890f50aaad83132498c674793cae11c11752a897daca6c36efb1a94
|
data/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,23 @@ All notable changes to this project are documented below. The format follows [Ke
|
|
|
15
15
|
|
|
16
16
|
- No unreleased changes yet.
|
|
17
17
|
|
|
18
|
+
## [0.1.2] - 2025-11-13
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Guided setup workflow (`bin/source_monitor install`) with dependency checks, Gemfile automation, migration deduplication, initializer patching, and Devise prompt support.
|
|
23
|
+
- Reusable verification tooling (`bin/source_monitor verify` / `bin/rails source_monitor:setup:verify`) plus Solid Queue/Action Cable verifiers, JSON output, and optional telemetry logging.
|
|
24
|
+
- Fresh documentation (`docs/setup.md`, rollout checklist in `docs/deployment.md`, validation log) outlining prerequisites, rollback steps, and CI adoption guidance.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- Enforced coverage/diff checks in CI, added `bin/check-setup-tests`, and expanded test suites so new setup workflow files stay covered.
|
|
29
|
+
- Hardened host harness env defaults to avoid `root` Postgres role errors during CI/app template generation.
|
|
30
|
+
|
|
31
|
+
### Testing
|
|
32
|
+
|
|
33
|
+
- Full suite (`bin/rails test`), `bin/test-coverage`, `bin/check-diff-coverage`, and `bin/rubocop` all pass on Ruby 3.4.4.
|
|
34
|
+
|
|
18
35
|
## [0.1.1] - 2025-11-09
|
|
19
36
|
|
|
20
37
|
### Changed
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -20,25 +20,29 @@ SourceMonitor is a production-ready Rails 8 mountable engine for ingesting, norm
|
|
|
20
20
|
|
|
21
21
|
## Quick Start (Host Application)
|
|
22
22
|
|
|
23
|
-
> **
|
|
23
|
+
> **Command prefixes:** Examples below show bare `bundle`, `bin/rails`, and `bin/source_monitor`. If you use rbenv/asdf or containerized tooling, prefix/adjust commands accordingly so they run inside your Ruby environment.
|
|
24
24
|
|
|
25
|
-
###
|
|
26
|
-
1.
|
|
27
|
-
2.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
7. Boot your app and visit the mount path you chose (default `/source_monitor`) to explore the dashboard and confirm Solid Queue metrics render.
|
|
25
|
+
### Recommended: Guided Workflow
|
|
26
|
+
1. **Optional prerequisite check:** `bin/rails source_monitor:setup:check`
|
|
27
|
+
2. **Run the guided installer:** `bin/source_monitor install --yes`
|
|
28
|
+
- Prompts for the mount path (default `/source_monitor`), adds the gem entry when missing, runs `bundle install`, `npm install` (when `package.json` exists), copies/deduplicates migrations, patches the initializer, and runs verification.
|
|
29
|
+
3. **Start workers / scheduler:** `bin/rails solid_queue:start` and, if you use recurring jobs, `bin/jobs --recurring_schedule_file=config/recurring.yml`.
|
|
30
|
+
4. **Verify anytime:** `bin/source_monitor verify` (also exposed as `bin/rails source_monitor:setup:verify`). The command prints a human summary plus JSON so CI can gate on Solid Queue and Action Cable health.
|
|
31
|
+
5. **Visit the dashboard** at the chosen mount path and trigger “Fetch Now” on a source to confirm everything is wired.
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
See [docs/setup.md](docs/setup.md) for the full workflow (prereq table, rollback steps, telemetry flag, Devise system test template).
|
|
34
|
+
|
|
35
|
+
### Manual Install (Advanced)
|
|
36
|
+
Prefer explicit Rails generator steps or need to customize each phase? The same document covers a full **Manual Installation** section so you can copy/paste each command into bespoke pipelines.
|
|
37
|
+
|
|
38
|
+
Troubleshooting advice lives in [docs/troubleshooting.md](docs/troubleshooting.md).
|
|
35
39
|
|
|
36
40
|
### Upgrading SourceMonitor
|
|
37
41
|
1. Bump the gem version in your host `Gemfile` and run `bundle install` (or `bundle update source_monitor` when targeting a specific release).
|
|
38
42
|
2. Re-run `bin/rails railties:install:migrations FROM=source_monitor` and then `bin/rails db:migrate` to pick up schema changes.
|
|
39
43
|
3. Compare your `config/initializers/source_monitor.rb` against the newly generated template for configuration diffs (new queue knobs, HTTP options, etc.).
|
|
40
44
|
4. Review release notes for optional integrations—when enabling Mission Control, ensure `mission_control-jobs` stays mounted and linked via `config.mission_control_dashboard_path`.
|
|
41
|
-
5. Smoke test Solid Queue workers, Action Cable, and admin UI flows after the upgrade.
|
|
45
|
+
5. Smoke test Solid Queue workers, Action Cable, and admin UI flows after the upgrade, and run `bin/source_monitor verify` so CI/deploys confirm workers/cable health before rollout.
|
|
42
46
|
|
|
43
47
|
## Example Applications
|
|
44
48
|
- `examples/basic_host/template.rb` – Minimal host that seeds a Rails blog source and redirects `/` to the dashboard.
|
|
@@ -132,21 +132,21 @@
|
|
|
132
132
|
82
|
|
133
133
|
],
|
|
134
134
|
"lib/source_monitor.rb": [
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
125,
|
|
141
|
-
126,
|
|
142
|
-
127,
|
|
143
|
-
129,
|
|
144
|
-
131,
|
|
145
|
-
137,
|
|
146
|
-
141,
|
|
147
|
-
143,
|
|
135
|
+
29,
|
|
136
|
+
116,
|
|
137
|
+
132,
|
|
138
|
+
136,
|
|
139
|
+
140,
|
|
148
140
|
144,
|
|
149
|
-
|
|
141
|
+
145,
|
|
142
|
+
146,
|
|
143
|
+
148,
|
|
144
|
+
150,
|
|
145
|
+
156,
|
|
146
|
+
160,
|
|
147
|
+
162,
|
|
148
|
+
163,
|
|
149
|
+
165
|
|
150
150
|
],
|
|
151
151
|
"lib/source_monitor/analytics/source_activity_rates.rb": [
|
|
152
152
|
44
|
|
@@ -458,28 +458,28 @@
|
|
|
458
458
|
121
|
|
459
459
|
],
|
|
460
460
|
"lib/source_monitor/engine.rb": [
|
|
461
|
-
|
|
462
|
-
51,
|
|
463
|
-
52,
|
|
461
|
+
49,
|
|
464
462
|
53,
|
|
465
463
|
54,
|
|
466
|
-
|
|
467
|
-
|
|
464
|
+
55,
|
|
465
|
+
56,
|
|
468
466
|
61,
|
|
469
467
|
62,
|
|
470
468
|
63,
|
|
471
469
|
64,
|
|
472
470
|
65,
|
|
473
|
-
|
|
474
|
-
|
|
471
|
+
66,
|
|
472
|
+
67,
|
|
475
473
|
70,
|
|
476
|
-
|
|
477
|
-
|
|
474
|
+
71,
|
|
475
|
+
72,
|
|
476
|
+
75,
|
|
478
477
|
76,
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
99
|
|
478
|
+
78,
|
|
479
|
+
79,
|
|
480
|
+
98,
|
|
481
|
+
99,
|
|
482
|
+
101
|
|
483
483
|
],
|
|
484
484
|
"lib/source_monitor/events.rb": [
|
|
485
485
|
9,
|
|
@@ -823,10 +823,6 @@
|
|
|
823
823
|
32,
|
|
824
824
|
33,
|
|
825
825
|
37,
|
|
826
|
-
41,
|
|
827
|
-
42,
|
|
828
|
-
45,
|
|
829
|
-
46,
|
|
830
826
|
50,
|
|
831
827
|
52,
|
|
832
828
|
53,
|
|
@@ -843,8 +839,6 @@
|
|
|
843
839
|
69,
|
|
844
840
|
70,
|
|
845
841
|
71,
|
|
846
|
-
77,
|
|
847
|
-
79,
|
|
848
842
|
84,
|
|
849
843
|
85,
|
|
850
844
|
89,
|
|
@@ -932,8 +926,7 @@
|
|
|
932
926
|
35,
|
|
933
927
|
39,
|
|
934
928
|
43,
|
|
935
|
-
44
|
|
936
|
-
49
|
|
929
|
+
44
|
|
937
930
|
],
|
|
938
931
|
"lib/source_monitor/items/item_creator.rb": [
|
|
939
932
|
16,
|
|
@@ -1268,6 +1261,13 @@
|
|
|
1268
1261
|
77,
|
|
1269
1262
|
80
|
|
1270
1263
|
],
|
|
1264
|
+
"lib/source_monitor/jobs/fetch_failure_subscriber.rb": [
|
|
1265
|
+
62,
|
|
1266
|
+
98,
|
|
1267
|
+
111,
|
|
1268
|
+
120,
|
|
1269
|
+
122
|
|
1270
|
+
],
|
|
1271
1271
|
"lib/source_monitor/jobs/solid_queue_metrics.rb": [
|
|
1272
1272
|
20,
|
|
1273
1273
|
27,
|
|
@@ -1330,24 +1330,9 @@
|
|
|
1330
1330
|
43,
|
|
1331
1331
|
48,
|
|
1332
1332
|
49,
|
|
1333
|
-
54,
|
|
1334
1333
|
56,
|
|
1335
|
-
60,
|
|
1336
|
-
64,
|
|
1337
|
-
65,
|
|
1338
1334
|
70,
|
|
1339
1335
|
71,
|
|
1340
|
-
76,
|
|
1341
|
-
80,
|
|
1342
|
-
85,
|
|
1343
|
-
86,
|
|
1344
|
-
88,
|
|
1345
|
-
90,
|
|
1346
|
-
91,
|
|
1347
|
-
92,
|
|
1348
|
-
93,
|
|
1349
|
-
94,
|
|
1350
|
-
95,
|
|
1351
1336
|
102,
|
|
1352
1337
|
103,
|
|
1353
1338
|
105,
|
|
@@ -1397,13 +1382,8 @@
|
|
|
1397
1382
|
117
|
|
1398
1383
|
],
|
|
1399
1384
|
"lib/source_monitor/metrics.rb": [
|
|
1400
|
-
10,
|
|
1401
|
-
14,
|
|
1402
1385
|
18,
|
|
1403
1386
|
22,
|
|
1404
|
-
26,
|
|
1405
|
-
30,
|
|
1406
|
-
31,
|
|
1407
1387
|
38,
|
|
1408
1388
|
39,
|
|
1409
1389
|
43,
|
|
@@ -1412,16 +1392,7 @@
|
|
|
1412
1392
|
46,
|
|
1413
1393
|
48,
|
|
1414
1394
|
51,
|
|
1415
|
-
52
|
|
1416
|
-
56,
|
|
1417
|
-
57,
|
|
1418
|
-
59,
|
|
1419
|
-
60,
|
|
1420
|
-
61,
|
|
1421
|
-
62,
|
|
1422
|
-
63,
|
|
1423
|
-
70,
|
|
1424
|
-
74
|
|
1395
|
+
52
|
|
1425
1396
|
],
|
|
1426
1397
|
"lib/source_monitor/model_extensions.rb": [
|
|
1427
1398
|
53,
|
|
@@ -1465,11 +1436,6 @@
|
|
|
1465
1436
|
93
|
|
1466
1437
|
],
|
|
1467
1438
|
"lib/source_monitor/realtime/broadcaster.rb": [
|
|
1468
|
-
33,
|
|
1469
|
-
34,
|
|
1470
|
-
35,
|
|
1471
|
-
37,
|
|
1472
|
-
38,
|
|
1473
1439
|
42,
|
|
1474
1440
|
43,
|
|
1475
1441
|
44,
|
|
@@ -1511,20 +1477,11 @@
|
|
|
1511
1477
|
148,
|
|
1512
1478
|
149,
|
|
1513
1479
|
150,
|
|
1514
|
-
155,
|
|
1515
1480
|
167,
|
|
1516
|
-
171,
|
|
1517
|
-
180,
|
|
1518
1481
|
187,
|
|
1519
|
-
191,
|
|
1520
|
-
193,
|
|
1521
1482
|
195,
|
|
1522
|
-
199,
|
|
1523
|
-
202,
|
|
1524
|
-
204,
|
|
1525
1483
|
206,
|
|
1526
1484
|
210,
|
|
1527
|
-
214,
|
|
1528
1485
|
231,
|
|
1529
1486
|
233
|
|
1530
1487
|
],
|
|
@@ -1534,34 +1491,6 @@
|
|
|
1534
1491
|
"lib/source_monitor/release/runner.rb": [
|
|
1535
1492
|
68
|
|
1536
1493
|
],
|
|
1537
|
-
"lib/source_monitor/scheduler.rb": [
|
|
1538
|
-
12,
|
|
1539
|
-
16,
|
|
1540
|
-
17,
|
|
1541
|
-
21,
|
|
1542
|
-
23,
|
|
1543
|
-
24,
|
|
1544
|
-
25,
|
|
1545
|
-
26,
|
|
1546
|
-
28,
|
|
1547
|
-
29,
|
|
1548
|
-
32,
|
|
1549
|
-
34,
|
|
1550
|
-
43,
|
|
1551
|
-
45,
|
|
1552
|
-
46,
|
|
1553
|
-
47,
|
|
1554
|
-
48,
|
|
1555
|
-
51,
|
|
1556
|
-
55,
|
|
1557
|
-
63,
|
|
1558
|
-
64,
|
|
1559
|
-
68,
|
|
1560
|
-
70,
|
|
1561
|
-
71,
|
|
1562
|
-
72,
|
|
1563
|
-
74
|
|
1564
|
-
],
|
|
1565
1494
|
"lib/source_monitor/scrapers/base.rb": [
|
|
1566
1495
|
29,
|
|
1567
1496
|
33,
|
|
@@ -1991,6 +1920,293 @@
|
|
|
1991
1920
|
19,
|
|
1992
1921
|
23
|
|
1993
1922
|
],
|
|
1923
|
+
"lib/source_monitor/setup/bundle_installer.rb": [
|
|
1924
|
+
5,
|
|
1925
|
+
9
|
|
1926
|
+
],
|
|
1927
|
+
"lib/source_monitor/setup/cli.rb": [
|
|
1928
|
+
11,
|
|
1929
|
+
14,
|
|
1930
|
+
15,
|
|
1931
|
+
20,
|
|
1932
|
+
21,
|
|
1933
|
+
27,
|
|
1934
|
+
28,
|
|
1935
|
+
29,
|
|
1936
|
+
33,
|
|
1937
|
+
37,
|
|
1938
|
+
41,
|
|
1939
|
+
43,
|
|
1940
|
+
47
|
|
1941
|
+
],
|
|
1942
|
+
"lib/source_monitor/setup/dependency_checker.rb": [
|
|
1943
|
+
23,
|
|
1944
|
+
27,
|
|
1945
|
+
31,
|
|
1946
|
+
35,
|
|
1947
|
+
43,
|
|
1948
|
+
47,
|
|
1949
|
+
48,
|
|
1950
|
+
50,
|
|
1951
|
+
54,
|
|
1952
|
+
58,
|
|
1953
|
+
62,
|
|
1954
|
+
66,
|
|
1955
|
+
70,
|
|
1956
|
+
75,
|
|
1957
|
+
79,
|
|
1958
|
+
85,
|
|
1959
|
+
86,
|
|
1960
|
+
87,
|
|
1961
|
+
89,
|
|
1962
|
+
100,
|
|
1963
|
+
102,
|
|
1964
|
+
106,
|
|
1965
|
+
107,
|
|
1966
|
+
109,
|
|
1967
|
+
113,
|
|
1968
|
+
114,
|
|
1969
|
+
116,
|
|
1970
|
+
121,
|
|
1971
|
+
126,
|
|
1972
|
+
130,
|
|
1973
|
+
137,
|
|
1974
|
+
144,
|
|
1975
|
+
151,
|
|
1976
|
+
158
|
|
1977
|
+
],
|
|
1978
|
+
"lib/source_monitor/setup/detectors.rb": [
|
|
1979
|
+
7,
|
|
1980
|
+
11,
|
|
1981
|
+
13,
|
|
1982
|
+
17,
|
|
1983
|
+
18,
|
|
1984
|
+
20,
|
|
1985
|
+
22,
|
|
1986
|
+
26,
|
|
1987
|
+
27,
|
|
1988
|
+
29,
|
|
1989
|
+
31,
|
|
1990
|
+
35,
|
|
1991
|
+
36,
|
|
1992
|
+
42,
|
|
1993
|
+
44,
|
|
1994
|
+
46,
|
|
1995
|
+
50,
|
|
1996
|
+
52,
|
|
1997
|
+
55,
|
|
1998
|
+
59,
|
|
1999
|
+
61,
|
|
2000
|
+
63
|
|
2001
|
+
],
|
|
2002
|
+
"lib/source_monitor/setup/gemfile_editor.rb": [
|
|
2003
|
+
9,
|
|
2004
|
+
13,
|
|
2005
|
+
15,
|
|
2006
|
+
16,
|
|
2007
|
+
18,
|
|
2008
|
+
19,
|
|
2009
|
+
25
|
|
2010
|
+
],
|
|
2011
|
+
"lib/source_monitor/setup/initializer_patcher.rb": [
|
|
2012
|
+
9,
|
|
2013
|
+
13,
|
|
2014
|
+
15,
|
|
2015
|
+
16,
|
|
2016
|
+
17,
|
|
2017
|
+
19,
|
|
2018
|
+
20,
|
|
2019
|
+
21,
|
|
2020
|
+
25,
|
|
2021
|
+
27,
|
|
2022
|
+
28,
|
|
2023
|
+
30,
|
|
2024
|
+
31,
|
|
2025
|
+
32,
|
|
2026
|
+
34,
|
|
2027
|
+
37,
|
|
2028
|
+
38,
|
|
2029
|
+
46,
|
|
2030
|
+
50
|
|
2031
|
+
],
|
|
2032
|
+
"lib/source_monitor/setup/install_generator.rb": [
|
|
2033
|
+
5,
|
|
2034
|
+
9
|
|
2035
|
+
],
|
|
2036
|
+
"lib/source_monitor/setup/migration_installer.rb": [
|
|
2037
|
+
10,
|
|
2038
|
+
11,
|
|
2039
|
+
15,
|
|
2040
|
+
16,
|
|
2041
|
+
17,
|
|
2042
|
+
25,
|
|
2043
|
+
29,
|
|
2044
|
+
30,
|
|
2045
|
+
32,
|
|
2046
|
+
36
|
|
2047
|
+
],
|
|
2048
|
+
"lib/source_monitor/setup/node_installer.rb": [
|
|
2049
|
+
7,
|
|
2050
|
+
8,
|
|
2051
|
+
12,
|
|
2052
|
+
14,
|
|
2053
|
+
15,
|
|
2054
|
+
23
|
|
2055
|
+
],
|
|
2056
|
+
"lib/source_monitor/setup/prompter.rb": [
|
|
2057
|
+
7,
|
|
2058
|
+
8,
|
|
2059
|
+
12,
|
|
2060
|
+
14,
|
|
2061
|
+
15,
|
|
2062
|
+
16,
|
|
2063
|
+
20,
|
|
2064
|
+
22,
|
|
2065
|
+
23,
|
|
2066
|
+
24,
|
|
2067
|
+
26
|
|
2068
|
+
],
|
|
2069
|
+
"lib/source_monitor/setup/requirements.rb": [
|
|
2070
|
+
8,
|
|
2071
|
+
12,
|
|
2072
|
+
16,
|
|
2073
|
+
18,
|
|
2074
|
+
19,
|
|
2075
|
+
21,
|
|
2076
|
+
25,
|
|
2077
|
+
26,
|
|
2078
|
+
28,
|
|
2079
|
+
36,
|
|
2080
|
+
40,
|
|
2081
|
+
44,
|
|
2082
|
+
46
|
|
2083
|
+
],
|
|
2084
|
+
"lib/source_monitor/setup/shell_runner.rb": [
|
|
2085
|
+
7,
|
|
2086
|
+
8,
|
|
2087
|
+
10
|
|
2088
|
+
],
|
|
2089
|
+
"lib/source_monitor/setup/verification/action_cable_verifier.rb": [
|
|
2090
|
+
6,
|
|
2091
|
+
7,
|
|
2092
|
+
8,
|
|
2093
|
+
12,
|
|
2094
|
+
14,
|
|
2095
|
+
16,
|
|
2096
|
+
18,
|
|
2097
|
+
21,
|
|
2098
|
+
29,
|
|
2099
|
+
33,
|
|
2100
|
+
35,
|
|
2101
|
+
39,
|
|
2102
|
+
41,
|
|
2103
|
+
45,
|
|
2104
|
+
46,
|
|
2105
|
+
49,
|
|
2106
|
+
50,
|
|
2107
|
+
53,
|
|
2108
|
+
57,
|
|
2109
|
+
58,
|
|
2110
|
+
59,
|
|
2111
|
+
62,
|
|
2112
|
+
66,
|
|
2113
|
+
70,
|
|
2114
|
+
74
|
|
2115
|
+
],
|
|
2116
|
+
"lib/source_monitor/setup/verification/printer.rb": [
|
|
2117
|
+
6,
|
|
2118
|
+
10,
|
|
2119
|
+
11,
|
|
2120
|
+
12,
|
|
2121
|
+
13,
|
|
2122
|
+
15
|
|
2123
|
+
],
|
|
2124
|
+
"lib/source_monitor/setup/verification/result.rb": [
|
|
2125
|
+
15,
|
|
2126
|
+
19,
|
|
2127
|
+
23,
|
|
2128
|
+
28,
|
|
2129
|
+
41,
|
|
2130
|
+
45,
|
|
2131
|
+
46,
|
|
2132
|
+
48,
|
|
2133
|
+
52,
|
|
2134
|
+
57,
|
|
2135
|
+
63
|
|
2136
|
+
],
|
|
2137
|
+
"lib/source_monitor/setup/verification/runner.rb": [
|
|
2138
|
+
6,
|
|
2139
|
+
10,
|
|
2140
|
+
11,
|
|
2141
|
+
19
|
|
2142
|
+
],
|
|
2143
|
+
"lib/source_monitor/setup/verification/solid_queue_verifier.rb": [
|
|
2144
|
+
8,
|
|
2145
|
+
9,
|
|
2146
|
+
10,
|
|
2147
|
+
14,
|
|
2148
|
+
15,
|
|
2149
|
+
17,
|
|
2150
|
+
19,
|
|
2151
|
+
20,
|
|
2152
|
+
22,
|
|
2153
|
+
25,
|
|
2154
|
+
33,
|
|
2155
|
+
37,
|
|
2156
|
+
39,
|
|
2157
|
+
43,
|
|
2158
|
+
45,
|
|
2159
|
+
49,
|
|
2160
|
+
50,
|
|
2161
|
+
54,
|
|
2162
|
+
58,
|
|
2163
|
+
62,
|
|
2164
|
+
66,
|
|
2165
|
+
70
|
|
2166
|
+
],
|
|
2167
|
+
"lib/source_monitor/setup/verification/telemetry_logger.rb": [
|
|
2168
|
+
9,
|
|
2169
|
+
13,
|
|
2170
|
+
14,
|
|
2171
|
+
15,
|
|
2172
|
+
24,
|
|
2173
|
+
25,
|
|
2174
|
+
27
|
|
2175
|
+
],
|
|
2176
|
+
"lib/source_monitor/setup/workflow.rb": [
|
|
2177
|
+
12,
|
|
2178
|
+
13,
|
|
2179
|
+
19,
|
|
2180
|
+
20,
|
|
2181
|
+
22,
|
|
2182
|
+
38,
|
|
2183
|
+
39,
|
|
2184
|
+
40,
|
|
2185
|
+
41,
|
|
2186
|
+
42,
|
|
2187
|
+
43,
|
|
2188
|
+
44,
|
|
2189
|
+
45,
|
|
2190
|
+
46,
|
|
2191
|
+
47,
|
|
2192
|
+
51,
|
|
2193
|
+
52,
|
|
2194
|
+
54,
|
|
2195
|
+
56,
|
|
2196
|
+
57,
|
|
2197
|
+
58,
|
|
2198
|
+
59,
|
|
2199
|
+
60,
|
|
2200
|
+
61,
|
|
2201
|
+
63,
|
|
2202
|
+
64,
|
|
2203
|
+
67,
|
|
2204
|
+
84,
|
|
2205
|
+
88,
|
|
2206
|
+
92,
|
|
2207
|
+
93,
|
|
2208
|
+
95
|
|
2209
|
+
],
|
|
1994
2210
|
"lib/source_monitor/turbo_streams/stream_responder.rb": [
|
|
1995
2211
|
35,
|
|
1996
2212
|
36,
|
|
@@ -2006,5 +2222,32 @@
|
|
|
2006
2222
|
1,
|
|
2007
2223
|
2,
|
|
2008
2224
|
3
|
|
2225
|
+
],
|
|
2226
|
+
"lib/tasks/source_monitor_assets.rake": [
|
|
2227
|
+
7,
|
|
2228
|
+
12
|
|
2229
|
+
],
|
|
2230
|
+
"lib/tasks/source_monitor_setup.rake": [
|
|
2231
|
+
31
|
|
2232
|
+
],
|
|
2233
|
+
"lib/tasks/source_monitor_tasks.rake": [
|
|
2234
|
+
5,
|
|
2235
|
+
7,
|
|
2236
|
+
8,
|
|
2237
|
+
9,
|
|
2238
|
+
10,
|
|
2239
|
+
13,
|
|
2240
|
+
14,
|
|
2241
|
+
17,
|
|
2242
|
+
22,
|
|
2243
|
+
23,
|
|
2244
|
+
24,
|
|
2245
|
+
26
|
|
2246
|
+
],
|
|
2247
|
+
"lib/tasks/test_smoke.rake": [
|
|
2248
|
+
6,
|
|
2249
|
+
7,
|
|
2250
|
+
8,
|
|
2251
|
+
10
|
|
2009
2252
|
]
|
|
2010
2253
|
}
|
data/docs/deployment.md
CHANGED
|
@@ -61,3 +61,11 @@ Keep this guide alongside your platform runbooks so teams can confidently deploy
|
|
|
61
61
|
## Container Reference Stack
|
|
62
62
|
|
|
63
63
|
The repository ships a reusable Docker stack under `examples/docker` that mirrors the recommended process model. It builds a Ruby 3.3 image with Node, mounts your generated example via `APP_PATH`, and launches three services (`web`, `worker`, `scheduler`) alongside Postgres and Redis. Use it to trial production settings locally or as a baseline for ECS/Kubernetes manifests.
|
|
64
|
+
|
|
65
|
+
## Setup Workflow Rollout Checklist
|
|
66
|
+
|
|
67
|
+
1. **Adopt the CLI** – add `bin/source_monitor install --yes` (or an equivalent rake task wrapper) to your internal onboarding docs for both greenfield apps and existing hosts. Pair it with `bin/source_monitor verify` so operators can re-check queue/Action Cable health after deployments.
|
|
68
|
+
2. **CI Gate** – extend your deploy pipeline to invoke `bin/source_monitor verify` right after migrations. Fail the build when the command exits non-zero and surface the JSON blob produced by the printer for diagnostics. This step replaces ad-hoc “did you start Solid Queue?” questions before merging.
|
|
69
|
+
3. **Telemetry Opt-In** – set `SOURCE_MONITOR_SETUP_TELEMETRY=true` in staging/pre-prod so setup runs append logs to `log/source_monitor_setup.log`. Ship the file as a build artifact for debugging failed installs.
|
|
70
|
+
4. **Rollback Ready** – reference `docs/setup.md#rollback-steps` in your release checklist so anyone piloting the workflow knows how to revert gem/routes/initializer changes if the experiment needs to pause.
|
|
71
|
+
5. **Worker Coverage** – ensure at least one Solid Queue worker is running (or emits a heartbeat) before moving the PR out of draft; otherwise verification exits with a warning and CI will fail.
|
data/docs/gh-cli-workflow.md
CHANGED
|
@@ -6,7 +6,11 @@ Use this checklist whenever you create or land a slice. It keeps `gh` commands p
|
|
|
6
6
|
1. `git checkout main && git fetch origin && git reset --hard origin/main`
|
|
7
7
|
2. `git checkout -b <feature|bugfix>/<description>`
|
|
8
8
|
3. Do the work, run tests/lint, then `git commit -am "scope: summary"`
|
|
9
|
-
4.
|
|
9
|
+
4. Run the coverage gate locally before pushing:
|
|
10
|
+
- `bin/test-coverage`
|
|
11
|
+
- `bin/check-diff-coverage`
|
|
12
|
+
- If new code is intentionally uncovered, refresh the baseline with `bin/update-coverage-baseline` and commit the updated `config/coverage_baseline.json`.
|
|
13
|
+
5. Push: `git push -u origin <branch>`
|
|
10
14
|
|
|
11
15
|
## 2. Open a PR (as draft)
|
|
12
16
|
1. `gh pr create --base main --head <branch> --title "scope: summary" --body "## Summary\n..." --draft`
|