After having worked for a (rather) long time, I'm ...
# general
j
After having worked for a (rather) long time, I'm noticing that my CICD is failing to install the pact-provider-verifier. Is this an issue with the package itself, or is gem having issues?
Copy code
> [ 6/10] RUN apk add ruby-dev && gem install pact-provider-verifier pact_broker-client # for pact testing:
0.578 OK: 265 MiB in 58 packages
5.100 ERROR:  Error installing pact-provider-verifier:
5.100 	"rackup" from rackup conflicts with installed executable from rack
I'm also seeing:
Copy code
#19 85.71         uninitialized constant Rack::Utils::HeaderHash
#19 85.71         
#19 85.71               Rack::Utils::HeaderHash.new(
#19 85.71                          ^^^^^^^^^^^^
#19 85.71         Did you mean?  Rack::Headers
y
are you using rack 2 or 3? You may need to add this override in your gemfile https://github.com/pact-foundation/pact-provider-verifier/blob/5737728f55dff74e9d55503f98927c450bdf59ac/Gemfile#L13 I’m not sure why it doesn’t get picked up with the published gem. if you want to use rack 2, you’ll need to set RACK_VERSION env var to 2 https://github.com/pact-foundation/pact-provider-verifier/blob/5737728f55dff74e9d55503f98927c450bdf59ac/pact-provider-verifier.gemspec#L29 alternatively you can pin your dep - 1.39.0 is the latest. 1.38.x is prior to this change https://github.com/pact-foundation/pact-provider-verifier/releases
note your pipeline will always install the latest version, which means you may bring in breaking changes from run to run, if the underlying packages are changed
j
I do not directly use rack
the project itself is written in golang. we just install Ruby and such on this image so that we may run the verifiers
y
well you can try three options 1. add the gem overide 2. pin to an earlier version gem install -v <version> 3. use the rust based verifier cli as the ruby one is legacy https://docs.pact.io/implementation_guides/overview#cli-tooling
j
Thanks for the suggestions!