danger-spm_version_updates 0.1.2 → 0.1.3

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +1 -1
  4. data/danger-spm_version_updates.gemspec +1 -1
  5. data/lib/spm_version_updates/gem_version.rb +1 -1
  6. data/lib/spm_version_updates/git.rb +56 -0
  7. data/lib/spm_version_updates/plugin.rb +14 -102
  8. data/lib/spm_version_updates/xcode.rb +67 -0
  9. metadata +4 -29
  10. data/.editorconfig +0 -15
  11. data/.github/workflows/docs.yml +0 -43
  12. data/.github/workflows/lint_and_test.yml +0 -32
  13. data/.github/workflows/push_gem.yml +0 -26
  14. data/.github/workflows/readme.yml +0 -21
  15. data/.gitignore +0 -136
  16. data/.idea/.gitignore +0 -8
  17. data/.idea/danger-plugin-spm-version-updates.iml +0 -130
  18. data/.idea/misc.xml +0 -4
  19. data/.idea/modules.xml +0 -8
  20. data/.idea/vcs.xml +0 -6
  21. data/.markdownlint.jsonc +0 -6
  22. data/.reek.yml +0 -129
  23. data/.rubocop.yml +0 -508
  24. data/spec/spec_helper.rb +0 -61
  25. data/spec/spm_version_updates_spec.rb +0 -194
  26. data/spec/support/fixtures/Branch.xcodeproj/project.pbxproj +0 -80
  27. data/spec/support/fixtures/Branch.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
  28. data/spec/support/fixtures/ExactVersion.xcodeproj/project.pbxproj +0 -80
  29. data/spec/support/fixtures/ExactVersion.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
  30. data/spec/support/fixtures/NoResolvedVersion.xcodeproj/project.pbxproj +0 -80
  31. data/spec/support/fixtures/NoResolvedVersion.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -256
  32. data/spec/support/fixtures/UpToNextMajor.xcodeproj/project.pbxproj +0 -80
  33. data/spec/support/fixtures/UpToNextMajor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
  34. data/spec/support/fixtures/VersionRange.xcodeproj/project.pbxproj +0 -81
  35. data/spec/support/fixtures/VersionRange.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
  36. data/spec/support/fixtures/github_pr.json +0 -268
data/.rubocop.yml DELETED
@@ -1,508 +0,0 @@
1
- # Defaults can be found here: https://github.com/bbatsov/rubocop/blob/master/config/default.yml
2
-
3
- require:
4
- - rubocop-rspec
5
- - rubocop-rake
6
- - rubocop-performance
7
-
8
- AllCops:
9
- TargetRubyVersion: 3.0
10
- NewCops: enable
11
-
12
- Style/MultilineBlockChain:
13
- Enabled: false
14
-
15
- Style/MultilineIfModifier:
16
- Enabled: false
17
-
18
- Style/TrailingCommaInArrayLiteral:
19
- EnforcedStyleForMultiline: consistent_comma
20
-
21
- Style/StderrPuts:
22
- Enabled: false
23
-
24
- Style/RegexpLiteral:
25
- Enabled: true
26
- EnforcedStyle: slashes
27
-
28
- RSpec/ExampleLength:
29
- Enabled: false
30
-
31
- RSpec/RepeatedExample:
32
- Enabled: false
33
-
34
- Style/BlockDelimiters:
35
- Enabled: true
36
- EnforcedStyle: always_braces
37
- Exclude:
38
- - spec/*.rb
39
- - Guardfile
40
- - Rakefile
41
- - danger-*.gemspec
42
-
43
- Metrics/ModuleLength:
44
- Enabled: true
45
- Exclude:
46
- - spec/*.rb
47
-
48
- Layout/ClassStructure:
49
- Enabled: true
50
-
51
- Layout/MultilineArrayLineBreaks:
52
- Enabled: true
53
-
54
- Layout/MultilineAssignmentLayout:
55
- Enabled: true
56
- EnforcedStyle: same_line
57
-
58
- Layout/MultilineHashKeyLineBreaks:
59
- Enabled: true
60
-
61
- Layout/MultilineMethodArgumentLineBreaks:
62
- Enabled: true
63
-
64
- Layout/MultilineMethodParameterLineBreaks:
65
- Enabled: true
66
-
67
- Layout/SingleLineBlockChain:
68
- Enabled: true
69
-
70
- Style/AutoResourceCleanup:
71
- Enabled: true
72
-
73
- Style/CollectionMethods:
74
- Enabled: true
75
-
76
- Style/InvertibleUnlessCondition:
77
- Enabled: true
78
-
79
- Style/MethodCallWithArgsParentheses:
80
- Enabled: true
81
- Exclude:
82
- - spec/*.rb
83
-
84
- Style/MethodCalledOnDoEndBlock:
85
- Enabled: true
86
-
87
- Style/RequireOrder:
88
- Enabled: true
89
-
90
- Style/StringMethods:
91
- Enabled: true
92
-
93
- Style/TopLevelMethodDefinition:
94
- Enabled: true
95
- Exclude:
96
- - spec/*.rb
97
-
98
- Style/StringLiterals:
99
- EnforcedStyle: double_quotes
100
- Enabled: true
101
-
102
- # kind_of? is a good way to check a type
103
- Style/ClassCheck:
104
- EnforcedStyle: kind_of?
105
-
106
- # specs sometimes have useless assignments, which is fine
107
- Lint/UselessAssignment:
108
- Exclude:
109
- - "**/spec/**/*"
110
-
111
- Layout/FirstHashElementIndentation:
112
- Enabled: true
113
-
114
- Layout/HashAlignment:
115
- Enabled: true
116
-
117
- # HoundCI doesn't like this rule
118
- Layout/DotPosition:
119
- Enabled: false
120
-
121
- # We allow !! as it's an easy way to convert to boolean
122
- Style/DoubleNegation:
123
- Enabled: false
124
-
125
- # Cop supports --auto-correct.
126
- Lint/UnusedBlockArgument:
127
- Enabled: true
128
-
129
- # We want to allow class Fastlane::Class
130
- Style/ClassAndModuleChildren:
131
- Enabled: false
132
-
133
- Metrics/AbcSize:
134
- Max: 60
135
-
136
- # The %w might be confusing for new users
137
- Style/WordArray:
138
- MinSize: 19
139
-
140
- # raise and fail are both okay
141
- Style/SignalException:
142
- Enabled: false
143
-
144
- # Having if in the same line might not always be good
145
- Style/IfUnlessModifier:
146
- Enabled: false
147
-
148
- Style/AndOr:
149
- Enabled: true
150
-
151
- # Configuration parameters: CountComments.
152
- Metrics/ClassLength:
153
- Max: 350
154
-
155
- Metrics/CyclomaticComplexity:
156
- Max: 17
157
-
158
- # Configuration parameters: AllowURI, URISchemes.
159
- Layout/LineLength:
160
- Max: 370
161
-
162
- # Configuration parameters: CountKeywordArgs.
163
- Metrics/ParameterLists:
164
- Max: 10
165
-
166
- Metrics/PerceivedComplexity:
167
- Max: 18
168
-
169
- Style/GuardClause:
170
- Enabled: true
171
-
172
- Style/ConditionalAssignment:
173
- Enabled: true
174
-
175
- # Better to have too much self than missing a self
176
- Style/RedundantSelf:
177
- Enabled: false
178
-
179
- Metrics/MethodLength:
180
- Max: 60
181
-
182
- # We're not there yet
183
- Style/Documentation:
184
- Enabled: false
185
-
186
- # Adds complexity
187
- Style/IfInsideElse:
188
- Enabled: false
189
-
190
- # danger specific
191
-
192
- Style/BlockComments:
193
- Enabled: false
194
-
195
- Layout/MultilineMethodCallIndentation:
196
- EnforcedStyle: indented
197
-
198
- # FIXME: 25
199
- Metrics/BlockLength:
200
- Max: 345
201
- Exclude:
202
- - "**/*_spec.rb"
203
-
204
- Style/MixinGrouping:
205
- Enabled: true
206
-
207
- Naming/FileName:
208
- Enabled: false
209
-
210
- Layout/HeredocIndentation:
211
- Enabled: false
212
-
213
- Style/SpecialGlobalVars:
214
- Enabled: false
215
-
216
- Style/PercentLiteralDelimiters:
217
- PreferredDelimiters:
218
- "%": ()
219
- "%i": ()
220
- "%q": ()
221
- "%Q": ()
222
- "%r": "{}"
223
- "%s": ()
224
- "%w": ()
225
- "%W": ()
226
- "%x": ()
227
-
228
- Security/YAMLLoad:
229
- Enabled: false
230
-
231
- Gemspec/DevelopmentDependencies:
232
- Enabled: false
233
-
234
- # This is the default configuration file.
235
-
236
- Performance:
237
- Enabled: true
238
-
239
- Performance/AncestorsInclude:
240
- Description: "Use `A <= B` instead of `A.ancestors.include?(B)`."
241
- Enabled: true
242
-
243
- Performance/ArraySemiInfiniteRangeSlice:
244
- Description: "Identifies places where slicing arrays with semi-infinite ranges can be replaced by `Array#take` and `Array#drop`."
245
- # This cop was created due to a mistake in microbenchmark.
246
- # Refer https://github.com/rubocop/rubocop-performance/pull/175#issuecomment-731892717
247
- Enabled: true
248
-
249
- Performance/BigDecimalWithNumericArgument:
250
- Description: "Convert numeric literal to string and pass it to `BigDecimal`."
251
- Enabled: true
252
-
253
- Performance/BindCall:
254
- Description: "Use `bind_call(obj, args, ...)` instead of `bind(obj).call(args, ...)`."
255
- Enabled: true
256
-
257
- Performance/BlockGivenWithExplicitBlock:
258
- Description: "Check block argument explicitly instead of using `block_given?`."
259
- Enabled: true
260
-
261
- Performance/Caller:
262
- Description: >-
263
- Use `caller(n..n)` instead of `caller`.
264
- Enabled: true
265
-
266
- Performance/CaseWhenSplat:
267
- Description: >-
268
- Reordering `when` conditions with a splat to the end
269
- of the `when` branches can improve performance.
270
- Enabled: true
271
-
272
- Performance/Casecmp:
273
- Description: >-
274
- Use `casecmp` rather than `downcase ==`, `upcase ==`, `== downcase`, or `== upcase`..
275
- Reference: "https://github.com/fastruby/fast-ruby#stringcasecmp-vs--stringcasecmp-vs-stringdowncase---code"
276
- Enabled: true
277
-
278
- Performance/ChainArrayAllocation:
279
- Description: >-
280
- Instead of chaining array methods that allocate new arrays, mutate an
281
- existing array.
282
- Reference: "https://twitter.com/schneems/status/1034123879978029057"
283
- Enabled: true
284
- Exclude:
285
- - spec/*.rb
286
-
287
- Performance/CollectionLiteralInLoop:
288
- Description: "Extract Array and Hash literals outside of loops into local variables or constants."
289
- Enabled: true
290
-
291
- Performance/CompareWithBlock:
292
- Description: "Use `sort_by(&:foo)` instead of `sort { |a, b| a.foo <=> b.foo }`."
293
- Enabled: true
294
-
295
- Performance/ConcurrentMonotonicTime:
296
- Description: "Use `Process.clock_gettime(Process::CLOCK_MONOTONIC)` instead of `Concurrent.monotonic_time`."
297
- Reference: "https://github.com/rails/rails/pull/43502"
298
- Enabled: true
299
-
300
- Performance/ConstantRegexp:
301
- Description: "Finds regular expressions with dynamic components that are all constants."
302
- Enabled: true
303
-
304
- Performance/Count:
305
- Description: >-
306
- Use `count` instead of `{select,find_all,filter,reject}...{size,count,length}`.
307
- # This cop has known compatibility issues with `ActiveRecord` and other
308
- # frameworks. ActiveRecord's `count` ignores the block that is passed to it.
309
- # For more information, see the documentation in the cop itself.
310
- Enabled: true
311
-
312
- Performance/DeletePrefix:
313
- Description: "Use `delete_prefix` instead of `gsub`."
314
- Enabled: true
315
-
316
- Performance/DeleteSuffix:
317
- Description: "Use `delete_suffix` instead of `gsub`."
318
- Enabled: true
319
-
320
- Performance/Detect:
321
- Description: >-
322
- Use `detect` instead of `select.first`, `find_all.first`, `filter.first`,
323
- `select.last`, `find_all.last`, and `filter.last`.
324
- Reference: "https://github.com/fastruby/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code"
325
- # This cop has known compatibility issues with `ActiveRecord` and other
326
- # frameworks. `ActiveRecord` does not implement a `detect` method and `find`
327
- # has its own meaning. Correcting `ActiveRecord` methods with this cop
328
- # should be considered unsafe.
329
- Enabled: true
330
-
331
- Performance/DoubleStartEndWith:
332
- Description: >-
333
- Use `str.{start,end}_with?(x, ..., y, ...)`
334
- instead of `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
335
- Enabled: true
336
-
337
- Performance/EndWith:
338
- Description: "Use `end_with?` instead of a regex match anchored to the end of a string."
339
- Reference: "https://github.com/fastruby/fast-ruby#stringmatch-vs-stringmatch-vs-stringstart_withstringend_with-code-start-code-end"
340
- # This will change to a new method call which isn't guaranteed to be on the
341
- # object. Switching these methods has to be done with knowledge of the types
342
- # of the variables which rubocop doesn't have.
343
- Enabled: true
344
-
345
- Performance/FixedSize:
346
- Description: "Do not compute the size of statically sized objects except in constants."
347
- Enabled: true
348
-
349
- Performance/FlatMap:
350
- Description: >-
351
- Use `Enumerable#flat_map`
352
- instead of `Enumerable#map...Array#flatten(1)`
353
- or `Enumerable#collect..Array#flatten(1)`.
354
- Reference: "https://github.com/fastruby/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code"
355
- Enabled: true
356
- EnabledForFlattenWithoutParams: false
357
- # If enabled, this cop will warn about usages of
358
- # `flatten` being called without any parameters.
359
- # This can be dangerous since `flat_map` will only flatten 1 level, and
360
- # `flatten` without any parameters can flatten multiple levels.
361
-
362
- Performance/InefficientHashSearch:
363
- Description: "Use `key?` or `value?` instead of `keys.include?` or `values.include?`."
364
- Reference: "https://github.com/fastruby/fast-ruby#hashkey-instead-of-hashkeysinclude-code"
365
- Enabled: true
366
-
367
- Performance/IoReadlines:
368
- Description: "Use `IO.each_line` (`IO#each_line`) instead of `IO.readlines` (`IO#readlines`)."
369
- Reference: "https://docs.gitlab.com/ee/development/performance.html#reading-from-files-and-other-data-sources"
370
- Enabled: true
371
-
372
- Performance/MapCompact:
373
- Description: "Use `filter_map` instead of `collection.map(&:do_something).compact`."
374
- Enabled: true
375
-
376
- Performance/MapMethodChain:
377
- Description: "Checks if the `map` method is used in a chain."
378
- Enabled: true
379
-
380
- Performance/MethodObjectAsBlock:
381
- Description: "Use block explicitly instead of block-passing a method object."
382
- Reference: "https://github.com/fastruby/fast-ruby#normal-way-to-apply-method-vs-method-code"
383
- Enabled: true
384
-
385
- Performance/OpenStruct:
386
- Description: "Use `Struct` instead of `OpenStruct`."
387
- Enabled: true
388
-
389
- Performance/RangeInclude:
390
- Description: "Use `Range#cover?` instead of `Range#include?` (or `Range#member?`)."
391
- Reference: "https://github.com/fastruby/fast-ruby#cover-vs-include-code"
392
- Enabled: true
393
-
394
- Performance/RedundantBlockCall:
395
- Description: "Use `yield` instead of `block.call`."
396
- Reference: "https://github.com/fastruby/fast-ruby#proccall-and-block-arguments-vs-yieldcode"
397
- Enabled: true
398
-
399
- Performance/RedundantEqualityComparisonBlock:
400
- Description: >-
401
- Checks for uses `Enumerable#all?`, `Enumerable#any?`, `Enumerable#one?`,
402
- or `Enumerable#none?` are compared with `===` or similar methods in block.
403
- Reference: "https://github.com/rails/rails/pull/41363"
404
- Enabled: true
405
-
406
- Performance/RedundantMatch:
407
- Description: >-
408
- Use `=~` instead of `String#match` or `Regexp#match` in a context where the
409
- returned `MatchData` is not needed.
410
- Enabled: true
411
-
412
- Performance/RedundantMerge:
413
- Description: "Use Hash#[]=, rather than Hash#merge! with a single key-value pair."
414
- Reference: "https://github.com/fastruby/fast-ruby#hashmerge-vs-hash-code"
415
- Enabled: true
416
- # Max number of key-value pairs to consider an offense
417
- MaxKeyValuePairs: 2
418
-
419
- Performance/RedundantSortBlock:
420
- Description: "Use `sort` instead of `sort { |a, b| a <=> b }`."
421
- Enabled: true
422
-
423
- Performance/RedundantSplitRegexpArgument:
424
- Description: "Identifies places where `split` argument can be replaced from a deterministic regexp to a string."
425
- Enabled: true
426
-
427
- Performance/RedundantStringChars:
428
- Description: "Checks for redundant `String#chars`."
429
- Enabled: true
430
-
431
- Performance/RegexpMatch:
432
- Description: >-
433
- Use `match?` instead of `Regexp#match`, `String#match`, `Symbol#match`,
434
- `Regexp#===`, or `=~` when `MatchData` is not used.
435
- Reference: "https://github.com/fastruby/fast-ruby#regexp-vs-regexpmatch-vs-regexpmatch-vs-stringmatch-vs-string-vs-stringmatch-code-"
436
- Enabled: true
437
-
438
- Performance/ReverseEach:
439
- Description: "Use `reverse_each` instead of `reverse.each`."
440
- Reference: "https://github.com/fastruby/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code"
441
- Enabled: true
442
-
443
- Performance/ReverseFirst:
444
- Description: "Use `last(n).reverse` instead of `reverse.first(n)`."
445
- Enabled: true
446
-
447
- Performance/SelectMap:
448
- Description: "Use `filter_map` instead of `ary.select(&:foo).map(&:bar)`."
449
- Enabled: true
450
-
451
- Performance/Size:
452
- Description: >-
453
- Use `size` instead of `count` for counting
454
- the number of elements in `Array` and `Hash`.
455
- Reference: "https://github.com/fastruby/fast-ruby#arraylength-vs-arraysize-vs-arraycount-code"
456
- Enabled: true
457
-
458
- Performance/SortReverse:
459
- Description: "Use `sort.reverse` instead of `sort { |a, b| b <=> a }`."
460
- Enabled: true
461
-
462
- Performance/Squeeze:
463
- Description: "Use `squeeze('a')` instead of `gsub(/a+/, 'a')`."
464
- Reference: "https://github.com/fastruby/fast-ruby#remove-extra-spaces-or-other-contiguous-characters-code"
465
- Enabled: true
466
-
467
- Performance/StartWith:
468
- Description: "Use `start_with?` instead of a regex match anchored to the beginning of a string."
469
- Reference: "https://github.com/fastruby/fast-ruby#stringmatch-vs-stringmatch-vs-stringstart_withstringend_with-code-start-code-end"
470
- # This will change to a new method call which isn't guaranteed to be on the
471
- # object. Switching these methods has to be done with knowledge of the types
472
- # of the variables which rubocop doesn't have.
473
- Enabled: true
474
- SafeMultiline: true
475
-
476
- Performance/StringIdentifierArgument:
477
- Description: "Use symbol identifier argument instead of string identifier argument."
478
- Enabled: true
479
-
480
- Performance/StringInclude:
481
- Description: "Use `String#include?` instead of a regex match with literal-only pattern."
482
- Enabled: true
483
-
484
- Performance/StringReplacement:
485
- Description: >-
486
- Use `tr` instead of `gsub` when you are replacing the same
487
- number of characters. Use `delete` instead of `gsub` when
488
- you are deleting characters.
489
- Reference: "https://github.com/fastruby/fast-ruby#stringgsub-vs-stringtr-code"
490
- Enabled: true
491
-
492
- Performance/Sum:
493
- Description: "Use `sum` instead of a custom array summation."
494
- Reference: "https://blog.bigbinary.com/2016/11/02/ruby-2-4-introduces-enumerable-sum.html"
495
- Enabled: true
496
-
497
- Performance/TimesMap:
498
- Description: "Checks for .times.map calls."
499
- Enabled: true
500
- # See https://github.com/rubocop/rubocop/issues/4658
501
-
502
- Performance/UnfreezeString:
503
- Description: "Use unary plus to get an unfrozen string literal."
504
- Enabled: true
505
-
506
- Performance/UriDefaultParser:
507
- Description: "Use `URI::DEFAULT_PARSER` instead of `URI::Parser.new`."
508
- Enabled: true
data/spec/spec_helper.rb DELETED
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "pathname"
4
- ROOT = Pathname.new(File.expand_path("..", __dir__))
5
- $:.unshift("#{ROOT}lib".to_s)
6
- $:.unshift("#{ROOT}spec".to_s)
7
-
8
- require "bundler/setup"
9
- require "pry"
10
-
11
- require "danger"
12
- require "rspec"
13
-
14
- # Use coloured output, it's the best.
15
- RSpec.configure do |config|
16
- config.filter_gems_from_backtrace("bundler")
17
- config.color = true
18
- config.tty = true
19
- end
20
-
21
- require "danger_plugin"
22
-
23
- # These functions are a subset of https://github.com/danger/danger/blob/master/spec/spec_helper.rb
24
- # If you are expanding these files, see if it's already been done ^.
25
-
26
- # A silent version of the user interface,
27
- # it comes with an extra function `.string` which will
28
- # strip all ANSI colours from the string.
29
-
30
- # rubocop:disable Lint/NestedMethodDefinition
31
- def testing_ui
32
- @output = StringIO.new
33
- def @output.winsize
34
- [20, 9999]
35
- end
36
-
37
- cork = Cork::Board.new(out: @output)
38
- def cork.string
39
- out.string.gsub(/\e\[([;\d]+)?m/, "")
40
- end
41
- cork
42
- end
43
- # rubocop:enable Lint/NestedMethodDefinition
44
-
45
- # Example environment (ENV) that would come from
46
- # running a PR on TravisCI
47
- def testing_env
48
- {
49
- "HAS_JOSH_K_SEAL_OF_APPROVAL" => "true",
50
- "TRAVIS_PULL_REQUEST" => "800",
51
- "TRAVIS_REPO_SLUG" => "artsy/eigen",
52
- "TRAVIS_COMMIT_RANGE" => "759adcbd0d8f...13c4dc8bb61d",
53
- "DANGER_GITHUB_API_TOKEN" => "123sbdq54erfsd3422gdfio"
54
- }
55
- end
56
-
57
- # A stubbed out Dangerfile for use in tests
58
- def testing_dangerfile
59
- env = Danger::EnvironmentManager.new(testing_env)
60
- Danger::Dangerfile.new(env, testing_ui)
61
- end