evilution 0.32.0 → 0.34.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.beads/interactions.jsonl +28 -0
  3. data/.rubocop_todo.yml +1 -0
  4. data/CHANGELOG.md +31 -0
  5. data/README.md +12 -10
  6. data/docs/integrations.md +15 -0
  7. data/docs/isolation.md +46 -2
  8. data/lib/evilution/baseline.rb +11 -4
  9. data/lib/evilution/cli/parser/options_builder.rb +17 -0
  10. data/lib/evilution/config/validators/example_targeting_strategy.rb +22 -0
  11. data/lib/evilution/config.rb +16 -2
  12. data/lib/evilution/coverage/digest.rb +16 -0
  13. data/lib/evilution/coverage/map.rb +64 -0
  14. data/lib/evilution/coverage/map_builder.rb +82 -0
  15. data/lib/evilution/coverage/map_store.rb +87 -0
  16. data/lib/evilution/coverage/recorder.rb +85 -0
  17. data/lib/evilution/coverage.rb +8 -0
  18. data/lib/evilution/coverage_example_filter.rb +41 -0
  19. data/lib/evilution/integration/loading/test_load_path.rb +76 -0
  20. data/lib/evilution/integration/minitest.rb +5 -1
  21. data/lib/evilution/integration/rspec/state_guard/configuration_state.rb +72 -0
  22. data/lib/evilution/integration/rspec/state_guard/configuration_streams.rb +45 -0
  23. data/lib/evilution/integration/rspec/state_guard.rb +3 -1
  24. data/lib/evilution/integration/test_unit.rb +12 -4
  25. data/lib/evilution/isolation/fork.rb +38 -50
  26. data/lib/evilution/parallel/work_queue/dispatcher/deadline_tracker.rb +63 -0
  27. data/lib/evilution/parallel/work_queue/dispatcher.rb +70 -25
  28. data/lib/evilution/parallel/work_queue/worker.rb +50 -14
  29. data/lib/evilution/parallel/work_queue.rb +8 -0
  30. data/lib/evilution/process_supervisor.rb +259 -0
  31. data/lib/evilution/reporter/cli/line_formatters/unresolved_rate_warning.rb +50 -0
  32. data/lib/evilution/reporter/cli/metrics_block.rb +2 -0
  33. data/lib/evilution/runner/baseline_runner.rb +52 -0
  34. data/lib/evilution/runner/isolation_resolver.rb +106 -12
  35. data/lib/evilution/runner/mutation_executor/strategy/parallel.rb +28 -1
  36. data/lib/evilution/runner.rb +7 -0
  37. data/lib/evilution/spec_resolver.rb +147 -9
  38. data/lib/evilution/spec_selector.rb +14 -4
  39. data/lib/evilution/version.rb +1 -1
  40. data/lib/evilution.rb +1 -0
  41. data/lib/tasks/stress.rake +15 -0
  42. data/scripts/canary_manifest.yml +47 -0
  43. data/scripts/compare_targeting +277 -0
  44. data/scripts/compare_targeting.example.yml +24 -0
  45. metadata +20 -2
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evilution
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.32.0
4
+ version: 0.34.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Kiselev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-05-31 00:00:00.000000000 Z
11
+ date: 2026-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs
@@ -180,6 +180,7 @@ files:
180
180
  - lib/evilution/config/validators/base.rb
181
181
  - lib/evilution/config/validators/example_targeting_cache.rb
182
182
  - lib/evilution/config/validators/example_targeting_fallback.rb
183
+ - lib/evilution/config/validators/example_targeting_strategy.rb
183
184
  - lib/evilution/config/validators/fail_fast.rb
184
185
  - lib/evilution/config/validators/hooks.rb
185
186
  - lib/evilution/config/validators/ignore_patterns.rb
@@ -190,6 +191,13 @@ files:
190
191
  - lib/evilution/config/validators/profile.rb
191
192
  - lib/evilution/config/validators/spec_mappings.rb
192
193
  - lib/evilution/config/validators/spec_pattern.rb
194
+ - lib/evilution/coverage.rb
195
+ - lib/evilution/coverage/digest.rb
196
+ - lib/evilution/coverage/map.rb
197
+ - lib/evilution/coverage/map_builder.rb
198
+ - lib/evilution/coverage/map_store.rb
199
+ - lib/evilution/coverage/recorder.rb
200
+ - lib/evilution/coverage_example_filter.rb
193
201
  - lib/evilution/disable_comment.rb
194
202
  - lib/evilution/equivalent.rb
195
203
  - lib/evilution/equivalent/detector.rb
@@ -223,6 +231,7 @@ files:
223
231
  - lib/evilution/integration/loading/redefinition_recovery.rb
224
232
  - lib/evilution/integration/loading/source_evaluator.rb
225
233
  - lib/evilution/integration/loading/syntax_validator.rb
234
+ - lib/evilution/integration/loading/test_load_path.rb
226
235
  - lib/evilution/integration/minitest.rb
227
236
  - lib/evilution/integration/minitest_crash_detector.rb
228
237
  - lib/evilution/integration/rspec.rb
@@ -232,6 +241,8 @@ files:
232
241
  - lib/evilution/integration/rspec/framework_loader.rb
233
242
  - lib/evilution/integration/rspec/result_builder.rb
234
243
  - lib/evilution/integration/rspec/state_guard.rb
244
+ - lib/evilution/integration/rspec/state_guard/configuration_state.rb
245
+ - lib/evilution/integration/rspec/state_guard/configuration_streams.rb
235
246
  - lib/evilution/integration/rspec/state_guard/example_groups_constants.rb
236
247
  - lib/evilution/integration/rspec/state_guard/internals.rb
237
248
  - lib/evilution/integration/rspec/state_guard/object_space_example_groups.rb
@@ -365,6 +376,7 @@ files:
365
376
  - lib/evilution/parallel/work_queue/channel/frame.rb
366
377
  - lib/evilution/parallel/work_queue/collection_state.rb
367
378
  - lib/evilution/parallel/work_queue/dispatcher.rb
379
+ - lib/evilution/parallel/work_queue/dispatcher/deadline_tracker.rb
368
380
  - lib/evilution/parallel/work_queue/validators.rb
369
381
  - lib/evilution/parallel/work_queue/validators/optional_positive_int.rb
370
382
  - lib/evilution/parallel/work_queue/validators/optional_positive_number.rb
@@ -374,6 +386,7 @@ files:
374
386
  - lib/evilution/parallel/work_queue/worker_stat.rb
375
387
  - lib/evilution/parallel_db_warning.rb
376
388
  - lib/evilution/process_cleanup.rb
389
+ - lib/evilution/process_supervisor.rb
377
390
  - lib/evilution/rails_detector.rb
378
391
  - lib/evilution/related_spec_heuristic.rb
379
392
  - lib/evilution/reporter.rb
@@ -394,6 +407,7 @@ files:
394
407
  - lib/evilution/reporter/cli/line_formatters/result_line.rb
395
408
  - lib/evilution/reporter/cli/line_formatters/score.rb
396
409
  - lib/evilution/reporter/cli/line_formatters/truncation_notice.rb
410
+ - lib/evilution/reporter/cli/line_formatters/unresolved_rate_warning.rb
397
411
  - lib/evilution/reporter/cli/metrics_block.rb
398
412
  - lib/evilution/reporter/cli/pct.rb
399
413
  - lib/evilution/reporter/cli/section.rb
@@ -484,6 +498,7 @@ files:
484
498
  - lib/evilution/temp_dir_tracker.rb
485
499
  - lib/evilution/version.rb
486
500
  - lib/tasks/memory_check.rake
501
+ - lib/tasks/stress.rake
487
502
  - schema/evilution.config.schema.json
488
503
  - script/build_runtime_snapshot
489
504
  - script/memory_check
@@ -491,8 +506,11 @@ files:
491
506
  - script/run_self_validation
492
507
  - scripts/benchmark_density
493
508
  - scripts/benchmark_density.yml
509
+ - scripts/canary_manifest.yml
494
510
  - scripts/compare_mutations
495
511
  - scripts/compare_mutations.yml
512
+ - scripts/compare_targeting
513
+ - scripts/compare_targeting.example.yml
496
514
  - scripts/mutant_json_adapter
497
515
  - sig/evilution.rbs
498
516
  homepage: https://github.com/marinazzio/evilution