pact 1.67.0 → 1.67.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e428577e1d928336891dcf91170bc79aa001209bc8a8c13bc107903843e2357e
4
- data.tar.gz: 51d3b1d10dc8731eef772a4b08a234f094e1423129c7f3782f3154606ebe5b9f
3
+ metadata.gz: 03a92a7db6e157c7b573d5863fab36db4aca07645a8a411cdaeaf2d15e665297
4
+ data.tar.gz: 2e8f1291c9f75ab146b2a20246bdb0da510998ea205e4df8eec15373d57d86bb
5
5
  SHA512:
6
- metadata.gz: fb09f250a67d22dfa816616d974f327835a1162e56e5a4cfdcc266730322a671ce4c2e45d87e2edf1793cf74cc9a2e5fcd4103764d772a9c41ba82be46376ca8
7
- data.tar.gz: 1baec82403e89bcb98014c958819a1304fe19b98683b380a4a1c38ddb0fc3a5a08b69f90e50f2d43a3f5756bb7029a887a449cc22e282d6ab772529a9176c0a0
6
+ metadata.gz: acbbdcfd0f50209d342264b0dbebcb4c227c253be2d208322c2d80c2355af11fb08db03a8b640ae0dae0dabdc6e4fe98e09a945e5546a89d9020e1620562fa30
7
+ data.tar.gz: b60cbfc2107c0b0570f428e192ca56f9ae2652029ec05c0e235c5cd0730099f36b3fae263a5fe054e90c5ca0e8110db9262605d6f006225e485598a5e51cfa6d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ <a name="v1.67.2"></a>
2
+ ### v1.67.2 (2025-10-22)
3
+
4
+ #### Bug Fixes
5
+
6
+ * **v2**
7
+ * allow configurable loggers in verifier ([9fad7fa](/../../commit/9fad7fa))
8
+
9
+ <a name="v1.67.1"></a>
10
+ ### v1.67.1 (2025-10-22)
11
+
12
+ #### Bug Fixes
13
+
14
+ * **deps**
15
+ * make pact-ffi optional in v1 releases for pact-ruby-standalone consumption ([e3cd0d6](/../../commit/e3cd0d6))
16
+
1
17
  <a name="v1.67.0"></a>
2
18
  ### v1.67.0 (2025-10-16)
3
19
 
@@ -17,7 +17,7 @@ module Pact
17
17
 
18
18
  def self.log_to_stdout(log_level)
19
19
  raise "invalid log level for PactFfi::FfiLogLevelFilter" unless LOG_LEVELS.key?(log_level)
20
- PactFfi::Logger.log_to_stdout(LOG_LEVELS[log_level])
20
+ PactFfi::Logger.log_to_stdout(LOG_LEVELS[log_level]) unless log_level == :off
21
21
  end
22
22
  end
23
23
  end
@@ -31,7 +31,7 @@ module Pact
31
31
  raise ArgumentError, "pact_config must be a subclass of Pact::V2::Provider::PactConfig::Base" unless pact_config.is_a?(::Pact::V2::Provider::PactConfig::Base)
32
32
  @pact_config = pact_config
33
33
  @mixed_config = mixed_config
34
- @logger = Logger.new($stdout)
34
+ @logger = @pact_config.logger || Logger.new($stdout)
35
35
  end
36
36
 
37
37
  def verify!
@@ -13,7 +13,7 @@ module Pact
13
13
  super
14
14
 
15
15
  raise ArgumentError, "pact_config must be an instance of Pact::V2::Provider::PactConfig::Grpc" unless pact_config.is_a?(::Pact::V2::Provider::PactConfig::Grpc)
16
- @grpc_server = GrufServer.new(host: "127.0.0.1:#{@pact_config.grpc_port}", services: @pact_config.grpc_services)
16
+ @grpc_server = GrufServer.new(host: "127.0.0.1:#{@pact_config.grpc_port}", services: @pact_config.grpc_services, logger: @pact_config.logger)
17
17
  end
18
18
 
19
19
  private
@@ -13,7 +13,7 @@ module Pact
13
13
  super
14
14
 
15
15
  raise ArgumentError, "pact_config must be an instance of Pact::V2::Provider::PactConfig::Http" unless pact_config.is_a?(::Pact::V2::Provider::PactConfig::Http)
16
- @http_server = HttpServer.new(host: "127.0.0.1", port: @pact_config.http_port, app: @pact_config.app)
16
+ @http_server = HttpServer.new(host: "127.0.0.1", port: @pact_config.http_port, app: @pact_config.app, logger: @pact_config.logger)
17
17
  end
18
18
 
19
19
  private
@@ -12,12 +12,12 @@ module Pact
12
12
  CONTENT_TYPE_PROTO = "application/protobuf"
13
13
  METADATA_HEADER = "pact-message-metadata"
14
14
 
15
- def initialize(logger: Logger.new($stdout))
15
+ def initialize(logger: nil)
16
16
  super(build_proc)
17
17
 
18
18
  @message_handlers = {}
19
19
 
20
- @logger = logger
20
+ @logger = logger || Logger.new($stdout)
21
21
  end
22
22
 
23
23
  def add_message_handler(name, &block)
@@ -35,7 +35,10 @@ module Pact
35
35
  require 'rackup/handler/webrick'
36
36
  handler = Class.new(Rackup::Handler::WEBrick)
37
37
  end
38
- @server = WEBrick::HTTPServer.new({BindAddress: @host, Port: @port}, WEBrick::Config::HTTP)
38
+ @server = WEBrick::HTTPServer.new(
39
+ { BindAddress: @host, Port: @port, Logger: @logger, AccessLog: [] },
40
+ WEBrick::Config::HTTP
41
+ )
39
42
  @server.mount("/", handler, PactBrokerProxy.new(
40
43
  nil,
41
44
  backend: @pact_broker_host,
@@ -8,13 +8,14 @@ module Pact
8
8
  attr_reader :provider_name, :provider_version, :log_level, :provider_setup_server, :provider_setup_port, :pact_proxy_port,
9
9
  :consumer_branch, :consumer_version, :consumer_name, :broker_url, :broker_username, :broker_password, :verify_only, :pact_dir,
10
10
  :pact_uri, :provider_version_branch, :provider_version_tags, :consumer_version_selectors, :enable_pending, :include_wip_pacts_since,
11
- :fail_if_no_pacts_found, :provider_build_uri, :broker_token, :consumer_version_tags, :publish_verification_results
11
+ :fail_if_no_pacts_found, :provider_build_uri, :broker_token, :consumer_version_tags, :publish_verification_results, :logger
12
12
 
13
13
 
14
14
  def initialize(provider_name:, opts: {})
15
15
  @provider_name = provider_name
16
16
  @log_level = opts[:log_level] || :info
17
17
  @pact_dir = opts[:pact_dir] || nil
18
+ @logger = opts[:logger] || nil
18
19
  @provider_setup_port = opts[:provider_setup_port] || 9001
19
20
  @pact_proxy_port = opts[:provider_setup_port] || 9002
20
21
  @pact_uri = ENV.fetch("PACT_URL", nil) || opts.fetch(:pact_uri, nil)
@@ -37,14 +38,15 @@ module Pact
37
38
  @broker_token = ENV.fetch("PACT_BROKER_TOKEN", nil) || opts.fetch(:broker_token, nil)
38
39
  @verify_only = [ENV.fetch("PACT_CONSUMER_FULL_NAME", nil)].compact || opts.fetch(:verify_only, [])
39
40
 
40
- @provider_setup_server = opts[:provider_setup_server] || ProviderServerRunner.new(port: @provider_setup_port)
41
+ @provider_setup_server = opts[:provider_setup_server] || ProviderServerRunner.new(port: @provider_setup_port, logger: @logger)
41
42
  if @broker_url.present?
42
43
  @pact_proxy_server = PactBrokerProxyRunner.new(
43
44
  port: @pact_proxy_port,
44
45
  pact_broker_host: @broker_url,
45
46
  pact_broker_user: @broker_username,
46
47
  pact_broker_password: @broker_password,
47
- pact_broker_token: @broker_token
48
+ pact_broker_token: @broker_token,
49
+ logger: @logger
48
50
  )
49
51
  end
50
52
  end
@@ -10,14 +10,15 @@ module Pact
10
10
 
11
11
  def initialize(provider_name:, opts: {})
12
12
  super
13
- @provider_setup_server = ProviderServerRunner.new(port: @provider_setup_port)
13
+ @provider_setup_server = ProviderServerRunner.new(port: @provider_setup_port, logger: @logger)
14
14
  if @broker_url.present?
15
15
  @pact_proxy_server = PactBrokerProxyRunner.new(
16
16
  port: @pact_proxy_port,
17
17
  pact_broker_host: @broker_url,
18
18
  pact_broker_user: @broker_username,
19
19
  pact_broker_password: @broker_password,
20
- pact_broker_token: @broker_token
20
+ pact_broker_token: @broker_token,
21
+ logger: @logger
21
22
  )
22
23
  end
23
24
  @http_config = opts[:http] ? Http.new(provider_name: provider_name, opts: opts[:http].merge(provider_setup_server: provider_setup_server, pact_proxy_server: @pact_proxy_server)) : nil
@@ -34,7 +34,10 @@ module Pact
34
34
  def start
35
35
  raise "server already running, stop server before starting new one" if @thread
36
36
 
37
- @server = WEBrick::HTTPServer.new({BindAddress: @host, Port: @port}, WEBrick::Config::HTTP)
37
+ @server = WEBrick::HTTPServer.new(
38
+ { BindAddress: @host, Port: @port, Logger: @logger, AccessLog: [] },
39
+ WEBrick::Config::HTTP
40
+ )
38
41
  @server.mount(SETUP_PROVIDER_STATE_PATH, @state_servlet)
39
42
  @server.mount(VERIFY_MESSAGE_PATH, @message_servlet)
40
43
 
@@ -8,10 +8,10 @@ module Pact
8
8
  class ProviderStateServlet < WEBrick::HTTPServlet::ProcHandler
9
9
  attr_reader :logger
10
10
 
11
- def initialize(logger: Logger.new($stdout))
11
+ def initialize(logger: nil)
12
12
  super(build_proc)
13
13
 
14
- @logger = logger
14
+ @logger = logger || Logger.new($stdout)
15
15
 
16
16
  @provider_setup_states = {}
17
17
  @provider_teardown_states = {}
data/lib/pact/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # Remember to bump pact-provider-proxy when this changes major version
2
2
  module Pact
3
- VERSION = "1.67.0"
3
+ VERSION = "1.67.2"
4
4
  end
data/lib/pact.rb CHANGED
@@ -4,4 +4,9 @@ require 'pact/configuration'
4
4
  require 'pact/consumer'
5
5
  require 'pact/provider'
6
6
  require 'pact/consumer_contract'
7
- require 'pact/v2'
7
+
8
+ begin
9
+ require 'pact/v2'
10
+ rescue LoadError => e
11
+ warn "Warning: Could not load 'pact/v2': #{e.message} \nPlease ensure that the 'pact-ffi' gem is included in your Gemfile for pact/v2 support."
12
+ end
data/pact.gemspec CHANGED
@@ -39,7 +39,9 @@ Gem::Specification.new do |gem|
39
39
  # Core dependencies (code loading)
40
40
  gem.add_dependency "zeitwerk", "~> 2.3"
41
41
  # For Pact support via Pact Rust Core
42
- gem.add_dependency "pact-ffi", "~> 0.4.28"
42
+ # moved to optional group in Gemfile, to allow opt in for users who want Pact v2
43
+ # and to support pact-ruby-standalone which cannot package the ffi for all supported platforms
44
+ # gem.add_dependency "pact-ffi", "~> 0.4.28"
43
45
  # For Provider Side Verification
44
46
  gem.add_dependency "rack"
45
47
  gem.add_dependency "rack-proxy"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.67.0
4
+ version: 1.67.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Fraser
@@ -89,20 +89,6 @@ dependencies:
89
89
  - - "~>"
90
90
  - !ruby/object:Gem::Version
91
91
  version: '2.3'
92
- - !ruby/object:Gem::Dependency
93
- name: pact-ffi
94
- requirement: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: 0.4.28
99
- type: :runtime
100
- prerelease: false
101
- version_requirements: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - "~>"
104
- - !ruby/object:Gem::Version
105
- version: 0.4.28
106
92
  - !ruby/object:Gem::Dependency
107
93
  name: rack
108
94
  requirement: !ruby/object:Gem::Requirement