Skip to content

Commit 03ceac4

Browse files
committed
chore: remove feature flag, and remove gemfile conditionals
1 parent d11d5ce commit 03ceac4

File tree

6 files changed

+67
-201
lines changed

6 files changed

+67
-201
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010
workflow_dispatch:
1111

1212
jobs:
13-
test-with_and_without-v2:
13+
test:
1414
runs-on: ${{ matrix.os }}
1515
strategy:
1616
fail-fast: false
@@ -33,64 +33,17 @@ jobs:
3333
run: "bundle install && bundle exec rake pact:verify"
3434
if: matrix.os != 'windows-latest' && matrix.ruby_version > '3.0'
3535
working-directory: example/animal-service
36-
- run: rm -rf Gemfile.lock
37-
shell: bash
38-
- run: "bundle install"
39-
name: "bundle install - pact-ruby v2"
40-
env:
41-
PACT_RUBY_V2_ENABLE: 'true'
4236
- name: Test Pact-Ruby v2 Specs
4337
run: "bundle exec rake spec:v2"
44-
env:
45-
PACT_RUBY_V2_ENABLE: 'true'
4638
- name: Test Pact-Ruby v2 Zoo App Specs
4739
run: "bundle install && bundle exec rake spec:v2"
4840
if: matrix.ruby_version > '3.0'
4941
working-directory: example/zoo-app-v2
50-
env:
51-
PACT_RUBY_V2_ENABLE: 'true'
5242
- name: Test Pact-Ruby v2 Animal Service Specs
5343
run: "bundle install && bundle exec rake pact:v2:verify"
5444
if: matrix.os != 'windows-latest' && matrix.ruby_version > '3.0'
5545
working-directory: example/animal-service-v2
56-
env:
57-
PACT_RUBY_V2_ENABLE: 'true'
58-
59-
test-v2-only:
60-
runs-on: ${{ matrix.os }}
61-
strategy:
62-
fail-fast: false
63-
matrix:
64-
ruby_version: ["3.2", "3.3", "3.4"]
65-
os: ["ubuntu-latest","windows-latest","macos-latest"]
66-
env:
67-
PACT_RUBY_V2_ENABLE: 'true'
68-
PACT_RUBY_V1_ENABLE: 'false'
69-
steps:
70-
- uses: actions/checkout@v4
71-
- uses: ruby/setup-ruby@v1
72-
with:
73-
ruby-version: ${{ matrix.ruby_version }}
74-
bundler-cache: true
75-
- run: "bundle install"
76-
name: "bundle install - pact-ruby v2"
77-
- name: Test Pact-Ruby v2 Specs
78-
run: "bundle exec rake spec:v2"
79-
- name: Test Pact-Ruby v2 Zoo App Specs
80-
run: "bundle install && bundle exec rake spec:v2"
81-
if: matrix.ruby_version > '3.0'
82-
working-directory: example/zoo-app-v2
83-
- name: Test Pact-Ruby v2 Animal Service Specs
84-
run: "bundle install && bundle exec rake pact:v2:verify"
85-
if: matrix.os != 'windows-latest' && matrix.ruby_version > '3.0'
86-
working-directory: example/animal-service-v2
87-
- name: Test Mixed Pacts (Http/Kafaka/Grpc) - Pact-Ruby v2
88-
run: "bundle exec rake pact:v2:spec"
89-
if: matrix.os != 'windows-latest' && matrix.ruby_version > '3.0'
90-
- name: Verify Mixed Pacts (Http/Kafaka/Grpc) - Pact-Ruby v2
91-
run: "bundle exec rake pact:v2:verify"
92-
if: matrix.os != 'windows-latest' && matrix.ruby_version > '3.0'
93-
46+
9447
test-with-rack-2:
9548
runs-on: ${{ matrix.os }}
9649
strategy:
@@ -106,47 +59,6 @@ jobs:
10659
bundler-cache: true
10760
- run: "bundle exec appraisal install"
10861
- run: "bundle exec appraisal rack-2 rake"
109-
name: "test with rack 2 - pact-ruby v1"
110-
- run: rm -rf Gemfile.lock gemfiles
111-
shell: bash
112-
- run: "bundle install"
113-
name: "bundle install - pact-ruby v2"
114-
env:
115-
PACT_RUBY_V2_ENABLE: 'true'
116-
- run: "bundle exec appraisal install"
117-
env:
118-
PACT_RUBY_V2_ENABLE: 'true'
119-
- run: "bundle exec appraisal rack-2 rake spec:v2"
120-
env:
121-
PACT_RUBY_V2_ENABLE: 'true'
122-
- name: Test Mixed Pacts (Http/Kafaka/Grpc) - Pact-Ruby v2
123-
run: "bundle exec appraisal rack-2 rake pact:v2:spec"
124-
if: matrix.os != 'windows-latest' && matrix.ruby_version > '3.0'
125-
env:
126-
PACT_RUBY_V2_ENABLE: 'true'
127-
- name: Verify Mixed Pacts (Http/Kafaka/Grpc) - Pact-Ruby v2
128-
run: "bundle exec appraisal rack-2 rake pact:v2:verify"
129-
if: matrix.os != 'windows-latest' && matrix.ruby_version > '3.0'
130-
env:
131-
PACT_RUBY_V2_ENABLE: 'true'
132-
133-
test-v2-only-with-rack-2:
134-
runs-on: ${{ matrix.os }}
135-
strategy:
136-
fail-fast: false
137-
matrix:
138-
ruby_version: ["3.2", "3.3", "3.4"]
139-
os: ["ubuntu-latest","windows-latest","macos-latest"]
140-
env:
141-
PACT_RUBY_V2_ENABLE: 'true'
142-
PACT_RUBY_V1_ENABLE: 'false'
143-
steps:
144-
- uses: actions/checkout@v4
145-
- uses: ruby/setup-ruby@v1
146-
with:
147-
ruby-version: ${{ matrix.ruby_version }}
148-
bundler-cache: true
149-
- run: "bundle exec appraisal install"
15062
- run: "bundle exec appraisal rack-2 rake spec:v2"
15163
- name: Test Mixed Pacts (Http/Kafaka/Grpc) - Pact-Ruby v2
15264
run: "bundle exec appraisal rack-2 rake pact:v2:spec"
@@ -173,21 +85,9 @@ jobs:
17385
bundler-cache: true
17486
- run: "bundle exec appraisal install"
17587
name: "install active support - pact-ruby"
176-
env:
177-
PACT_RUBY_V2_DISABLE: 'true'
17888
- run: "bundle exec appraisal activesupport rake spec_with_active_support"
17989
name: "test with active support - pact-ruby"
180-
env:
181-
PACT_RUBY_V2_DISABLE: 'true'
182-
- run: rm -rf Gemfile.lock gemfiles
183-
shell: bash
184-
- run: "bundle install"
185-
name: "bundle install - pact-ruby v2"
186-
env:
187-
LOAD_ACTIVE_SUPPORT: 'true'
188-
PACT_RUBY_V2_ENABLE: 'true'
18990
- run: "bundle exec rake spec:v2"
19091
name: "test with active support - pact-ruby v2"
19192
env:
19293
LOAD_ACTIVE_SUPPORT: 'true'
193-
PACT_RUBY_V2_ENABLE: 'true'

Gemfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ gemspec
1212

1313
gem "rspec-mocks", "3.10.2"
1414
gem "appraisal", "~> 2.5"
15-
gem "pact-support", github: "pact-foundation/pact-support", branch: "fix/json_load_regression"
1615

1716
if ENV['X_PACT_DEVELOPMENT']
1817
gem "pact-support", path: '../pact-support'

documentation/README_V2.md

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -347,23 +347,6 @@ end
347347

348348
## Development & Test
349349

350-
### Feature Flags
351-
352-
There are feature flags which have been implemented to control the opt-in nature of pact-ruby v2
353-
354-
There are two toggles designed to allow you to maintain pact-ruby v1 behaviour, and opt-in when ready to pact-ruby-v2.
355-
356-
Once you have migrated, you can remove pact-ruby-v1 completely.
357-
358-
- `PACT_RUBY_V2_ENABLE`
359-
- Desc: Installs dependencies required for pact-ruby-v2. Required at install & runtime.
360-
- Default: `false`
361-
- To Enable: set to `true`
362-
- `PACT_RUBY_V1_DISABLE`
363-
- Desc: Controls dependencies required for pact-ruby-v1.
364-
- Default: `false`
365-
- To Disable: set to `true`
366-
367350
### Setup
368351

369352
```shell

lib/pact.rb

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
2-
# Selective loading of pact v1 and v2 based on environment variables
3-
if ENV['PACT_RUBY_V1_ENABLE'] != 'false'
4-
require 'pact/support'
5-
require 'pact/version'
6-
require 'pact/configuration'
7-
require 'pact/consumer'
8-
require 'pact/provider'
9-
require 'pact/consumer_contract'
10-
end
11-
if ENV['PACT_RUBY_V2_ENABLE'] == 'true'
12-
require 'pact/v2'
13-
end
1+
require 'pact/support'
2+
require 'pact/version'
3+
require 'pact/configuration'
4+
require 'pact/consumer'
5+
require 'pact/provider'
6+
require 'pact/consumer_contract'
7+
require 'pact/v2'

pact.gemspec

Lines changed: 57 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -26,81 +26,71 @@ Gem::Specification.new do |gem|
2626
'documentation_uri' => 'https://github.com/pact-foundation/pact-ruby/blob/master/README.md'
2727
}
2828

29-
# Shared dependencies between v1 and v2
29+
# Shared dev dependencies between v1 and v2
3030
gem.add_development_dependency 'rake', '~> 13.0'
3131
gem.add_development_dependency 'faraday', '~>2.0', '<3.0'
3232
gem.add_development_dependency 'webmock', '~> 3.0'
3333

34-
# Control which version of pact to use
35-
# PACT_RUBY_V1_ENABLE=true to disable v1 (default is enabled)
36-
# PACT_RUBY_V2_ENABLE=true to enable v2 (default is disabled)
37-
# Both can be enabled at the same time, to enable transition
38-
39-
if ENV['PACT_RUBY_V1_ENABLE'] != 'false'
40-
gem.add_runtime_dependency 'rspec', '~> 3.0'
41-
gem.add_runtime_dependency 'rack-test', '>= 0.6.3', '< 3.0.0'
42-
gem.add_runtime_dependency 'thor', '>= 0.20', '< 2.0'
43-
gem.add_runtime_dependency "rainbow", '~> 3.1'
44-
gem.add_runtime_dependency 'string_pattern', '~> 2.0'
45-
gem.add_runtime_dependency 'jsonpath', '~> 1.0'
34+
# Shared runtime dependencies between v1 and v2
35+
gem.add_runtime_dependency 'rspec', '~> 3.0'
4636

47-
gem.add_runtime_dependency "pact-support" , "~> 1.21", ">=1.21.2"
48-
gem.add_runtime_dependency 'pact-mock_service', '~> 3.0', '>= 3.3.1'
49-
gem.add_development_dependency 'fakefs', '2.4'
50-
gem.add_development_dependency 'hashie', '~> 5.0'
51-
gem.add_development_dependency 'faraday-multipart', '~> 1.0'
52-
gem.add_development_dependency 'conventional-changelog', '~> 1.3'
53-
gem.add_development_dependency 'bump', '~> 0.5'
54-
gem.add_development_dependency 'pact-message', '~> 0.8'
55-
gem.add_development_dependency 'rspec-its', '~> 1.3'
56-
gem.add_development_dependency 'webrick', '~> 1.8'
57-
gem.add_development_dependency 'ostruct'
58-
end
37+
# Pact v2 dependencies
5938

60-
if ENV['PACT_RUBY_V2_ENABLE'] == 'true'
39+
# Core dependencies (code loading)
40+
gem.add_dependency "zeitwerk", "~> 2.3"
41+
# For Pact support via Pact Rust Core
42+
gem.add_dependency "pact-ffi", "~> 0.4.28"
43+
# For Provider Side Verification
44+
gem.add_dependency "rack"
45+
gem.add_dependency "rack-proxy"
46+
gem.add_dependency "webrick", '~> 1.8'
47+
# For Rails support, including testing non rails apps
48+
gem.add_development_dependency "combustion", ">= 1.3"
49+
# For Kafka support
50+
unless RUBY_PLATFORM =~ /win32|x64-mingw32|x64-mingw-ucrt/
51+
# windows does not support librdkafka
52+
gem.add_development_dependency "sbmt-kafka_consumer", ">= 2.0.1"
53+
gem.add_development_dependency "sbmt-kafka_producer", ">= 1.0"
54+
end
55+
if ENV['X_PACT_DEVELOPMENT_RDKAFKA'] == 'true'
56+
# darwin-arm64 prebuilt gems available from 0.20.0
57+
gem.add_development_dependency "karafka-rdkafka", ">= 0.20.0"
58+
end
59+
# For gRPC support
60+
gem.add_development_dependency "gruf", ">= 2.18"
61+
gem.add_development_dependency "gruf-rspec", ">= 0.6.0"
62+
# Testing tools
63+
gem.add_development_dependency "rspec"
64+
gem.add_development_dependency "rspec-rails"
65+
gem.add_development_dependency "rspec_junit_formatter"
66+
gem.add_development_dependency "vcr", ">= 6.0"
67+
# Development and linting tools
68+
gem.add_development_dependency "appraisal", ">= 2.4"
69+
gem.add_development_dependency "bundler", ">= 2.2"
70+
gem.add_development_dependency "rubocop"
71+
gem.add_development_dependency "rubocop-rspec"
72+
gem.add_development_dependency "rubocop-rails"
73+
gem.add_development_dependency "rubocop-performance"
74+
gem.add_development_dependency "standard", ">= 1.35.1"
6175

62-
# Core dependencies (code loading)
63-
gem.add_dependency "zeitwerk", "~> 2.3"
64-
65-
# For Pact support via Pact Rust Core
66-
gem.add_dependency "pact-ffi", "~> 0.4.28"
67-
68-
# For Provider Side Verification
69-
gem.add_dependency "rack"
70-
gem.add_dependency "rack-proxy"
71-
gem.add_dependency "webrick", '~> 1.8'
72-
73-
# For Rails support, including testing non rails apps
74-
gem.add_development_dependency "combustion", ">= 1.3"
7576

76-
# For Kafka support
77-
unless RUBY_PLATFORM =~ /win32|x64-mingw32|x64-mingw-ucrt/
78-
# windows does not support librdkafka
79-
gem.add_development_dependency "sbmt-kafka_consumer", ">= 2.0.1"
80-
gem.add_development_dependency "sbmt-kafka_producer", ">= 1.0"
81-
end
82-
if ENV['X_PACT_DEVELOPMENT_RDKAFKA'] == 'true'
83-
# darwin-arm64 prebuilt gems available from 0.20.0
84-
gem.add_development_dependency "karafka-rdkafka", ">= 0.20.0"
85-
end
86-
87-
# For gRPC support
88-
gem.add_development_dependency "gruf", ">= 2.18"
89-
gem.add_development_dependency "gruf-rspec", ">= 0.6.0"
77+
# Pact v1 dependencies
78+
gem.add_runtime_dependency 'rack-test', '>= 0.6.3', '< 3.0.0'
79+
gem.add_runtime_dependency 'thor', '>= 0.20', '< 2.0'
80+
gem.add_runtime_dependency "rainbow", '~> 3.1'
81+
gem.add_runtime_dependency 'string_pattern', '~> 2.0'
82+
gem.add_runtime_dependency 'jsonpath', '~> 1.0'
9083

91-
# Testing tools
92-
gem.add_development_dependency "rspec"
93-
gem.add_development_dependency "rspec-rails"
94-
gem.add_development_dependency "rspec_junit_formatter"
95-
gem.add_development_dependency "vcr", ">= 6.0"
84+
gem.add_runtime_dependency "pact-support" , "~> 1.21", ">=1.21.2"
85+
gem.add_runtime_dependency 'pact-mock_service', '~> 3.0', '>= 3.3.1'
86+
gem.add_development_dependency 'fakefs', '2.4'
87+
gem.add_development_dependency 'hashie', '~> 5.0'
88+
gem.add_development_dependency 'faraday-multipart', '~> 1.0'
89+
gem.add_development_dependency 'conventional-changelog', '~> 1.3'
90+
gem.add_development_dependency 'bump', '~> 0.5'
91+
gem.add_development_dependency 'pact-message', '~> 0.8'
92+
gem.add_development_dependency 'rspec-its', '~> 1.3'
93+
# gem.add_development_dependency 'webrick', '~> 1.8' # webrick is a runtime dependency of pact v2, so included above
94+
gem.add_development_dependency 'ostruct'
9695

97-
# Development and linting tools
98-
gem.add_development_dependency "appraisal", ">= 2.4"
99-
gem.add_development_dependency "bundler", ">= 2.2"
100-
gem.add_development_dependency "rubocop"
101-
gem.add_development_dependency "rubocop-rspec"
102-
gem.add_development_dependency "rubocop-rails"
103-
gem.add_development_dependency "rubocop-performance"
104-
gem.add_development_dependency "standard", ">= 1.35.1"
105-
end
10696
end

tasks/spec_v2.rake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ end
2525
# end
2626

2727
# desc 'This is to ensure that the gem still works even when active support JSON is loaded.'
28-
# task spec_with_active_support: [:set_active_support_on] do
28+
# task : [:set_active_support_on] do
2929
# Rake::Task['pact:v2'].execute
3030
# end
3131

0 commit comments

Comments
 (0)