rspec-mergify 2026.11.5 → 2026.11.7
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/README.md +3 -1
- data/THIRD_PARTY_LICENSES +6 -6
- data/lib/mergify/rspec/configuration.rb +17 -0
- data/lib/mergify/rspec/quarantine.rb +7 -1
- data/lib/mergify/rspec/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7a97d5aac040d3dda3213bfbc3a103484a2daef27369ab01d615b106c8eea787
|
|
4
|
+
data.tar.gz: ead8c307f4954d930dc3c8c17bc8b2ce31b565928f9d6083e4f5c0792ed0f692
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 204d896c79964e33726e8403c9a6dd60bca5235c76103db3b5174c54bcf5b53e1051005fd60939c7648007b1cebf1c8e512fd1ce45a376c577581b096d7a5062
|
|
7
|
+
data.tar.gz: 8ca29e9defdf6571efaed492fc0cd55e6ed6cc5514f6988f20e2b6593ffc48c63ee4debbc906e6aeaaa247ee3f288491ae6f4387e6c735c31d77d19b48f1bc99
|
data/README.md
CHANGED
|
@@ -10,6 +10,7 @@ RSpec plugin for [Mergify Test Engine](https://docs.mergify.com/test-engine/).
|
|
|
10
10
|
- **Flaky test detection** — Intelligently reruns tests to detect flakiness with budget constraints
|
|
11
11
|
- **Test retry** — On the default branch, runs a failing example again, once rspec-retry's tries failed, within a time budget Mergify sets
|
|
12
12
|
- **Test quarantine** — Quarantines failing tests so they don't block CI
|
|
13
|
+
- **Test skip** — Skips the examples a team chose in Mergify not to run, with the reason
|
|
13
14
|
- **Test selection** — Runs first the examples a merge-queue bisection step failed in the step above, and stops once one fails again
|
|
14
15
|
|
|
15
16
|
## Installation
|
|
@@ -30,7 +31,8 @@ The gem runs on `mergify-ci-core`, which Bundler installs with it. That gem ship
|
|
|
30
31
|
|---|---|
|
|
31
32
|
| Linux x86_64 / aarch64 (glibc) | **glibc 2.28 or newer** — Debian 10+, Ubuntu 20.04+, RHEL 8+ and its rebuilds, Amazon Linux 2023 |
|
|
32
33
|
| Linux x86_64 / aarch64 (musl) | Alpine |
|
|
33
|
-
| macOS arm64
|
|
34
|
+
| macOS arm64 | — |
|
|
35
|
+
| macOS x86_64 (Intel) | Best effort: published, but not tested before a release |
|
|
34
36
|
| Windows x64 (UCRT) | — |
|
|
35
37
|
|
|
36
38
|
Anywhere else, and on glibc older than 2.28 — Amazon Linux 2, CentOS 7, Ubuntu 18.04 — the extension cannot load. The gem still installs and your suite still runs, but nothing is reported to Mergify. Pin the last pure-Ruby release on those systems:
|
data/THIRD_PARTY_LICENSES
CHANGED
|
@@ -4886,7 +4886,6 @@ Used by:
|
|
|
4886
4886
|
- async-signal 0.2.14 (https://github.com/smol-rs/async-signal)
|
|
4887
4887
|
- async-task 4.7.1 (https://github.com/smol-rs/async-task)
|
|
4888
4888
|
- atomic-waker 1.1.2 (https://github.com/smol-rs/atomic-waker)
|
|
4889
|
-
- base64 0.22.1 (https://github.com/marshallpierce/rust-base64)
|
|
4890
4889
|
- base64 0.23.1 (https://github.com/marshallpierce/rust-base64)
|
|
4891
4890
|
- bitflags 2.13.1 (https://github.com/bitflags/bitflags)
|
|
4892
4891
|
- blocking 1.7.0 (https://github.com/smol-rs/blocking)
|
|
@@ -6230,6 +6229,7 @@ APPENDIX: How to apply the Apache License to your work.
|
|
|
6230
6229
|
Apache License 2.0 (Apache-2.0)
|
|
6231
6230
|
|
|
6232
6231
|
Used by:
|
|
6232
|
+
- getrandom 0.2.17 (https://github.com/rust-random/getrandom)
|
|
6233
6233
|
- getrandom 0.3.4 (https://github.com/rust-random/getrandom)
|
|
6234
6234
|
- getrandom 0.4.3 (https://github.com/rust-random/getrandom)
|
|
6235
6235
|
|
|
@@ -10332,10 +10332,10 @@ SOFTWARE.
|
|
|
10332
10332
|
MIT License (MIT)
|
|
10333
10333
|
|
|
10334
10334
|
Used by:
|
|
10335
|
-
- jsonschema-regex 0.
|
|
10336
|
-
- jsonschema-value 0.
|
|
10337
|
-
- jsonschema 0.
|
|
10338
|
-
- referencing 0.
|
|
10335
|
+
- jsonschema-regex 0.61.0 (https://github.com/Stranger6667/jsonschema)
|
|
10336
|
+
- jsonschema-value 0.61.0 (https://github.com/Stranger6667/jsonschema)
|
|
10337
|
+
- jsonschema 0.61.0 (https://github.com/Stranger6667/jsonschema)
|
|
10338
|
+
- referencing 0.61.0 (https://github.com/Stranger6667/jsonschema)
|
|
10339
10339
|
|
|
10340
10340
|
MIT License
|
|
10341
10341
|
|
|
@@ -10707,7 +10707,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
10707
10707
|
MIT License (MIT)
|
|
10708
10708
|
|
|
10709
10709
|
Used by:
|
|
10710
|
-
- fancy-regex 0.
|
|
10710
|
+
- fancy-regex 0.20.0 (https://github.com/fancy-regex/fancy-regex)
|
|
10711
10711
|
|
|
10712
10712
|
The MIT License
|
|
10713
10713
|
|
|
@@ -44,6 +44,8 @@ module Mergify
|
|
|
44
44
|
config.prepend_before(:suite) { Configuration.attach_formatter(config) }
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
+
config.before(:suite) { Configuration.skip_examples } if reports?
|
|
48
|
+
|
|
47
49
|
# Flaky detection: prepared for every example of the run.
|
|
48
50
|
config.before(:suite) do
|
|
49
51
|
ci = Mergify::RSpec.test_run
|
|
@@ -127,6 +129,21 @@ module Mergify
|
|
|
127
129
|
)
|
|
128
130
|
end
|
|
129
131
|
|
|
132
|
+
# Have RSpec skip the examples the session says not to run, as it skips
|
|
133
|
+
# an `xit`: each reports as pending, with the session's reason, and none
|
|
134
|
+
# of its `before`, `after` or `around` hooks runs. An example the user
|
|
135
|
+
# already skipped keeps the user's reason.
|
|
136
|
+
def skip_examples
|
|
137
|
+
quarantine = Mergify::RSpec.test_run&.quarantined_tests
|
|
138
|
+
return unless quarantine
|
|
139
|
+
|
|
140
|
+
names = Mergify::RSpec.test_run.names
|
|
141
|
+
collected.each do |example|
|
|
142
|
+
reason = quarantine.skip_reason(names.keys(example))
|
|
143
|
+
example.metadata[:skip] ||= reason if reason
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
130
147
|
# The examples RSpec will run, in its order.
|
|
131
148
|
def collected
|
|
132
149
|
::RSpec.world.example_groups.flat_map(&:descendants).flat_map { |group| ::RSpec.world.filtered_examples[group] }
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module Mergify
|
|
4
4
|
module RSpec
|
|
5
|
-
# The quarantined tests for a run, and RSpec's side of them.
|
|
5
|
+
# The quarantined and skipped tests for a run, and RSpec's side of them.
|
|
6
6
|
#
|
|
7
7
|
# The session loads the list (`Session#load_before_tests`). Which example it
|
|
8
8
|
# covers, what that example's result says, the branch it is fetched for
|
|
@@ -22,6 +22,12 @@ module Mergify
|
|
|
22
22
|
@list.include?(keys)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
+
# Why the session says not to run an example known by `keys`, or nil to
|
|
26
|
+
# run it.
|
|
27
|
+
def skip_reason(keys)
|
|
28
|
+
@list.skip_reason(keys)
|
|
29
|
+
end
|
|
30
|
+
|
|
25
31
|
# Account for an example known by `keys` that ended with `outcome`
|
|
26
32
|
# (`'passed'`, `'failed'` or `'skipped'`, before the quarantine turned a
|
|
27
33
|
# failure into `pending`), as `{ 'quarantined' => bool, 'absorbed' =>
|
|
@@ -8,6 +8,6 @@ module Mergify
|
|
|
8
8
|
# which resolved against whatever repository happened to be the working
|
|
9
9
|
# directory at load time -- the monorepo's namespaced tags here, the user's
|
|
10
10
|
# own tags once the gem was installed.
|
|
11
|
-
VERSION = '2026.11.
|
|
11
|
+
VERSION = '2026.11.7'
|
|
12
12
|
end
|
|
13
13
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rspec-mergify
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2026.11.
|
|
4
|
+
version: 2026.11.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mergify
|
|
@@ -29,14 +29,14 @@ dependencies:
|
|
|
29
29
|
requirements:
|
|
30
30
|
- - '='
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 2026.11.
|
|
32
|
+
version: 2026.11.7
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - '='
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 2026.11.
|
|
39
|
+
version: 2026.11.7
|
|
40
40
|
description: 'RSpec integration for Mergify Test Engine: OpenTelemetry tracing, flaky
|
|
41
41
|
test detection, and test quarantine. Requires a Mergify account (set MERGIFY_TOKEN
|
|
42
42
|
in CI); free for open source.'
|