mutant 0.9.9 → 0.9.14

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 (252) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mutant.rb +2 -4
  3. data/lib/mutant/bootstrap.rb +14 -1
  4. data/lib/mutant/cli.rb +6 -0
  5. data/lib/mutant/isolation.rb +1 -1
  6. data/lib/mutant/isolation/fork.rb +2 -2
  7. data/lib/mutant/isolation/none.rb +1 -1
  8. data/lib/mutant/matcher/config.rb +2 -0
  9. data/lib/mutant/meta/example.rb +16 -4
  10. data/lib/mutant/meta/example/dsl.rb +33 -16
  11. data/lib/mutant/meta/example/verification.rb +70 -28
  12. data/lib/mutant/minitest/coverage.rb +53 -0
  13. data/lib/mutant/mutator/node.rb +2 -2
  14. data/lib/mutant/mutator/node/block_pass.rb +29 -0
  15. data/lib/mutant/mutator/node/{dstr.rb → dynamic_literal.rb} +7 -5
  16. data/lib/mutant/mutator/node/index.rb +4 -4
  17. data/lib/mutant/mutator/node/literal/range.rb +4 -1
  18. data/lib/mutant/mutator/node/noop.rb +1 -1
  19. data/lib/mutant/mutator/node/op_asgn.rb +15 -1
  20. data/lib/mutant/mutator/node/send.rb +25 -1
  21. data/lib/mutant/mutator/node/send/attribute_assignment.rb +1 -0
  22. data/lib/mutant/reporter/cli/printer.rb +2 -2
  23. data/lib/mutant/reporter/cli/printer/isolation_result.rb +9 -3
  24. data/lib/mutant/reporter/cli/printer/mutation_result.rb +1 -1
  25. data/lib/mutant/subject/method/instance.rb +41 -2
  26. data/lib/mutant/version.rb +1 -1
  27. metadata +59 -347
  28. data/.github/workflows/ci.yml +0 -121
  29. data/.gitignore +0 -38
  30. data/.rspec +0 -5
  31. data/.rubocop.yml +0 -7
  32. data/Changelog.md +0 -81
  33. data/Gemfile +0 -7
  34. data/Gemfile.lock +0 -167
  35. data/Gemfile.shared +0 -10
  36. data/README.md +0 -178
  37. data/Rakefile +0 -5
  38. data/config/devtools.yml +0 -2
  39. data/config/reek.yml +0 -139
  40. data/config/rubocop.yml +0 -205
  41. data/config/yardstick.yml +0 -2
  42. data/docs/commercial-support.md +0 -14
  43. data/docs/concurrency.md +0 -39
  44. data/docs/incremental.md +0 -76
  45. data/docs/known-problems.md +0 -30
  46. data/docs/limitations.md +0 -50
  47. data/docs/mutant-minitest.md +0 -149
  48. data/docs/mutant-rspec.md +0 -130
  49. data/docs/nomenclature.md +0 -82
  50. data/docs/reading-reports.md +0 -74
  51. data/lib/mutant/color.rb +0 -40
  52. data/lib/mutant/diff.rb +0 -97
  53. data/lib/mutant/mutator/node/dsym.rb +0 -22
  54. data/meta/and.rb +0 -13
  55. data/meta/and_asgn.rb +0 -14
  56. data/meta/array.rb +0 -27
  57. data/meta/begin.rb +0 -20
  58. data/meta/block.rb +0 -199
  59. data/meta/block_pass.rb +0 -8
  60. data/meta/blockarg.rb +0 -10
  61. data/meta/break.rb +0 -9
  62. data/meta/case.rb +0 -217
  63. data/meta/casgn.rb +0 -25
  64. data/meta/cbase.rb +0 -8
  65. data/meta/class.rb +0 -12
  66. data/meta/const.rb +0 -17
  67. data/meta/csend.rb +0 -10
  68. data/meta/cvar.rb +0 -7
  69. data/meta/cvasgn.rb +0 -9
  70. data/meta/date.rb +0 -59
  71. data/meta/def.rb +0 -196
  72. data/meta/defined.rb +0 -9
  73. data/meta/dstr.rb +0 -13
  74. data/meta/dsym.rb +0 -14
  75. data/meta/ensure.rb +0 -8
  76. data/meta/false.rb +0 -7
  77. data/meta/file.rb +0 -5
  78. data/meta/float.rb +0 -37
  79. data/meta/gvar.rb +0 -7
  80. data/meta/gvasgn.rb +0 -9
  81. data/meta/hash.rb +0 -20
  82. data/meta/if.rb +0 -72
  83. data/meta/index.rb +0 -133
  84. data/meta/indexasgn.rb +0 -31
  85. data/meta/int.rb +0 -18
  86. data/meta/ivar.rb +0 -8
  87. data/meta/ivasgn.rb +0 -22
  88. data/meta/kwarg.rb +0 -10
  89. data/meta/kwbegin.rb +0 -8
  90. data/meta/kwoptarg.rb +0 -13
  91. data/meta/lambda.rb +0 -23
  92. data/meta/line.rb +0 -5
  93. data/meta/lvar.rb +0 -16
  94. data/meta/lvasgn.rb +0 -24
  95. data/meta/masgn.rb +0 -7
  96. data/meta/match_current_line.rb +0 -14
  97. data/meta/next.rb +0 -10
  98. data/meta/nil.rb +0 -5
  99. data/meta/nthref.rb +0 -14
  100. data/meta/op_assgn.rb +0 -17
  101. data/meta/or.rb +0 -13
  102. data/meta/or_asgn.rb +0 -50
  103. data/meta/range.rb +0 -39
  104. data/meta/redo.rb +0 -5
  105. data/meta/regexp.rb +0 -80
  106. data/meta/regopt.rb +0 -10
  107. data/meta/rescue.rb +0 -84
  108. data/meta/return.rb +0 -16
  109. data/meta/sclass.rb +0 -12
  110. data/meta/self.rb +0 -7
  111. data/meta/send.rb +0 -600
  112. data/meta/str.rb +0 -7
  113. data/meta/super.rb +0 -27
  114. data/meta/sym.rb +0 -8
  115. data/meta/true.rb +0 -7
  116. data/meta/until.rb +0 -16
  117. data/meta/while.rb +0 -24
  118. data/meta/yield.rb +0 -9
  119. data/mutant-minitest.gemspec +0 -22
  120. data/mutant-rspec.gemspec +0 -22
  121. data/mutant.gemspec +0 -41
  122. data/mutant.sh +0 -12
  123. data/mutant.yml +0 -6
  124. data/spec/integration/mutant/corpus_spec.rb +0 -15
  125. data/spec/integration/mutant/isolation/fork_spec.rb +0 -28
  126. data/spec/integration/mutant/minitest_spec.rb +0 -11
  127. data/spec/integration/mutant/null_spec.rb +0 -16
  128. data/spec/integration/mutant/rspec_spec.rb +0 -15
  129. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +0 -9
  130. data/spec/integrations.yml +0 -63
  131. data/spec/shared/base_behavior.rb +0 -45
  132. data/spec/shared/framework_integration_behavior.rb +0 -70
  133. data/spec/shared/method_matcher_behavior.rb +0 -47
  134. data/spec/spec_helper.rb +0 -75
  135. data/spec/support/corpus.rb +0 -318
  136. data/spec/support/file_system.rb +0 -62
  137. data/spec/support/ice_nine_config.rb +0 -10
  138. data/spec/support/ruby_vm.rb +0 -84
  139. data/spec/support/shared_context.rb +0 -169
  140. data/spec/support/test_app.rb +0 -7
  141. data/spec/support/warnings.yml +0 -6
  142. data/spec/support/xspec.rb +0 -183
  143. data/spec/unit/mutant/ast/find_metaclass_containing_spec.rb +0 -64
  144. data/spec/unit/mutant/ast/meta/optarg_spec.rb +0 -24
  145. data/spec/unit/mutant/ast/meta/send/proc_predicate_spec.rb +0 -30
  146. data/spec/unit/mutant/ast/meta/send/receiver_possible_top_level_const_predicate_spec.rb +0 -39
  147. data/spec/unit/mutant/ast/meta/send_spec.rb +0 -42
  148. data/spec/unit/mutant/ast/named_children_spec.rb +0 -89
  149. data/spec/unit/mutant/ast/sexp_spec.rb +0 -38
  150. data/spec/unit/mutant/ast_spec.rb +0 -57
  151. data/spec/unit/mutant/bootstrap_spec.rb +0 -216
  152. data/spec/unit/mutant/cli_spec.rb +0 -305
  153. data/spec/unit/mutant/clock_monotonic_spec.rb +0 -52
  154. data/spec/unit/mutant/config_spec.rb +0 -126
  155. data/spec/unit/mutant/context_spec.rb +0 -111
  156. data/spec/unit/mutant/diff_spec.rb +0 -189
  157. data/spec/unit/mutant/env_spec.rb +0 -229
  158. data/spec/unit/mutant/expression/method_spec.rb +0 -62
  159. data/spec/unit/mutant/expression/methods_spec.rb +0 -66
  160. data/spec/unit/mutant/expression/namespace/exact_spec.rb +0 -28
  161. data/spec/unit/mutant/expression/namespace/recursive_spec.rb +0 -66
  162. data/spec/unit/mutant/expression/parser_spec.rb +0 -65
  163. data/spec/unit/mutant/expression_spec.rb +0 -45
  164. data/spec/unit/mutant/integration/rspec_spec.rb +0 -201
  165. data/spec/unit/mutant/integration_spec.rb +0 -150
  166. data/spec/unit/mutant/isolation/fork_spec.rb +0 -309
  167. data/spec/unit/mutant/isolation/none_spec.rb +0 -23
  168. data/spec/unit/mutant/isolation/result_spec.rb +0 -73
  169. data/spec/unit/mutant/license_spec.rb +0 -305
  170. data/spec/unit/mutant/loader_spec.rb +0 -79
  171. data/spec/unit/mutant/matcher/chain_spec.rb +0 -26
  172. data/spec/unit/mutant/matcher/compiler_spec.rb +0 -0
  173. data/spec/unit/mutant/matcher/config_spec.rb +0 -47
  174. data/spec/unit/mutant/matcher/filter_spec.rb +0 -22
  175. data/spec/unit/mutant/matcher/method/instance_spec.rb +0 -164
  176. data/spec/unit/mutant/matcher/method/metaclass_spec.rb +0 -108
  177. data/spec/unit/mutant/matcher/method/singleton_spec.rb +0 -90
  178. data/spec/unit/mutant/matcher/methods/instance_spec.rb +0 -54
  179. data/spec/unit/mutant/matcher/methods/metaclass_spec.rb +0 -62
  180. data/spec/unit/mutant/matcher/methods/singleton_spec.rb +0 -51
  181. data/spec/unit/mutant/matcher/namespace_spec.rb +0 -39
  182. data/spec/unit/mutant/matcher/null_spec.rb +0 -12
  183. data/spec/unit/mutant/matcher/scope_spec.rb +0 -45
  184. data/spec/unit/mutant/matcher/static_spec.rb +0 -13
  185. data/spec/unit/mutant/matcher_spec.rb +0 -102
  186. data/spec/unit/mutant/meta/example/dsl_spec.rb +0 -108
  187. data/spec/unit/mutant/meta/example/verification_spec.rb +0 -154
  188. data/spec/unit/mutant/meta/example_spec.rb +0 -34
  189. data/spec/unit/mutant/mutation_spec.rb +0 -140
  190. data/spec/unit/mutant/mutator/node_spec.rb +0 -47
  191. data/spec/unit/mutant/mutator_spec.rb +0 -21
  192. data/spec/unit/mutant/parallel/driver_spec.rb +0 -126
  193. data/spec/unit/mutant/parallel/source/array_spec.rb +0 -57
  194. data/spec/unit/mutant/parallel/worker_spec.rb +0 -206
  195. data/spec/unit/mutant/parallel_spec.rb +0 -115
  196. data/spec/unit/mutant/parser_spec.rb +0 -26
  197. data/spec/unit/mutant/range_spec.rb +0 -141
  198. data/spec/unit/mutant/registry_spec.rb +0 -74
  199. data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +0 -17
  200. data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +0 -85
  201. data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +0 -45
  202. data/spec/unit/mutant/reporter/cli/printer/isolation_result_spec.rb +0 -132
  203. data/spec/unit/mutant/reporter/cli/printer/mutation_progress_result_spec.rb +0 -25
  204. data/spec/unit/mutant/reporter/cli/printer/mutation_result_spec.rb +0 -153
  205. data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +0 -45
  206. data/spec/unit/mutant/reporter/cli/printer/subject_progress_spec.rb +0 -36
  207. data/spec/unit/mutant/reporter/cli/printer/subject_result_spec.rb +0 -44
  208. data/spec/unit/mutant/reporter/cli/printer/test_result_spec.rb +0 -16
  209. data/spec/unit/mutant/reporter/cli/printer_spec.rb +0 -163
  210. data/spec/unit/mutant/reporter/cli_spec.rb +0 -137
  211. data/spec/unit/mutant/reporter/null_spec.rb +0 -14
  212. data/spec/unit/mutant/reporter/sequence_spec.rb +0 -31
  213. data/spec/unit/mutant/repository/diff/ranges_spec.rb +0 -180
  214. data/spec/unit/mutant/repository/diff_spec.rb +0 -122
  215. data/spec/unit/mutant/repository/subject_filter_spec.rb +0 -30
  216. data/spec/unit/mutant/require_highjack_spec.rb +0 -73
  217. data/spec/unit/mutant/result/class_methods_spec.rb +0 -51
  218. data/spec/unit/mutant/result/env_spec.rb +0 -161
  219. data/spec/unit/mutant/result/mutation_spec.rb +0 -70
  220. data/spec/unit/mutant/result/subject_spec.rb +0 -111
  221. data/spec/unit/mutant/result/test_spec.rb +0 -14
  222. data/spec/unit/mutant/result_spec.rb +0 -33
  223. data/spec/unit/mutant/runner/sink_spec.rb +0 -174
  224. data/spec/unit/mutant/runner_spec.rb +0 -121
  225. data/spec/unit/mutant/selector/expression_spec.rb +0 -62
  226. data/spec/unit/mutant/selector/null_spec.rb +0 -17
  227. data/spec/unit/mutant/subject/method/instance_spec.rb +0 -181
  228. data/spec/unit/mutant/subject/method/metaclass_spec.rb +0 -63
  229. data/spec/unit/mutant/subject/method/singleton_spec.rb +0 -61
  230. data/spec/unit/mutant/subject_spec.rb +0 -93
  231. data/spec/unit/mutant/transform/array_spec.rb +0 -92
  232. data/spec/unit/mutant/transform/bool_spec.rb +0 -63
  233. data/spec/unit/mutant/transform/error_spec.rb +0 -132
  234. data/spec/unit/mutant/transform/exception_spec.rb +0 -44
  235. data/spec/unit/mutant/transform/hash_spec.rb +0 -236
  236. data/spec/unit/mutant/transform/index_spec.rb +0 -92
  237. data/spec/unit/mutant/transform/named_spec.rb +0 -49
  238. data/spec/unit/mutant/transform/primitive_spec.rb +0 -56
  239. data/spec/unit/mutant/transform/sequence_spec.rb +0 -98
  240. data/spec/unit/mutant/util/one_spec.rb +0 -22
  241. data/spec/unit/mutant/warnings_spec.rb +0 -89
  242. data/spec/unit/mutant/world_spec.rb +0 -63
  243. data/spec/unit/mutant/zombifier_spec.rb +0 -122
  244. data/test_app/.rspec +0 -1
  245. data/test_app/Gemfile.minitest +0 -4
  246. data/test_app/Gemfile.rspec3.8 +0 -7
  247. data/test_app/lib/test_app.rb +0 -110
  248. data/test_app/lib/test_app/literal.rb +0 -35
  249. data/test_app/lib/test_app/metaclasses.rb +0 -108
  250. data/test_app/spec/spec_helper.rb +0 -9
  251. data/test_app/spec/unit/test_app/literal_spec.rb +0 -20
  252. data/test_app/test/unit/test_app/literal_test.rb +0 -16
@@ -1,121 +0,0 @@
1
- name: CI
2
-
3
- on: push
4
-
5
- jobs:
6
- base:
7
- name: Base steps
8
- runs-on: ubuntu-latest
9
- steps:
10
- - uses: actions/checkout@v2
11
- - name: Check Whitespace
12
- run: git diff --check -- HEAD~1
13
- ruby-spec:
14
- name: Unit Specs
15
- runs-on: ${{ matrix.os }}
16
- timeout-minutes: 5
17
- strategy:
18
- fail-fast: false
19
- matrix:
20
- ruby: ['2.6', '2.7']
21
- os: [ubuntu-latest]
22
- steps:
23
- - uses: actions/checkout@v2
24
- - uses: actions/setup-ruby@v1
25
- with:
26
- ruby-version: ${{ matrix.ruby }}
27
- - run: |
28
- gem install bundler
29
- bundle install
30
- - run: bundle exec rspec spec/unit
31
- ruby-mutant:
32
- name: Mutation coverage
33
- runs-on: ${{ matrix.os }}
34
- timeout-minutes: 30
35
- strategy:
36
- fail-fast: false
37
- matrix:
38
- ruby: ['2.6', '2.7']
39
- os: [ubuntu-latest]
40
- steps:
41
- - uses: actions/checkout@v2
42
- with:
43
- fetch-depth: 0
44
- - uses: actions/setup-ruby@v1
45
- with:
46
- ruby-version: ${{ matrix.ruby }}
47
- - run: |
48
- gem install bundler
49
- bundle install
50
- - run: ./mutant.sh
51
- ruby-integration-minitest:
52
- name: Integration Minitest
53
- runs-on: ${{ matrix.os }}
54
- timeout-minutes: 5
55
- strategy:
56
- fail-fast: false
57
- matrix:
58
- ruby: ['2.6', '2.7']
59
- os: [ubuntu-latest]
60
- steps:
61
- - uses: actions/checkout@v2
62
- - uses: actions/setup-ruby@v1
63
- with:
64
- ruby-version: ${{ matrix.ruby }}
65
- - run: gem list
66
- - run: |
67
- gem install bundler
68
- bundle install
69
- - run: bundle exec rspec spec/integration -e minitest
70
- ruby-integration-rspec:
71
- name: Integration RSpec
72
- runs-on: ${{ matrix.os }}
73
- timeout-minutes: 10
74
- strategy:
75
- fail-fast: false
76
- matrix:
77
- ruby: ['2.6', '2.7']
78
- os: [ubuntu-latest]
79
- steps:
80
- - uses: actions/checkout@v2
81
- - uses: actions/setup-ruby@v1
82
- with:
83
- ruby-version: ${{ matrix.ruby }}
84
- - run: |
85
- gem install bundler
86
- bundle install
87
- - run: bundle exec rspec spec/integration -e rspec
88
- ruby-integration-generation:
89
- name: Integration Mutation Generation
90
- runs-on: ${{ matrix.os }}
91
- timeout-minutes: 5
92
- strategy:
93
- fail-fast: false
94
- matrix:
95
- ruby: ['2.6', '2.7']
96
- os: [ubuntu-latest]
97
- steps:
98
- - uses: actions/checkout@v2
99
- - uses: actions/setup-ruby@v1
100
- with:
101
- ruby-version: ${{ matrix.ruby }}
102
- - run: |
103
- gem install bundler
104
- bundle install
105
- - run: bundle exec rspec spec/integration -e generation
106
- ruby-rubocop:
107
- name: Rubocop
108
- runs-on: ${{ matrix.os }}
109
- timeout-minutes: 5
110
- strategy:
111
- fail-fast: false
112
- matrix:
113
- ruby: ['2.7']
114
- os: [ubuntu-latest]
115
- steps:
116
- - uses: actions/checkout@v2
117
- - uses: actions/setup-ruby@v1
118
- with:
119
- ruby-version: ${{ matrix.ruby }}
120
- - run: bundle install
121
- - run: bundle exec rake metrics:rubocop
data/.gitignore DELETED
@@ -1,38 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.sw[op]
15
-
16
- ## Rubinius
17
- *.rbc
18
- .rbx
19
-
20
- ## PROJECT::GENERAL
21
- *.gem
22
- coverage
23
- profiling
24
- turbulence
25
- rdoc
26
- pkg
27
- tmp
28
- doc
29
- log
30
- .yardoc
31
- measurements
32
-
33
- ## BUNDLER
34
- .bundle
35
- Gemfile.*.lock
36
-
37
- ## PROJECT::SPECIFIC
38
- /vendor
data/.rspec DELETED
@@ -1,5 +0,0 @@
1
- --color
2
- --require spec_helper
3
- --format progress
4
- --warnings
5
- --order random
@@ -1,7 +0,0 @@
1
- AllCops:
2
- DisplayCopNames: true
3
- Exclude:
4
- - 'test_app/**/*'
5
- - 'tmp/**/*'
6
- - 'vendor/**/*'
7
- TargetRubyVersion: 2.5
@@ -1,81 +0,0 @@
1
- # v0.9.9 2020-09-25
2
-
3
- + Add support for mutating methods inside eigenclasses `class <<`. [#1009](https://github.com/mbj/mutant/pull/1009)
4
- - Remove `<` -> `<=` and `>` -> `>=` mutations as non canonical. [#1020](https://github.com/mbj/mutant/pull/1020)
5
- - Remove `true` -> `nil` and `false` -> `nil` mutations as non canonical. [#1018](https://github.com/mbj/mutant/pull/1018)
6
-
7
- # v0.9.8 2020-08-02
8
-
9
- * Change to generic catch all node mutator. This allows better cross parser version compatibility.
10
-
11
- # v0.9.7 2020-07-22
12
-
13
- * Bump parser dependency to 2.7.1, note this still does not support Ruby 2.7 syntax.
14
- But it supports running bundling with that parser version.
15
- * Nail diff-lcs to 1.3 till output difference for 1.4 can be addressed.
16
-
17
- # v0.9.6 2020-04-20
18
-
19
- * Dependencies upgrade, should not change user facing semantics.
20
- * Bump license nudge to 40s
21
-
22
- # v0.9.5 2020-02-02
23
-
24
- * Change to 2.7 parser series.
25
- This does not drop support for < 2.7 but enables to in the future add full Ruby 2.7 support.
26
-
27
- # v0.9.4 2020-01-03
28
-
29
- * Bump unparser dependency
30
-
31
- # v0.9.3 2020-01-03
32
-
33
- * Change to soft dependency on mutant-license.
34
- Rationale its fine to bundle mutant if not used.
35
- This can easily happen on transitive dependencies.
36
-
37
- # v0.9.2 2020-01-02
38
-
39
- * Upgrade to parser ~> 2.6.5
40
-
41
- # v0.9.1 2020-01-02
42
-
43
- * Packaging bugfix.
44
-
45
- # v0.9.0 2020-01-02
46
-
47
- * New license.
48
- * Fix mutations to void value expressions to not be reported as integration error.
49
- * Remove regexp body mutations
50
- * Remove restarg mutations
51
- * Remove support for rspec-3.{4,5,6}
52
-
53
- # v0.8.25 2018-12-31
54
-
55
- * Change to {I,M}Var based concurrency
56
- * Remove actors
57
-
58
- # v0.8.24 2018-12-29
59
-
60
- * Change to always insert mutations with frozen string literals
61
- * Fix various invalid AST or source mutations
62
- * Handle regexp `regexp_parser` cannot parse but MRI accepts gracefully
63
-
64
- # v0.8.23 2018-12-23
65
-
66
- * Improved isolation error reporting
67
- * Errors between isolation and tests do not kill mutations anymore.
68
-
69
- # v0.8.22 2018-12-04
70
-
71
- * Remove hard ruby version requirement. 2.5 is still the only officially supported version.
72
-
73
- # v0.8.21 2018-12-03
74
-
75
- * Change to modern ast format via unparser-0.4.1.
76
-
77
- # v0.8.20 2018-11-27
78
-
79
- * Replace internal timers with monotonic ones.
80
-
81
- Find older changelogs in the project [history](https://github.com/mbj/mutant/blob/84d119fe49ebad51b213cb08285b95e6e7c4fab6/Changelog.md#v0821-2018-12-03)
data/Gemfile DELETED
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec name: 'mutant'
6
-
7
- eval_gemfile File.expand_path('Gemfile.shared', __dir__)
@@ -1,167 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- mutant (0.9.8)
5
- abstract_type (~> 0.0.7)
6
- adamantium (~> 0.2.0)
7
- anima (~> 0.3.1)
8
- ast (~> 2.2)
9
- concord (~> 0.1.5)
10
- diff-lcs (= 1.3)
11
- equalizer (~> 0.0.9)
12
- ice_nine (~> 0.11.1)
13
- memoizable (~> 0.4.2)
14
- mprelude (~> 0.1.0)
15
- parser (~> 2.7.1)
16
- procto (~> 0.0.2)
17
- unparser (~> 0.4.6)
18
- variable (~> 0.0.1)
19
-
20
- GEM
21
- remote: https://rubygems.org/
22
- remote: https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev/
23
- specs:
24
- abstract_type (0.0.7)
25
- adamantium (0.2.0)
26
- ice_nine (~> 0.11.0)
27
- memoizable (~> 0.4.0)
28
- anima (0.3.1)
29
- abstract_type (~> 0.0.7)
30
- adamantium (~> 0.2)
31
- equalizer (~> 0.0.11)
32
- ast (2.4.1)
33
- axiom-types (0.1.1)
34
- descendants_tracker (~> 0.0.4)
35
- ice_nine (~> 0.11.0)
36
- thread_safe (~> 0.3, >= 0.3.1)
37
- codeclimate-engine-rb (0.4.1)
38
- virtus (~> 1.0)
39
- coercible (1.0.0)
40
- descendants_tracker (~> 0.0.1)
41
- concord (0.1.5)
42
- adamantium (~> 0.2.0)
43
- equalizer (~> 0.0.9)
44
- descendants_tracker (0.0.4)
45
- thread_safe (~> 0.3, >= 0.3.1)
46
- devtools (0.1.26)
47
- abstract_type (~> 0.0.7)
48
- adamantium (~> 0.2.0)
49
- anima (~> 0.3.0)
50
- concord (~> 0.1.5)
51
- flay (~> 2.12.0)
52
- flog (~> 4.6.2)
53
- procto (~> 0.0.3)
54
- rake (~> 12.3.0)
55
- reek (~> 5.6.0)
56
- rspec (~> 3.8.0)
57
- rspec-core (~> 3.8.0)
58
- rspec-its (~> 1.2.0)
59
- rubocop (~> 0.79.0)
60
- simplecov (~> 0.16.1)
61
- yard (~> 0.9.16)
62
- yardstick (~> 0.9.9)
63
- diff-lcs (1.3)
64
- docile (1.3.2)
65
- equalizer (0.0.11)
66
- erubis (2.7.0)
67
- flay (2.12.1)
68
- erubis (~> 2.7.0)
69
- path_expander (~> 1.0)
70
- ruby_parser (~> 3.0)
71
- sexp_processor (~> 4.0)
72
- flog (4.6.4)
73
- path_expander (~> 1.0)
74
- ruby_parser (~> 3.1, > 3.1.0)
75
- sexp_processor (~> 4.8)
76
- ice_nine (0.11.2)
77
- jaro_winkler (1.5.4)
78
- json (2.3.1)
79
- kwalify (0.7.2)
80
- memoizable (0.4.2)
81
- thread_safe (~> 0.3, >= 0.3.1)
82
- mprelude (0.1.0)
83
- abstract_type (~> 0.0.7)
84
- adamantium (~> 0.2.0)
85
- concord (~> 0.1.5)
86
- equalizer (~> 0.0.9)
87
- ice_nine (~> 0.11.1)
88
- procto (~> 0.0.2)
89
- mutant-license (0.1.0)
90
- parallel (1.19.2)
91
- parser (2.7.1.4)
92
- ast (~> 2.4.1)
93
- path_expander (1.1.0)
94
- procto (0.0.3)
95
- psych (3.1.0)
96
- rainbow (3.0.0)
97
- rake (12.3.3)
98
- reek (5.6.0)
99
- codeclimate-engine-rb (~> 0.4.0)
100
- kwalify (~> 0.7.0)
101
- parser (>= 2.5.0.0, < 2.8, != 2.5.1.1)
102
- psych (~> 3.1.0)
103
- rainbow (>= 2.0, < 4.0)
104
- rspec (3.8.0)
105
- rspec-core (~> 3.8.0)
106
- rspec-expectations (~> 3.8.0)
107
- rspec-mocks (~> 3.8.0)
108
- rspec-core (3.8.2)
109
- rspec-support (~> 3.8.0)
110
- rspec-expectations (3.8.6)
111
- diff-lcs (>= 1.2.0, < 2.0)
112
- rspec-support (~> 3.8.0)
113
- rspec-its (1.2.0)
114
- rspec-core (>= 3.0.0)
115
- rspec-expectations (>= 3.0.0)
116
- rspec-mocks (3.8.2)
117
- diff-lcs (>= 1.2.0, < 2.0)
118
- rspec-support (~> 3.8.0)
119
- rspec-support (3.8.3)
120
- rubocop (0.79.0)
121
- jaro_winkler (~> 1.5.1)
122
- parallel (~> 1.10)
123
- parser (>= 2.7.0.1)
124
- rainbow (>= 2.2.2, < 4.0)
125
- ruby-progressbar (~> 1.7)
126
- unicode-display_width (>= 1.4.0, < 1.7)
127
- ruby-progressbar (1.10.1)
128
- ruby_parser (3.14.2)
129
- sexp_processor (~> 4.9)
130
- sexp_processor (4.15.0)
131
- simplecov (0.16.1)
132
- docile (~> 1.1)
133
- json (>= 1.8, < 3)
134
- simplecov-html (~> 0.10.0)
135
- simplecov-html (0.10.2)
136
- thread_safe (0.3.6)
137
- unicode-display_width (1.6.1)
138
- unparser (0.4.7)
139
- abstract_type (~> 0.0.7)
140
- adamantium (~> 0.2.0)
141
- concord (~> 0.1.5)
142
- diff-lcs (~> 1.3)
143
- equalizer (~> 0.0.9)
144
- parser (>= 2.6.5)
145
- procto (~> 0.0.2)
146
- variable (0.0.1)
147
- equalizer (~> 0.0.11)
148
- virtus (1.0.5)
149
- axiom-types (~> 0.1)
150
- coercible (~> 1.0)
151
- descendants_tracker (~> 0.0, >= 0.0.3)
152
- equalizer (~> 0.0, >= 0.0.9)
153
- yard (0.9.25)
154
- yardstick (0.9.9)
155
- yard (~> 0.8, >= 0.8.7.2)
156
-
157
- PLATFORMS
158
- ruby
159
-
160
- DEPENDENCIES
161
- devtools (~> 0.1.25)
162
- mutant!
163
- mutant-license!
164
- parallel (~> 1.3)
165
-
166
- BUNDLED WITH
167
- 2.1.2
@@ -1,10 +0,0 @@
1
- # Mutant itself uses an opensource license key.
2
- # Scoped to https://github.com/mbj/mutant it'll
3
- # not be useful elsewhere.
4
- source 'https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev' do
5
- gem 'mutant-license'
6
- end
7
-
8
- # Place for shared git sources, used for developing updates to depedencies
9
- # where the git sources (without this file) need to be consistently edited
10
- # into multiple Gemfiles.
data/README.md DELETED
@@ -1,178 +0,0 @@
1
- mutant
2
- ======
3
-
4
- ![Build Status](https://github.com/mbj/mutant/workflows/CI/badge.svg)
5
- [![Gem Version](https://img.shields.io/gem/v/mutant.svg)](https://rubygems.org/gems/mutant)
6
- [![Slack Status](https://mutation-testing-slack.herokuapp.com/badge.svg)](https://mutation-testing.slack.com/messages/mutant)
7
-
8
- ## What is Mutant?
9
-
10
- An automated code review tool, with a side effect of producing semantic code coverage
11
- metrics.
12
-
13
- Think of mutant as an expert developer that simplifies your code while making sure that all tests pass.
14
-
15
- That developer never has a bad day and is always ready to jump on your PR.
16
-
17
- Each reported simplification signifies either:
18
-
19
- A) A piece of code that does more than the tests ask for.
20
- You can probably use the simplified version of the code. OR:
21
-
22
- B) If you have a reason to not take the simplified version as it violates a requirement:
23
- There was no test that proves the extra requirement. Likely you are missing an
24
- important test for that requirement.
25
-
26
- On extensive mutant use A) happens more often than B), which leads to overall less code enter
27
- your repository at higher confidence for both the author and the reviewer.
28
-
29
- BTW: Mutant is a mutation testing tool, which is a form of code coverage.
30
- But each reported uncovered mutation is actually a call to action, just like a flag in a code review
31
- would be.
32
-
33
- ## Getting started:
34
-
35
- * Start with reading the [nomenclature](/docs/nomenclature.md). No way around that one, sorry.
36
- * Then select and setup your [integration](/docs/nomenclature.md#integration), also make sure
37
- you can reproduce the examples in the integration specific documentation.
38
- * Use mutant during code reviews and on CI in [incremental](/docs/incremental.md) mode.
39
- * Do not merge code with new alive mutations. If you really must bypass:
40
- Add the subjects with open problems to the ignored subjects.
41
-
42
- ## Ruby Versions
43
-
44
- Mutant currently only works on cRuby/MRI. Starting with version 2.5.x. It supports all syntax features up to and
45
- including Ruby 2.6.
46
-
47
- Support for 2.7 syntax features is pending, see unparser issue: https://github.com/mbj/unparser/issues/129.
48
-
49
- Mutant will work under Ruby 2.7 just fine, unless a 2.7 syntax feature is used. This will be resolved shortly.
50
-
51
- ## Licensing
52
-
53
- Mutant was recently transitioned commercial software, with a free usage plan for opensource projects.
54
-
55
- Commercial projects have to acquire a license per developer, with unlimited repositories
56
- per developer. CI usage for licensed developers is included.
57
-
58
- Opensource projects have to acquire their free license per repository.
59
-
60
- The license distribution happens through the `mutant-license` gem in mutants dependencies.
61
- This gem is dynamically generated per licensee and comes with a unique license gem source
62
- URL.
63
-
64
- After signup for a license the following has to be added to your `Gemfile` replacing `${key}`
65
- with the license key and `${plan}` with `com` for commercial or `oss` for opensource usage.
66
-
67
- ```ruby
68
- source 'https://${plan}:${key}@gem.mutant.dev' do
69
- gem 'mutant-license'
70
- end
71
- ```
72
-
73
- The mutant license gem contains metadata that allows mutant to verify licensed use.
74
-
75
- For commercial licenses mutant checks the git commit author or the configured git email
76
- to be in the set of licensed developers.
77
-
78
- For opensource licenses mutant checks the git remotes against the licensed git repositories.
79
- This allows the project maintainer to sign up and not bother collaborators with the details.
80
-
81
- There are, apart from initial license gem installation, no remote interaction for
82
- license validation.
83
-
84
- ### Getting an Opensource license
85
-
86
- As stated above: Opensource projects of any kind are free to use mutant.
87
-
88
- Just mail [me](mailto:mbj@schirp-dso.com?subject=Mutant%20Opensource%20License): Please
89
- include:
90
-
91
- * Just the git remote URL of your repository. Repository can be anywhere, must not be on Github, just has to be public.
92
-
93
- I do not need any more details.
94
-
95
- ### Getting a commercial license
96
-
97
- Mutant offers a per developer subscription a monthly plan for 30$, or an annual plan for 300$.
98
-
99
- Above 10 developer licensees per customer I'm open to negotiate more discounts.
100
-
101
- Should you want to procure a commercial mutant license please [mail me](mailto:mbj@schirp-dso.com?subject=Mutant%20Commercial%20License).
102
-
103
- Please include the following information:
104
-
105
- * Your invoice address, including your Tax ID (For EU customers VAT-ID is mandatory)
106
- * Per licensed user the git author email address as returned by `git config user.email`
107
-
108
- Also feel free to ask any other question I forgot to proactively answer here.
109
-
110
- #### Payment methods
111
-
112
- * For monthly subscriptions: Exclusively CC.
113
- * For annual subscriptions: CC (worldwide) or ACH (US) / SEPA (EU) wire transfer.
114
-
115
- #### Pricing Why?
116
-
117
- The idea is to charge 1$ per developer per day. Mutant reduces the time spend on code reviews.
118
-
119
- This time saved should be worth way more than the 1$ per day.
120
-
121
- If you think this is not true for your code base, either my claims are wrong our your use of mutant is wrong.
122
- I'd be happy to hear about your case as I'm certainly willing to help you in using mutant right, and in case
123
- I'm wrong I'd be happy to improve mutant to the point I'm right again.
124
-
125
- ## Topics
126
-
127
- * [Nomenclature](/docs/nomenclature.md)
128
- * [Reading Reports](/docs/reading-reports.md)
129
- * [Known Problems](/docs/known-problems.md)
130
- * [Limitations](/docs/limitations.md)
131
- * [Concurrency](/docs/concurrency.md)
132
- * [Rspec Integration](/docs/mutant-rspec.md)
133
- * [Minitest Integration](/docs/mutant-minitest.md)
134
-
135
- ## Communication
136
-
137
- Try the following:
138
-
139
- * [Github Issues](https://github.com/mbj/mutant/issues)
140
- * [Release Announcement Mailing List](https://announce.mutant.dev/signup)
141
- * [Slack channel](mutation-testing.slack.com) request invite from [Markus Schirp](mailto:mbj@schirp-dso.com?subject=Mutation%20Testing%20Slack%20Channel%20Invite).
142
-
143
- ## Sponsoring
144
-
145
- Mutant, as published in the opensource version, would not exist without the help
146
- of [contributors](https://github.com/mbj/mutant/graphs/contributors) spending lots
147
- of their private time.
148
-
149
- Additionally, the following features where sponsored by organizations:
150
-
151
- * The `mutant-minitest` integration was sponsored by [Arkency](https://arkency.com/)
152
- * Mutant's initial concurrency support was sponsored by an undisclosed company that does
153
- currently not wish to be listed here.
154
-
155
- ### Legal
156
-
157
- Contents of this repository are maintained by:
158
-
159
- ```
160
- Schirp DSO LTD
161
- Director: Markus Schirp
162
- Email: info@schirp-dso.com
163
- Vat-ID: MT24186727
164
- Registration: C80467
165
-
166
- Office address:
167
- 2, Carob Lane,
168
- Sir Harry Luke Street
169
- Naxxar NXR 2209,
170
- Malta
171
-
172
- Registred Address
173
- Phoenix Business Centre,
174
- The Penthouse,
175
- Old Railway Track,
176
- Santa Venera SVR9022,
177
- Malta
178
- ```