schema_reaper 1.0.3 → 1.0.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: 22245618558de174144cf3732fbced500e89726cafdec2ab14bdefe35d535287
4
- data.tar.gz: 95a26a72863e7f603d1d6894aed3f89948f34d85959359863db83e9d01cc5d1b
3
+ metadata.gz: ac78c6af3c6c9b2551d136e276c4f258e312e6fef60945ee1507b916a11349f4
4
+ data.tar.gz: 63e813aba8d386a01a39c72aa46c6464c4b5af37268718ca14ed0da0ae6fbd30
5
5
  SHA512:
6
- metadata.gz: f98dcbc99cf5a8527ecdfbce06dfce99f6f678971c9d60ee96a030ba0b71eeac731e39f0e8dc87e697a9d74dcfec95d1fb1cfe06549a5b3db55a36580da42a7c
7
- data.tar.gz: dbcb412469b0bb09c2676706b5a11a6fb085649411d9af3c29d8e633fd208a9e83315905886cf9bc065af4d85a148cdab11101b9dc6ff09380887effbee17493
6
+ metadata.gz: c72f7ba4b88d4848cc993745ee7e7abec08a5333ff1a3c58504789e981821c48143d905235addc74655d7e57278e2d412b17914a6e19c626770edf2e7250a26a
7
+ data.tar.gz: 1e519017f31e2bdf150beb98889b980fe6d7d3de3e43a06800635955a8d2adfb1c469928eb1d9186aa720e3c8cfda12543487b93da5c772bd1370751d6ee4842
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.0.4] - 2026-09-04
4
+
5
+ ### Changed
6
+ - Rewrote `description` as a single tight paragraph. RubyGems collapses
7
+ description whitespace, so the previous multi-line bulleted text rendered as
8
+ an unreadable blob on the gem page. Full analyzer list and usage stay in the
9
+ README. Link metadata from 1.0.3 unchanged.
10
+
3
11
  ## [1.0.3] - 2026-09-04
4
12
 
5
13
  ### Changed
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SchemaReaper
4
- VERSION = "1.0.3"
4
+ VERSION = "1.0.4"
5
5
  end
@@ -8,39 +8,16 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["aksshatt"]
9
9
  spec.email = ["akshatpegwar5@gmail.com"]
10
10
 
11
- spec.summary = "Find dead columns, dead tables, unused indexes and other schema dead-weight " \
12
- "in Rails/ActiveRecord apps -- then remove it safely."
13
- spec.description = <<~DESC
14
- schema_reaper reads your live PostgreSQL schema and planner statistics and
15
- cross-references them against a Prism-AST static scan of your codebase
16
- (models, views, SQL string literals). With an optional runtime signal -- a
17
- sampled log of which columns are actually read in production -- it fuses
18
- static and runtime evidence into a confidence score per finding.
19
-
20
- Analyzers:
21
- * dead_column -- column no code path references
22
- * dead_table -- table with no model/query reference, zero rows
23
- * unused_index -- non-unique index, idx_scan = 0 in pg_stat
24
- * duplicate_index -- index that is a prefix of a wider index
25
- * missing_fk_index -- foreign-key / *_id column with no covering index
26
- * always_null_column -- pg_stats null_frac = 1.0, carries no data
27
- * single_value_column -- one distinct value across a large table
28
-
29
- Every finding carries a reclaimable-bytes estimate (from row counts) and a
30
- concrete fix. `generate-migration` emits a staged, reversible pair:
31
- ignored_columns first, remove_column after a soak. Nothing is dropped
32
- automatically. Columns owned by common gems (devise, paper_trail,
33
- activestorage, actiontext, friendly_id, audited, pg_search, ahoy_matey,
34
- paranoia) are whitelisted when the gem is in your bundle.
35
-
36
- Reporters: table, json, markdown (PR comments), SARIF 2.1.0 (GitHub code
37
- scanning). `scan --ci` gates only findings absent from a committed baseline.
38
- `trend` keeps an append-only history log for cleanup burndown. A Rails
39
- railtie adds rake tasks and an opt-in runtime tracker. Custom analyzers
40
- load through the `require:` config key.
41
-
42
- PostgreSQL only for now (MySQL adapter on the roadmap). Ruby >= 2.7.
43
- DESC
11
+ spec.summary = "Find and safely remove schema dead-weight in Rails + PostgreSQL apps."
12
+ spec.description =
13
+ "schema_reaper finds schema dead-weight in Rails/ActiveRecord + PostgreSQL apps: " \
14
+ "dead columns and tables, unused, duplicate and missing foreign-key indexes, and " \
15
+ "always-NULL or single-value columns. It cross-references the live schema and pg_stats " \
16
+ "against a static scan of your code, with an optional production runtime signal for " \
17
+ "higher confidence. Each finding is scored, carries a reclaimable-bytes estimate, and " \
18
+ "ships with a staged, reversible migration. Reporters for terminal, JSON, Markdown and " \
19
+ "SARIF; a CI baseline gate; a trend log; a Rails railtie. PostgreSQL only for now; " \
20
+ "Ruby >= 2.7. See the README for full usage."
44
21
  spec.homepage = "https://github.com/aksshatt/schema_reaper"
45
22
  spec.license = "MIT"
46
23
  spec.required_ruby_version = ">= 2.7.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_reaper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - aksshatt
@@ -78,36 +78,14 @@ dependencies:
78
78
  - - "~>"
79
79
  - !ruby/object:Gem::Version
80
80
  version: '1.5'
81
- description: |
82
- schema_reaper reads your live PostgreSQL schema and planner statistics and
83
- cross-references them against a Prism-AST static scan of your codebase
84
- (models, views, SQL string literals). With an optional runtime signal -- a
85
- sampled log of which columns are actually read in production -- it fuses
86
- static and runtime evidence into a confidence score per finding.
87
-
88
- Analyzers:
89
- * dead_column -- column no code path references
90
- * dead_table -- table with no model/query reference, zero rows
91
- * unused_index -- non-unique index, idx_scan = 0 in pg_stat
92
- * duplicate_index -- index that is a prefix of a wider index
93
- * missing_fk_index -- foreign-key / *_id column with no covering index
94
- * always_null_column -- pg_stats null_frac = 1.0, carries no data
95
- * single_value_column -- one distinct value across a large table
96
-
97
- Every finding carries a reclaimable-bytes estimate (from row counts) and a
98
- concrete fix. `generate-migration` emits a staged, reversible pair:
99
- ignored_columns first, remove_column after a soak. Nothing is dropped
100
- automatically. Columns owned by common gems (devise, paper_trail,
101
- activestorage, actiontext, friendly_id, audited, pg_search, ahoy_matey,
102
- paranoia) are whitelisted when the gem is in your bundle.
103
-
104
- Reporters: table, json, markdown (PR comments), SARIF 2.1.0 (GitHub code
105
- scanning). `scan --ci` gates only findings absent from a committed baseline.
106
- `trend` keeps an append-only history log for cleanup burndown. A Rails
107
- railtie adds rake tasks and an opt-in runtime tracker. Custom analyzers
108
- load through the `require:` config key.
109
-
110
- PostgreSQL only for now (MySQL adapter on the roadmap). Ruby >= 2.7.
81
+ description: 'schema_reaper finds schema dead-weight in Rails/ActiveRecord + PostgreSQL
82
+ apps: dead columns and tables, unused, duplicate and missing foreign-key indexes,
83
+ and always-NULL or single-value columns. It cross-references the live schema and
84
+ pg_stats against a static scan of your code, with an optional production runtime
85
+ signal for higher confidence. Each finding is scored, carries a reclaimable-bytes
86
+ estimate, and ships with a staged, reversible migration. Reporters for terminal,
87
+ JSON, Markdown and SARIF; a CI baseline gate; a trend log; a Rails railtie. PostgreSQL
88
+ only for now; Ruby >= 2.7. See the README for full usage.'
111
89
  email:
112
90
  - akshatpegwar5@gmail.com
113
91
  executables:
@@ -188,6 +166,5 @@ requirements: []
188
166
  rubygems_version: 3.4.10
189
167
  signing_key:
190
168
  specification_version: 4
191
- summary: Find dead columns, dead tables, unused indexes and other schema dead-weight
192
- in Rails/ActiveRecord apps -- then remove it safely.
169
+ summary: Find and safely remove schema dead-weight in Rails + PostgreSQL apps.
193
170
  test_files: []