stackharbinger 1.0.0 → 1.0.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 +4 -4
- data/README.md +10 -10
- data/docs/index.html +28 -34
- data/lib/harbinger/cli.rb +17 -6
- data/lib/harbinger/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4cb642687a0db32edfc5aa0934dae836060094123841cbebaa747581d5cd8ee7
|
|
4
|
+
data.tar.gz: c225b4a834ce6dbfa3d4a8621fec45341d3badee7f60b6c7cb5a6488c974631f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7b973897b72471dfbd967a19d09d4f3b060e05fd48016838851406ff8b69494c8bcb4817332d302982dd7d962bd74492228f36b7f7f2f3f1b2c79e7c1300a5e3
|
|
7
|
+
data.tar.gz: b607a20bbdf91520ef4a8bb08514773b2c9d640d5a001dc7e034a7d04c4f14477664c05237aa8e60b2d4a0a4e392a21e886653ddf24fc601f852d53423f28e99
|
data/README.md
CHANGED
|
@@ -134,22 +134,22 @@ Ruby Ecosystem (7)
|
|
|
134
134
|
|
|
135
135
|
Python Ecosystem (3)
|
|
136
136
|
================================================================================
|
|
137
|
-
|
|
138
|
-
│ Project │ Python │ PostgreSQL │ Status
|
|
139
|
-
|
|
137
|
+
┌──────────────┬────────┬────────────┬───────────┐
|
|
138
|
+
│ Project │ Python │ PostgreSQL │ Status │
|
|
139
|
+
├──────────────┼────────┼────────────┼───────────┤
|
|
140
140
|
│ ml-pipeline │ 3.11 │ 16.0 │ ✓ Current │
|
|
141
141
|
│ data-scraper │ 3.12 │ - │ ✓ Current │
|
|
142
142
|
│ ai-worker │ 3.13 │ 15.0 │ ✓ Current │
|
|
143
|
-
|
|
143
|
+
└──────────────┴────────┴────────────┴───────────┘
|
|
144
144
|
|
|
145
145
|
Node.js Ecosystem (2)
|
|
146
146
|
================================================================================
|
|
147
|
-
|
|
148
|
-
│ Project
|
|
149
|
-
|
|
150
|
-
│ frontend-app
|
|
151
|
-
│ realtime-api
|
|
152
|
-
|
|
147
|
+
┌──────────────┬─────────┬────────────┬───────────────────────┐
|
|
148
|
+
│ Project │ Node.js │ PostgreSQL │ Status │
|
|
149
|
+
├──────────────┼─────────┼────────────┼───────────────────────┤
|
|
150
|
+
│ frontend-app │ 18.0 │ - │ ⚠ Node.js ending soon │
|
|
151
|
+
│ realtime-api │ 22.0 │ 16.0 │ ✓ Current │
|
|
152
|
+
└──────────────┴─────────┴────────────┴───────────────────────┘
|
|
153
153
|
```
|
|
154
154
|
|
|
155
155
|
Projects are grouped by their primary programming language ecosystem. Each ecosystem only displays relevant components (e.g., Python projects don't show Ruby/Rails columns).
|
data/docs/index.html
CHANGED
|
@@ -112,43 +112,37 @@
|
|
|
112
112
|
<h3 class="text-2xl font-semibold mb-4">Dashboard with Ecosystem Grouping</h3>
|
|
113
113
|
<p class="text-gray-600 mb-4">Projects are organized by their primary programming language ecosystem, showing only relevant components:</p>
|
|
114
114
|
|
|
115
|
-
<div class="bg-gray-900 rounded-lg p-6
|
|
116
|
-
<
|
|
117
|
-
|
|
115
|
+
<div class="bg-gray-900 rounded-lg p-6 overflow-x-auto mb-8">
|
|
116
|
+
<pre class="font-mono text-xs text-white"><span class="text-gray-400">$ harbinger show</span>
|
|
117
|
+
Tracked Projects (12)
|
|
118
118
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
<div>└─────────────────┴───────┴──────────┴────────────┴───────┴─────────────────┘</div>
|
|
129
|
-
</div>
|
|
119
|
+
<span class="text-cyan-400">Ruby Ecosystem (7)</span>
|
|
120
|
+
<span class="text-gray-400">================================================================================</span>
|
|
121
|
+
┌─────────────────┬───────┬──────────┬────────────┬───────┬─────────────────┐
|
|
122
|
+
│ Project │ Ruby │ Rails │ PostgreSQL │ Redis │ Status │
|
|
123
|
+
├─────────────────┼───────┼──────────┼────────────┼───────┼─────────────────┤
|
|
124
|
+
│ shop-api │ 3.2.0 │ 6.1.7 │ 15.0 │ - │ <span class="text-red-400">✗ Rails EOL</span> │
|
|
125
|
+
│ blog-engine │ 3.3.0 │ 7.0.8 │ 16.0 │ 7.0 │ <span class="text-red-400">✗ Rails EOL</span> │
|
|
126
|
+
│ admin-portal │ 3.3.0 │ 8.0.4 │ 16.11 │ 7.2 │ <span class="text-green-400">✓ Current</span> │
|
|
127
|
+
└─────────────────┴───────┴──────────┴────────────┴───────┴─────────────────┘
|
|
130
128
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
<div>└──────────────┴────────┴────────────┴─────────┘</div>
|
|
140
|
-
</div>
|
|
129
|
+
<span class="text-cyan-400">Python Ecosystem (3)</span>
|
|
130
|
+
<span class="text-gray-400">================================================================================</span>
|
|
131
|
+
┌──────────────┬────────┬────────────┬───────────┐
|
|
132
|
+
│ Project │ Python │ PostgreSQL │ Status │
|
|
133
|
+
├──────────────┼────────┼────────────┼───────────┤
|
|
134
|
+
│ ml-pipeline │ 3.11 │ 16.0 │ <span class="text-green-400">✓ Current</span> │
|
|
135
|
+
│ data-scraper │ 3.12 │ - │ <span class="text-green-400">✓ Current</span> │
|
|
136
|
+
└──────────────┴────────┴────────────┴───────────┘
|
|
141
137
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
<div>└──────────────┴─────────┴────────────┴─────────┘</div>
|
|
151
|
-
</div>
|
|
138
|
+
<span class="text-cyan-400">Node.js Ecosystem (2)</span>
|
|
139
|
+
<span class="text-gray-400">================================================================================</span>
|
|
140
|
+
┌──────────────┬─────────┬────────────┬───────────────────────┐
|
|
141
|
+
│ Project │ Node.js │ PostgreSQL │ Status │
|
|
142
|
+
├──────────────┼─────────┼────────────┼───────────────────────┤
|
|
143
|
+
│ frontend-app │ 18.0 │ - │ <span class="text-yellow-400">⚠ Node.js ending soon</span> │
|
|
144
|
+
│ realtime-api │ 22.0 │ 16.0 │ <span class="text-green-400">✓ Current</span> │
|
|
145
|
+
└──────────────┴─────────┴────────────┴───────────────────────┘</pre>
|
|
152
146
|
</div>
|
|
153
147
|
|
|
154
148
|
<h3 class="text-2xl font-semibold mb-4 mt-8">Commands</h3>
|
data/lib/harbinger/cli.rb
CHANGED
|
@@ -82,7 +82,8 @@ module Harbinger
|
|
|
82
82
|
"mongo" => "mongodb",
|
|
83
83
|
"python" => "python",
|
|
84
84
|
"nodejs" => "nodejs",
|
|
85
|
-
"rust" => "rust"
|
|
85
|
+
"rust" => "rust",
|
|
86
|
+
"go" => "go"
|
|
86
87
|
}.freeze
|
|
87
88
|
|
|
88
89
|
desc "scan", "Scan a project directory and detect versions"
|
|
@@ -303,7 +304,13 @@ module Harbinger
|
|
|
303
304
|
|
|
304
305
|
product_name = PRODUCT_NAME_MAP[component]
|
|
305
306
|
eol_date = fetcher.eol_date_for(product_name, version)
|
|
306
|
-
return nil
|
|
307
|
+
return nil if eol_date.nil?
|
|
308
|
+
|
|
309
|
+
# Handle actively supported versions (eol = false)
|
|
310
|
+
if eol_date == false
|
|
311
|
+
component_display = COMPONENT_DISPLAY_NAMES[component] || component.capitalize
|
|
312
|
+
return { status: :green, text: "✓ Current", days: Float::INFINITY }
|
|
313
|
+
end
|
|
307
314
|
|
|
308
315
|
days = days_until(eol_date)
|
|
309
316
|
status = eol_color(days)
|
|
@@ -660,16 +667,20 @@ module Harbinger
|
|
|
660
667
|
|
|
661
668
|
eol_date = fetcher.eol_date_for(product_key, version)
|
|
662
669
|
|
|
663
|
-
if eol_date
|
|
670
|
+
if eol_date.nil?
|
|
671
|
+
say "\n#{product} #{version}:", :white
|
|
672
|
+
say " EOL Date: Unknown (version not found in database)", :yellow
|
|
673
|
+
elsif eol_date == false
|
|
674
|
+
say "\n#{product} #{version}:", :white
|
|
675
|
+
say " EOL Date: N/A (currently supported)", :green
|
|
676
|
+
say " Status: Active support", :green
|
|
677
|
+
else
|
|
664
678
|
days_until_eol = days_until(eol_date)
|
|
665
679
|
color = eol_color(days_until_eol)
|
|
666
680
|
|
|
667
681
|
say "\n#{product} #{version}:", :white
|
|
668
682
|
say " EOL Date: #{eol_date}", color
|
|
669
683
|
say " Status: #{eol_status(days_until_eol)}", color
|
|
670
|
-
else
|
|
671
|
-
say "\n#{product} #{version}:", :white
|
|
672
|
-
say " EOL Date: Unknown (version not found in database)", :yellow
|
|
673
684
|
end
|
|
674
685
|
end
|
|
675
686
|
|
data/lib/harbinger/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: stackharbinger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rich Dabrowski
|
|
@@ -79,8 +79,10 @@ dependencies:
|
|
|
79
79
|
- - "~>"
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
81
|
version: '0.21'
|
|
82
|
-
description: Harbinger
|
|
83
|
-
|
|
82
|
+
description: Harbinger tracks EOL dates for Ruby, Rails, Python, Node.js, Rust, Go,
|
|
83
|
+
PostgreSQL, MySQL, Redis, and MongoDB. Auto-detects versions from your projects
|
|
84
|
+
and alerts you before support ends. Features ecosystem-grouped dashboard, JSON/CSV
|
|
85
|
+
export, and bulk scanning.
|
|
84
86
|
email:
|
|
85
87
|
- engineering@richd.net
|
|
86
88
|
executables:
|