Skip to content

Missing gem io-consoleΒ #220

@JP-Ellis

Description

@JP-Ellis

Summary

Running into a missing gem error:

/home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler/definition.rb:691:in `materialize': Could not find io-console-0.8.2 in locally installed gems (Bundler::GemNotFound)

Analysis

This appears to be a result of this commit which added the io-console dependency when it upgraded the pact-mock_service gem.

A temporary work-around would be to downgrade the version of the CLI installed to one prior to 2.5.8.

Reproduction

I noticed the error within GitHub's CI on the ubuntu-latest image.

Installation Logs
Run curl -fsSL https://raw.githubusercontent.com/pact-foundation/pact-ruby-standalone/master/install.sh | bash
  curl -fsSL https://raw.githubusercontent.com/pact-foundation/pact-ruby-standalone/master/install.sh | bash
  echo "$HOME/pact/bin" >> $GITHUB_PATH
  shell: /usr/bin/bash -e {0}
  env:
    FORCE_COLOR: 1
    CLICOLOR: 1
    PYTHONUNBUFFERED: 1
    STABLE_PYTHON_VERSION: 3.13
    CARGO_TERM_COLOR: always
    RUST_BACKTRACE: 1
    NEXTEST_PROFILE: ci
    PACT_BROKER_BASE_URL: https://smartbear.pactflow.io/
    PACT_BROKER_TOKEN: ***
    API_VERSION: 2.0.7
    CLI_VERSION: 2.0.7+40fb563c
    GIT_BRANCH: main
    CARGO_HOME: /home/runner/.cargo
    CARGO_INCREMENTAL: 0
    CACHE_ON_FAILURE: false
  
Thanks for downloading the latest release of pact-standalone v2.5.8.
-----
Note:
-----
You can download a fixed version by setting the PACT_CLI_VERSION environment variable eg PACT_CLI_VERSION=v1.92.0
example:
curl -fsSL https://raw.githubusercontent.com/pact-foundation/pact-standalone/master/install.sh | PACT_CLI_VERSION=v1.92.0 sh
-------------
Downloading:
-------------
downloaded pact-2.5.8-linux-x86_64.tar.gz
unarchived pact-2.5.8-linux-x86_64.tar.gz
removed pact-2.5.8-linux-x86_64.tar.gz
pact-standalone v2.5.8 installed to /home/runner/work/project/project/pact
-------------------
available commands:
-------------------
pact
pact-broker
pact-message
pact-mock-service
pact-plugin-cli
pact-provider-verifier
pact-publish
pact-stub-server
pact-stub-service
pact_mock_server_cli
pact_verifier_cli
pactflow
Added the following to your path to make pact-cli available:
PATH=/home/runner/work/project/project/pact/bin/:${PATH}
Backtrace
Run cat >>"$GITHUB_STEP_SUMMARY" <<EOF
  cat >>"$GITHUB_STEP_SUMMARY" <<EOF
  ## πŸ“ Pact Publishing
  
  | Parameter | Value           |
  |-----------|-----------------|
  | Consumer  | pactflow-ai-cli |
  | Version   | $CLI_VERSION    |
  | Branch    | $GIT_BRANCH     |
  
  ### Published Pacts
  EOF
  
  # Publish all generated pact files
  for pact_file in target/pacts/*.json; do
    if [ -f "$pact_file" ]; then
      pact_file_name=$(basename "$pact_file")
      echo "- βœ… $pact_file_name" >> "$GITHUB_STEP_SUMMARY"
      pact-broker publish \
        "$pact_file" \
        --consumer-app-version="$CLI_VERSION" \
        --branch="$GIT_BRANCH" \
        --verbose
    fi
  done
  shell: /usr/bin/bash -e {0}
  env:
    FORCE_COLOR: 1
    CLICOLOR: 1
    PYTHONUNBUFFERED: 1
    STABLE_PYTHON_VERSION: 3.13
    CARGO_TERM_COLOR: always
    RUST_BACKTRACE: 1
    NEXTEST_PROFILE: ci
    PACT_BROKER_BASE_URL: https://smartbear.pactflow.io/
    PACT_BROKER_TOKEN: ***
    API_VERSION: 2.0.7
    CLI_VERSION: 2.0.7+40fb563c
    GIT_BRANCH: main
    CARGO_HOME: /home/runner/.cargo
    CARGO_INCREMENTAL: 0
    CACHE_ON_FAILURE: false
    PATH: /home/runner/work/project/project/pact/bin/:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
  
/home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler/definition.rb:691:in `materialize': Could not find io-console-0.8.2 in locally installed gems (Bundler::GemNotFound)
	from /home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler/definition.rb:237:in `specs'
	from /home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler/definition.rb:304:in `specs_for'
	from /home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler/runtime.rb:18:in `setup'
	from /home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler.rb:166:in `setup'
	from /home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler/setup.rb:32:in `block in <top (required)>'
	from /home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler/ui/shell.rb:173:in `with_level'
	from /home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler/ui/shell.rb:119:in `silence'
	from /home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/bundler/setup.rb:32:in `<top (required)>'
	from <internal:/home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:139:in `require'
	from <internal:/home/runner/work/project/project/pact/lib/ruby/lib/ruby/site_ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:139:in `require'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions