rspec-hopper 0.1.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 (37) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +10 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +537 -0
  5. data/Rakefile +10 -0
  6. data/docs/DESIGN.md +386 -0
  7. data/exe/rspec-hopper +6 -0
  8. data/lib/rspec/hopper/attempt_log.rb +133 -0
  9. data/lib/rspec/hopper/ci_env.rb +87 -0
  10. data/lib/rspec/hopper/cli/formatter_args.rb +129 -0
  11. data/lib/rspec/hopper/cli/report.rb +117 -0
  12. data/lib/rspec/hopper/cli/work/parser.rb +166 -0
  13. data/lib/rspec/hopper/cli/work.rb +59 -0
  14. data/lib/rspec/hopper/cli.rb +61 -0
  15. data/lib/rspec/hopper/config.rb +48 -0
  16. data/lib/rspec/hopper/errors.rb +88 -0
  17. data/lib/rspec/hopper/example_reset.rb +41 -0
  18. data/lib/rspec/hopper/fingerprint.rb +185 -0
  19. data/lib/rspec/hopper/keys.rb +38 -0
  20. data/lib/rspec/hopper/manifest.rb +113 -0
  21. data/lib/rspec/hopper/queue/redis_streams/lua/init.lua +94 -0
  22. data/lib/rspec/hopper/queue/redis_streams/lua/transition.lua +476 -0
  23. data/lib/rspec/hopper/queue/redis_streams.rb +307 -0
  24. data/lib/rspec/hopper/queue.rb +24 -0
  25. data/lib/rspec/hopper/report.rb +286 -0
  26. data/lib/rspec/hopper/reservation.rb +18 -0
  27. data/lib/rspec/hopper/supervisor.rb +196 -0
  28. data/lib/rspec/hopper/unit.rb +15 -0
  29. data/lib/rspec/hopper/version.rb +7 -0
  30. data/lib/rspec/hopper/worker/buffering_reporter.rb +51 -0
  31. data/lib/rspec/hopper/worker/heartbeat.rb +178 -0
  32. data/lib/rspec/hopper/worker/requeue_policy.rb +86 -0
  33. data/lib/rspec/hopper/worker/runner.rb +28 -0
  34. data/lib/rspec/hopper/worker/suite.rb +205 -0
  35. data/lib/rspec/hopper/worker.rb +299 -0
  36. data/lib/rspec/hopper.rb +65 -0
  37. metadata +137 -0
metadata ADDED
@@ -0,0 +1,137 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rspec-hopper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Paul Simpson
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: json
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: redis
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '5.0'
33
+ - - "<"
34
+ - !ruby/object:Gem::Version
35
+ version: '6.0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '5.0'
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '6.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec-core
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '3.12'
53
+ - - "<"
54
+ - !ruby/object:Gem::Version
55
+ version: '4.0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '3.12'
63
+ - - "<"
64
+ - !ruby/object:Gem::Version
65
+ version: '4.0'
66
+ description: |-
67
+ rspec-hopper feeds spec files to many CI workers through a shared Redis,
68
+ requeues flaky work, reclaims work from dead workers, and produces one
69
+ authoritative pass/fail verdict for the whole build.
70
+ email:
71
+ - prsimp@gmail.com
72
+ executables:
73
+ - rspec-hopper
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - CHANGELOG.md
78
+ - LICENSE.txt
79
+ - README.md
80
+ - Rakefile
81
+ - docs/DESIGN.md
82
+ - exe/rspec-hopper
83
+ - lib/rspec/hopper.rb
84
+ - lib/rspec/hopper/attempt_log.rb
85
+ - lib/rspec/hopper/ci_env.rb
86
+ - lib/rspec/hopper/cli.rb
87
+ - lib/rspec/hopper/cli/formatter_args.rb
88
+ - lib/rspec/hopper/cli/report.rb
89
+ - lib/rspec/hopper/cli/work.rb
90
+ - lib/rspec/hopper/cli/work/parser.rb
91
+ - lib/rspec/hopper/config.rb
92
+ - lib/rspec/hopper/errors.rb
93
+ - lib/rspec/hopper/example_reset.rb
94
+ - lib/rspec/hopper/fingerprint.rb
95
+ - lib/rspec/hopper/keys.rb
96
+ - lib/rspec/hopper/manifest.rb
97
+ - lib/rspec/hopper/queue.rb
98
+ - lib/rspec/hopper/queue/redis_streams.rb
99
+ - lib/rspec/hopper/queue/redis_streams/lua/init.lua
100
+ - lib/rspec/hopper/queue/redis_streams/lua/transition.lua
101
+ - lib/rspec/hopper/report.rb
102
+ - lib/rspec/hopper/reservation.rb
103
+ - lib/rspec/hopper/supervisor.rb
104
+ - lib/rspec/hopper/unit.rb
105
+ - lib/rspec/hopper/version.rb
106
+ - lib/rspec/hopper/worker.rb
107
+ - lib/rspec/hopper/worker/buffering_reporter.rb
108
+ - lib/rspec/hopper/worker/heartbeat.rb
109
+ - lib/rspec/hopper/worker/requeue_policy.rb
110
+ - lib/rspec/hopper/worker/runner.rb
111
+ - lib/rspec/hopper/worker/suite.rb
112
+ homepage: https://github.com/prsimp/rspec-hopper
113
+ licenses:
114
+ - MIT
115
+ metadata:
116
+ homepage_uri: https://github.com/prsimp/rspec-hopper
117
+ source_code_uri: https://github.com/prsimp/rspec-hopper
118
+ changelog_uri: https://github.com/prsimp/rspec-hopper/blob/main/CHANGELOG.md
119
+ rubygems_mfa_required: 'true'
120
+ rdoc_options: []
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: 3.2.0
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ requirements: []
134
+ rubygems_version: 4.0.16
135
+ specification_version: 4
136
+ summary: Distribute an RSpec suite across CI workers through Redis Streams.
137
+ test_files: []