necropsy 0.1.0 → 0.3.0
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/.rubocop.yml +33 -0
- data/CHANGELOG.md +44 -0
- data/MEASUREMENTS.md +112 -0
- data/README.md +233 -16
- data/Rakefile +3 -1
- data/bench/README.md +92 -0
- data/bench/audit.rb +113 -0
- data/bench/audits/0.2.1/audit.json +501 -0
- data/bench/audits/0.2.1/audit.md +55 -0
- data/bench/audits/0.2.1/baseline_performance.yml +16 -0
- data/bench/audits/0.2.1/config.yml +42 -0
- data/bench/audits/0.2.1/review.yml +56 -0
- data/bench/audits/0.2.1/review_queue.yml +3651 -0
- data/bench/corpora/v1/README.md +30 -0
- data/bench/corpora/v1/labels.yml +37 -0
- data/bench/corpora/v1/manifest.yml +63 -0
- data/bench/corpora/v1/rubocop.necropsy.yml +7 -0
- data/bench/corpora/v1/self.necropsy.yml +8 -0
- data/bench/corpora/v1/tools/debride.yml +42 -0
- data/bench/corpora/v1/tools/spoom.yml +12 -0
- data/bench/corpora/v1/tools/type_aware.yml +11 -0
- data/bench/golden/v1/candidate_union.json +21918 -0
- data/bench/golden/v1/metadata.json +12 -0
- data/bench/golden/v1/reports/dynamic_evidence.json +146 -0
- data/bench/golden/v1/reports/plain_ruby.json +135 -0
- data/bench/golden/v1/reports/rails.json +176 -0
- data/bench/golden/v1/reports/rubocop_1_75_0.json +26848 -0
- data/bench/golden/v1/reports/self.json +3449 -0
- data/bench/review_queue.rb +35 -0
- data/bench/run.rb +31 -0
- data/bench/schema/candidate-union-v1.schema.json +70 -0
- data/docs/impv_implementation_matrix.md +179 -0
- data/docs/migrations/0.2.1.md +57 -0
- data/docs/migrations/0.3.0.md +207 -0
- data/docs/migrations/0.4.0.md +13 -0
- data/docs/necropsy_performance_adr.md +43 -0
- data/docs/necropsy_scope_decisions.md +58 -0
- data/docs/necropsy_type_facts_adr.md +22 -0
- data/gemfiles/prism_min.gemfile +9 -0
- data/gemfiles/prism_min.gemfile.lock +50 -0
- data/lib/necropsy/analyzer.rb +121 -2
- data/lib/necropsy/analyzers/dynamic/coverage_collector.rb +81 -19
- data/lib/necropsy/analyzers/dynamic/coverage_importer.rb +104 -10
- data/lib/necropsy/analyzers/dynamic/coverband_importer.rb +74 -250
- data/lib/necropsy/analyzers/dynamic/coverband_payload_set.rb +149 -0
- data/lib/necropsy/analyzers/dynamic/observation_policy.rb +96 -0
- data/lib/necropsy/analyzers/dynamic/redis_input_limits.rb +121 -0
- data/lib/necropsy/analyzers/dynamic/redis_nonblocking_io.rb +94 -0
- data/lib/necropsy/analyzers/dynamic/redis_payload_loader.rb +165 -0
- data/lib/necropsy/analyzers/dynamic/redis_transport.rb +217 -0
- data/lib/necropsy/analyzers/dynamic/runtime_reference.rb +96 -0
- data/lib/necropsy/analyzers/dynamic/trace_point_collector.rb +225 -20
- data/lib/necropsy/analyzers/dynamic/trace_point_importer.rb +3 -1
- data/lib/necropsy/analyzers/legacy_result_adapter.rb +226 -0
- data/lib/necropsy/analyzers/static/cha.rb +33 -69
- data/lib/necropsy/analyzers/static/name_resolution.rb +151 -21
- data/lib/necropsy/analyzers/static/rta.rb +249 -25
- data/lib/necropsy/ast_scanner/call_recording.rb +275 -0
- data/lib/necropsy/ast_scanner/call_site_creation.rb +54 -0
- data/lib/necropsy/ast_scanner/definition_creation.rb +43 -0
- data/lib/necropsy/ast_scanner/dsl_macros.rb +532 -0
- data/lib/necropsy/ast_scanner/method_definitions.rb +358 -0
- data/lib/necropsy/ast_scanner/references.rb +115 -0
- data/lib/necropsy/ast_scanner/ruby_semantics.rb +263 -0
- data/lib/necropsy/ast_scanner/traversal.rb +347 -0
- data/lib/necropsy/ast_scanner/value_definitions.rb +78 -0
- data/lib/necropsy/ast_scanner.rb +89 -564
- data/lib/necropsy/bench/candidate_union.rb +555 -0
- data/lib/necropsy/bench/claim_gate.rb +112 -0
- data/lib/necropsy/bench/evaluator.rb +356 -24
- data/lib/necropsy/bench/finding_facts.rb +152 -0
- data/lib/necropsy/bench/precision_gate.rb +144 -0
- data/lib/necropsy/bench/release_audit/adversarial_runner.rb +56 -0
- data/lib/necropsy/bench/release_audit/artifact_writer.rb +112 -0
- data/lib/necropsy/bench/release_audit/config_validator.rb +112 -0
- data/lib/necropsy/bench/release_audit/git_snapshot.rb +36 -0
- data/lib/necropsy/bench/release_audit/performance_gate.rb +165 -0
- data/lib/necropsy/bench/release_audit/run_provenance.rb +133 -0
- data/lib/necropsy/bench/release_audit.rb +360 -0
- data/lib/necropsy/bench/report_normalizer.rb +140 -0
- data/lib/necropsy/bench/review_queue.rb +154 -0
- data/lib/necropsy/bench/safety_mutation_harness.rb +59 -0
- data/lib/necropsy/bench/seed_runner.rb +408 -0
- data/lib/necropsy/bounded_canonicalizer.rb +218 -0
- data/lib/necropsy/cache/scan_cache.rb +94 -18
- data/lib/necropsy/call_site_identity.rb +54 -0
- data/lib/necropsy/cli.rb +296 -53
- data/lib/necropsy/clock.rb +40 -0
- data/lib/necropsy/confidence/scorer.rb +181 -58
- data/lib/necropsy/configuration.rb +339 -18
- data/lib/necropsy/convention_rules.rb +138 -0
- data/lib/necropsy/definition_identity/canonical_digest.rb +278 -0
- data/lib/necropsy/definition_identity.rb +37 -0
- data/lib/necropsy/diagnostics.rb +342 -0
- data/lib/necropsy/embedded_ruby.rb +55 -0
- data/lib/necropsy/entry_points/plain.rb +125 -7
- data/lib/necropsy/entry_points/rails.rb +422 -105
- data/lib/necropsy/entry_points/test.rb +6 -1
- data/lib/necropsy/flow_interpreter.rb +460 -0
- data/lib/necropsy/graph/blocker_matching.rb +338 -0
- data/lib/necropsy/graph/call_graph.rb +1234 -62
- data/lib/necropsy/graph/definition_index.rb +149 -0
- data/lib/necropsy/graph/dynamic_evidence_tracking.rb +206 -0
- data/lib/necropsy/graph/evidence_store.rb +213 -0
- data/lib/necropsy/graph/resolution_store.rb +497 -0
- data/lib/necropsy/graph_self_check.rb +79 -0
- data/lib/necropsy/guardrail/baseline.rb +359 -13
- data/lib/necropsy/guardrail/diff.rb +5 -2
- data/lib/necropsy/guardrail/quarantine.rb +101 -10
- data/lib/necropsy/load_graph.rb +206 -0
- data/lib/necropsy/models.rb +894 -21
- data/lib/necropsy/performance_profiler.rb +108 -0
- data/lib/necropsy/project.rb +361 -13
- data/lib/necropsy/reachability/engine.rb +80 -15
- data/lib/necropsy/reference_barrier.rb +458 -0
- data/lib/necropsy/report.rb +153 -14
- data/lib/necropsy/reporter.rb +441 -19
- data/lib/necropsy/runner.rb +258 -14
- data/lib/necropsy/runtime_feedback.rb +136 -0
- data/lib/necropsy/semantics_matrix.rb +153 -0
- data/lib/necropsy/trace_point_runtime.rb +19 -0
- data/lib/necropsy/type_facts.rb +53 -0
- data/lib/necropsy/version.rb +1 -1
- data/lib/necropsy/why_not_explanation.rb +436 -0
- data/lib/necropsy/why_not_renderer.rb +197 -0
- data/lib/necropsy/world_policy.rb +90 -0
- data/lib/necropsy.rb +39 -2
- data/schema/necropsy-report-v2.schema.json +366 -0
- data/script/measure.rb +20 -0
- metadata +106 -2
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: necropsy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yudai Takada
|
|
@@ -16,6 +16,9 @@ dependencies:
|
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
18
|
version: '1.0'
|
|
19
|
+
- - "<"
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '2.0'
|
|
19
22
|
type: :runtime
|
|
20
23
|
prerelease: false
|
|
21
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -23,6 +26,9 @@ dependencies:
|
|
|
23
26
|
- - ">="
|
|
24
27
|
- !ruby/object:Gem::Version
|
|
25
28
|
version: '1.0'
|
|
29
|
+
- - "<"
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: '2.0'
|
|
26
32
|
description: Necropsy combines static call-graph reachability, optional dynamic evidence,
|
|
27
33
|
and CI guardrails for Ruby dead-code detection.
|
|
28
34
|
email:
|
|
@@ -32,48 +38,146 @@ executables:
|
|
|
32
38
|
extensions: []
|
|
33
39
|
extra_rdoc_files: []
|
|
34
40
|
files:
|
|
41
|
+
- ".rubocop.yml"
|
|
42
|
+
- CHANGELOG.md
|
|
35
43
|
- LICENSE.txt
|
|
44
|
+
- MEASUREMENTS.md
|
|
36
45
|
- README.md
|
|
37
46
|
- Rakefile
|
|
47
|
+
- bench/README.md
|
|
48
|
+
- bench/audit.rb
|
|
49
|
+
- bench/audits/0.2.1/audit.json
|
|
50
|
+
- bench/audits/0.2.1/audit.md
|
|
51
|
+
- bench/audits/0.2.1/baseline_performance.yml
|
|
52
|
+
- bench/audits/0.2.1/config.yml
|
|
53
|
+
- bench/audits/0.2.1/review.yml
|
|
54
|
+
- bench/audits/0.2.1/review_queue.yml
|
|
55
|
+
- bench/corpora/v1/README.md
|
|
56
|
+
- bench/corpora/v1/labels.yml
|
|
57
|
+
- bench/corpora/v1/manifest.yml
|
|
58
|
+
- bench/corpora/v1/rubocop.necropsy.yml
|
|
59
|
+
- bench/corpora/v1/self.necropsy.yml
|
|
60
|
+
- bench/corpora/v1/tools/debride.yml
|
|
61
|
+
- bench/corpora/v1/tools/spoom.yml
|
|
62
|
+
- bench/corpora/v1/tools/type_aware.yml
|
|
63
|
+
- bench/golden/v1/candidate_union.json
|
|
64
|
+
- bench/golden/v1/metadata.json
|
|
65
|
+
- bench/golden/v1/reports/dynamic_evidence.json
|
|
66
|
+
- bench/golden/v1/reports/plain_ruby.json
|
|
67
|
+
- bench/golden/v1/reports/rails.json
|
|
68
|
+
- bench/golden/v1/reports/rubocop_1_75_0.json
|
|
69
|
+
- bench/golden/v1/reports/self.json
|
|
70
|
+
- bench/review_queue.rb
|
|
71
|
+
- bench/run.rb
|
|
72
|
+
- bench/schema/candidate-union-v1.schema.json
|
|
73
|
+
- docs/impv_implementation_matrix.md
|
|
74
|
+
- docs/migrations/0.2.1.md
|
|
75
|
+
- docs/migrations/0.3.0.md
|
|
76
|
+
- docs/migrations/0.4.0.md
|
|
77
|
+
- docs/necropsy_performance_adr.md
|
|
78
|
+
- docs/necropsy_scope_decisions.md
|
|
79
|
+
- docs/necropsy_type_facts_adr.md
|
|
38
80
|
- exe/necropsy
|
|
81
|
+
- gemfiles/prism_min.gemfile
|
|
82
|
+
- gemfiles/prism_min.gemfile.lock
|
|
39
83
|
- lib/necropsy.rb
|
|
40
84
|
- lib/necropsy/analyzer.rb
|
|
41
85
|
- lib/necropsy/analyzers/dynamic/coverage_collector.rb
|
|
42
86
|
- lib/necropsy/analyzers/dynamic/coverage_importer.rb
|
|
43
87
|
- lib/necropsy/analyzers/dynamic/coverband_importer.rb
|
|
88
|
+
- lib/necropsy/analyzers/dynamic/coverband_payload_set.rb
|
|
89
|
+
- lib/necropsy/analyzers/dynamic/observation_policy.rb
|
|
90
|
+
- lib/necropsy/analyzers/dynamic/redis_input_limits.rb
|
|
91
|
+
- lib/necropsy/analyzers/dynamic/redis_nonblocking_io.rb
|
|
92
|
+
- lib/necropsy/analyzers/dynamic/redis_payload_loader.rb
|
|
93
|
+
- lib/necropsy/analyzers/dynamic/redis_transport.rb
|
|
94
|
+
- lib/necropsy/analyzers/dynamic/runtime_reference.rb
|
|
44
95
|
- lib/necropsy/analyzers/dynamic/trace_point_collector.rb
|
|
45
96
|
- lib/necropsy/analyzers/dynamic/trace_point_importer.rb
|
|
97
|
+
- lib/necropsy/analyzers/legacy_result_adapter.rb
|
|
46
98
|
- lib/necropsy/analyzers/static/cha.rb
|
|
47
99
|
- lib/necropsy/analyzers/static/name_resolution.rb
|
|
48
100
|
- lib/necropsy/analyzers/static/rta.rb
|
|
49
101
|
- lib/necropsy/ast_scanner.rb
|
|
102
|
+
- lib/necropsy/ast_scanner/call_recording.rb
|
|
103
|
+
- lib/necropsy/ast_scanner/call_site_creation.rb
|
|
104
|
+
- lib/necropsy/ast_scanner/definition_creation.rb
|
|
105
|
+
- lib/necropsy/ast_scanner/dsl_macros.rb
|
|
106
|
+
- lib/necropsy/ast_scanner/method_definitions.rb
|
|
107
|
+
- lib/necropsy/ast_scanner/references.rb
|
|
108
|
+
- lib/necropsy/ast_scanner/ruby_semantics.rb
|
|
109
|
+
- lib/necropsy/ast_scanner/traversal.rb
|
|
110
|
+
- lib/necropsy/ast_scanner/value_definitions.rb
|
|
111
|
+
- lib/necropsy/bench/candidate_union.rb
|
|
112
|
+
- lib/necropsy/bench/claim_gate.rb
|
|
50
113
|
- lib/necropsy/bench/evaluator.rb
|
|
114
|
+
- lib/necropsy/bench/finding_facts.rb
|
|
115
|
+
- lib/necropsy/bench/precision_gate.rb
|
|
116
|
+
- lib/necropsy/bench/release_audit.rb
|
|
117
|
+
- lib/necropsy/bench/release_audit/adversarial_runner.rb
|
|
118
|
+
- lib/necropsy/bench/release_audit/artifact_writer.rb
|
|
119
|
+
- lib/necropsy/bench/release_audit/config_validator.rb
|
|
120
|
+
- lib/necropsy/bench/release_audit/git_snapshot.rb
|
|
121
|
+
- lib/necropsy/bench/release_audit/performance_gate.rb
|
|
122
|
+
- lib/necropsy/bench/release_audit/run_provenance.rb
|
|
123
|
+
- lib/necropsy/bench/report_normalizer.rb
|
|
124
|
+
- lib/necropsy/bench/review_queue.rb
|
|
125
|
+
- lib/necropsy/bench/safety_mutation_harness.rb
|
|
126
|
+
- lib/necropsy/bench/seed_runner.rb
|
|
127
|
+
- lib/necropsy/bounded_canonicalizer.rb
|
|
51
128
|
- lib/necropsy/cache/scan_cache.rb
|
|
129
|
+
- lib/necropsy/call_site_identity.rb
|
|
52
130
|
- lib/necropsy/cli.rb
|
|
131
|
+
- lib/necropsy/clock.rb
|
|
53
132
|
- lib/necropsy/confidence/scorer.rb
|
|
54
133
|
- lib/necropsy/configuration.rb
|
|
134
|
+
- lib/necropsy/convention_rules.rb
|
|
55
135
|
- lib/necropsy/coverage_runtime.rb
|
|
136
|
+
- lib/necropsy/definition_identity.rb
|
|
137
|
+
- lib/necropsy/definition_identity/canonical_digest.rb
|
|
138
|
+
- lib/necropsy/diagnostics.rb
|
|
139
|
+
- lib/necropsy/embedded_ruby.rb
|
|
56
140
|
- lib/necropsy/entry_points/plain.rb
|
|
57
141
|
- lib/necropsy/entry_points/rails.rb
|
|
58
142
|
- lib/necropsy/entry_points/test.rb
|
|
143
|
+
- lib/necropsy/flow_interpreter.rb
|
|
144
|
+
- lib/necropsy/graph/blocker_matching.rb
|
|
59
145
|
- lib/necropsy/graph/call_graph.rb
|
|
146
|
+
- lib/necropsy/graph/definition_index.rb
|
|
147
|
+
- lib/necropsy/graph/dynamic_evidence_tracking.rb
|
|
148
|
+
- lib/necropsy/graph/evidence_store.rb
|
|
149
|
+
- lib/necropsy/graph/resolution_store.rb
|
|
150
|
+
- lib/necropsy/graph_self_check.rb
|
|
60
151
|
- lib/necropsy/guardrail/baseline.rb
|
|
61
152
|
- lib/necropsy/guardrail/diff.rb
|
|
62
153
|
- lib/necropsy/guardrail/quarantine.rb
|
|
154
|
+
- lib/necropsy/load_graph.rb
|
|
63
155
|
- lib/necropsy/models.rb
|
|
156
|
+
- lib/necropsy/performance_profiler.rb
|
|
64
157
|
- lib/necropsy/project.rb
|
|
65
158
|
- lib/necropsy/reachability/engine.rb
|
|
159
|
+
- lib/necropsy/reference_barrier.rb
|
|
66
160
|
- lib/necropsy/report.rb
|
|
67
161
|
- lib/necropsy/reporter.rb
|
|
68
162
|
- lib/necropsy/runner.rb
|
|
163
|
+
- lib/necropsy/runtime_feedback.rb
|
|
164
|
+
- lib/necropsy/semantics_matrix.rb
|
|
165
|
+
- lib/necropsy/trace_point_runtime.rb
|
|
166
|
+
- lib/necropsy/type_facts.rb
|
|
69
167
|
- lib/necropsy/version.rb
|
|
168
|
+
- lib/necropsy/why_not_explanation.rb
|
|
169
|
+
- lib/necropsy/why_not_renderer.rb
|
|
170
|
+
- lib/necropsy/world_policy.rb
|
|
171
|
+
- schema/necropsy-report-v2.schema.json
|
|
172
|
+
- script/measure.rb
|
|
70
173
|
homepage: https://github.com/ydah/necropsy
|
|
71
174
|
licenses:
|
|
72
175
|
- MIT
|
|
73
176
|
metadata:
|
|
74
177
|
allowed_push_host: https://rubygems.org
|
|
75
178
|
homepage_uri: https://github.com/ydah/necropsy
|
|
76
|
-
source_code_uri: https://github.com/ydah/necropsy
|
|
179
|
+
source_code_uri: https://github.com/ydah/necropsy/tree/main
|
|
180
|
+
changelog_uri: https://github.com/ydah/necropsy/blob/main/CHANGELOG.md
|
|
77
181
|
rubygems_mfa_required: 'true'
|
|
78
182
|
rdoc_options: []
|
|
79
183
|
require_paths:
|