jumbotron 0.1.2 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 919c3aee919ada06d4cee0f0870663c42441797ba0727babc0a00ead86c8630c
4
- data.tar.gz: e929ed6604624bab66044aaf40c0cb8a6420aa6e838a044c881480d3b8290af5
3
+ metadata.gz: 57d3fe24f637b7b9bcbc402ebe85a11fb860d2b2593bfe1f53f47a1d55d3b62a
4
+ data.tar.gz: 0d5e96cfe46ff8dad640a4ee9677e9deedaf32df7183868f13adf4a37a236c30
5
5
  SHA512:
6
- metadata.gz: 77c1b4deb6fde54b227b0cc3f41212b363dd8745dcc110ef8dffe6fdd9c1ca82f804d1d18545d59742c5a33df233ff6ba07d3ed8af4cf3d8d0f215e1678c17d9
7
- data.tar.gz: 17d5b91913fd0ff210c299732ce465f77e40de6a3511b0679f3ef3e81a03fed9e3c1f1bf1fd86bd282ac93e82912dbf96e723775719f0ce5de93d1b5d4fb1887
6
+ metadata.gz: aa98921803b8d0223cc523ce9f344857a28d71ace7140df51e026df0db2163252dd5747e9dbd0f1a849e1f0f8d3b415b00527cfccf1dc50e6c1f01d0b198c20d
7
+ data.tar.gz: b70bbde319e59a5b16b6f6b1484037034fdbe68dd3a87e163b96862c93f763dc5cdd0041305ddd164236b255b786858bd73e398bfe5133d4e7abd6d3789f580b
@@ -51,7 +51,7 @@ module Jumbotron
51
51
 
52
52
  policy :live,
53
53
  type: :live_game_update,
54
- cadence: Cadence.new(every: 2, unit: :minute),
54
+ cadence: Cadence.new(every: 1, unit: :minute),
55
55
  eligible: lambda { |game, now:|
56
56
  return false if TERMINAL_LIFECYCLES.include?(game.lifecycle)
57
57
  return false if INTERRUPTED_LIFECYCLES.include?(game.lifecycle)
@@ -4,6 +4,12 @@ module Jumbotron
4
4
  class HistoricalChange < ApplicationRecord
5
5
  belongs_to :observation_batch, inverse_of: :historical_changes
6
6
 
7
+ # Force JSON attribute types so writes are JSON.generate'd on every adapter.
8
+ # MariaDB stores t.json as LONGTEXT + json_valid CHECK; without :json, AR
9
+ # persists Ruby #inspect and discovery/evidence writes fail CheckViolation.
10
+ attribute :previous_value, :json
11
+ attribute :new_value, :json
12
+
7
13
  validates :subject_type, :subject_id, :attribute_name, :observed_at, :provider, presence: true
8
14
  end
9
15
  end
@@ -9,6 +9,8 @@ module Jumbotron
9
9
  inverse_of: :observation_batch,
10
10
  dependent: :restrict_with_exception
11
11
 
12
+ attribute :metadata, :json, default: -> { {} }
13
+
12
14
  validates :provider, :adapter_scope, :observed_at, presence: true
13
15
  end
14
16
  end
@@ -0,0 +1,19 @@
1
+ # Upgrade: Jumbotron 0.1.3
2
+
3
+ **From:** `0.1.2`
4
+ **To:** `0.1.3`
5
+
6
+ No public consumer contract break. Hosts must already run CommandTower `>= 0.12`.
7
+
8
+ ## Host-facing change
9
+
10
+ | Change | Host impact |
11
+ |--------|-------------|
12
+ | `command_tower` gemspec floor | `>= 0.12` (was `>= 0.11`). Lockfile consumes RubyGems `0.12.0`. |
13
+ | ESPN NFL `live` game cadence | Scoreboard refresh every **1 minute** (was 2). Still one week-scoped scoreboard call per tick, not one call per live game. |
14
+
15
+ ## Upgrade checklist
16
+
17
+ 1. Bump gem to `0.1.3` (or `>= 0.1.3`).
18
+ 2. Ensure the host Gemfile satisfies `command_tower >= 0.12`.
19
+ 3. Rematerialize Jumbotron recurring schedules so the live job uses `every minute`.
@@ -0,0 +1,34 @@
1
+ # Upgrade: Jumbotron 0.1.4
2
+
3
+ **From:** `0.1.3`
4
+ **To:** `0.1.4`
5
+
6
+ Patch release for MariaDB-safe observation evidence JSON persistence. No public consumer contract break. Hosts must already run CommandTower `>= 0.12`.
7
+
8
+ ## Host-facing change
9
+
10
+ | Change | Host impact |
11
+ |--------|-------------|
12
+ | `HistoricalChange` JSON coding | `previous_value` and `new_value` declare `attribute :…, :json`. Fixes `ActiveRecord::CheckViolation` on MariaDB 10.11 where `t.json` is LONGTEXT + `json_valid` CHECK (discovery / sync evidence writes). |
13
+ | `ObservationBatch` JSON coding | `metadata` declares `attribute :metadata, :json`. Defense in depth for non-empty metadata. |
14
+
15
+ ## Upgrade checklist
16
+
17
+ 1. Bump gem to `0.1.4` (or `>= 0.1.4`).
18
+ 2. **No new migration** — runtime model coder only; existing `jumbotron_*` tables unchanged.
19
+ 3. **No** recurring schedule rematerialize required for this patch.
20
+ 4. After deploy, run a **one-shot** full-season discovery if the catalog is still empty (boot discovery remains off on Pick'em):
21
+
22
+ ```ruby
23
+ Jumbotron::DiscoveryJob.perform_later(
24
+ adapter_id: "espn_nfl",
25
+ discovery_id: "full_season",
26
+ continuation_attempt: 1
27
+ )
28
+ ```
29
+
30
+ 5. Smoke: `Jumbotron::Game.count` > 0 after discovery completes; live `GameUpdateJob` ticks without `CheckViolation` on evidence writes.
31
+
32
+ ## Dummy host (engine repo)
33
+
34
+ Jumbotron dummy Compose now uses **MariaDB 10.11.14** (production parity). Recreate the Compose `mysql` volume after pulling this release.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jumbotron
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jumbotron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - matt-taylor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-22 00:00:00.000000000 Z
11
+ date: 2026-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: command_tower
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.11'
19
+ version: '0.12'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0.11'
26
+ version: '0.12'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rails
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -207,6 +207,8 @@ files:
207
207
  - db/migrate/20260820000001_add_progress_to_jumbotron_games.rb
208
208
  - docs/testing.md
209
209
  - docs/upgrades/0.1.2.md
210
+ - docs/upgrades/0.1.3.md
211
+ - docs/upgrades/0.1.4.md
210
212
  - lib/jumbotron.rb
211
213
  - lib/jumbotron/client.rb
212
214
  - lib/jumbotron/engine.rb