Skip to content

[ruby] New version of toys (0.20.0) produced dependency conflicts#156

Open
depfu[bot] wants to merge 1 commit intomainfrom
depfu/update/toys-0.20.0
Open

[ruby] New version of toys (0.20.0) produced dependency conflicts#156
depfu[bot] wants to merge 1 commit intomainfrom
depfu/update/toys-0.20.0

Conversation

@depfu
Copy link
Contributor

@depfu depfu bot commented Mar 10, 2026

We've tried to upgrade a dependency and got errors running Bundler. It looks like there is a version conflict between two or more dependencies. Depfu doesn't try to solve these, as this would mean to update more than one dependency at a time.

Please take a look at the exact failure to figure out if this is something you need to work on.

The bundler error message was:

Bundler could not find compatible versions for gem "toys-core":
  In Gemfile:
    gem_toys (~> 1.0) was resolved to 1.0.2, which depends on
      toys-core (~> 0.19.0)

    toys (~> 0.20.0) was resolved to 0.20.0, which depends on
      toys-core (= 0.20.0)

What changed?

✳️ toys (~> 0.19.1 → ~> 0.20.0) · Repo · Changelog

Release Notes

0.20.0 (from changelog)

Toys 0.20 is a major release with several new features and a number of fixes, including a few minor breaking changes.

Changes in the :minitest template:

  • BREAKING CHANGE: Tools produced by the :minitest template default to looking for test files of the forms *_test.rb and test_*.rb instead of test*.rb.
  • NEW: The :minitest template supports installing specified gems without using bundler.
  • NEW: Tools produced by the :minitest template provide command line arguments for overriding the gem installation or bundler settings.
  • NEW: Tools produced by the :minitest template recognize --include as an alias for --name. This matches recent versions of minitest.
  • NEW: The :minitest template generates more comprehensive documentation.
  • NEW: The minitest tool template now requires "minitest/autorun" before loading tests, so tests don't have to do so themselves.
  • BREAKING API CHANGE: Toys::Templates::Minitest::DEFAULT_GEM_VERSION_REQUIREMENTS is now a hash that covers multiple gems rather than just the minitest gem
  • FIXED: The minitest template no longer exceeds command line length limits if the list of test files is extremely long.

New functionality in the :rspec template:

  • NEW: The :rspec template supports installing specified gems without using bundler.
  • NEW: Tools produced by the :rspec template provide command line arguments for overriding the gem installation or bundler settings.
  • NEW: Tools produced by the :rspec template recognize the --example-matches flag, and can handle multiple --example and --tag flags.
  • NEW: The :rspec template generates more comprehensive documentation.
  • BREAKING API CHANGE: Toys::Templates::Rspec::DEFAULT_GEM_VERSION_REQUIREMENTS is now a hash that covers potentially multiple gems

New functionality in the :clean template:

  • The :clean template supports specifying certain gitignored files to preserve.
  • The :clean template is more robust against concurrent modification and works better with large git repos.

New functionality in the system test builtin tool:

  • BREAKING CHANGE: The system test builtin looks for test files of the form *_test.rb in addition to test_*.rb.
  • The system test builtin uses bundler to install gems if a Gemfile is present in the .test directory.
  • The system test builtin supports flags that can specify arbitrary gems to load.

Updates to the Exec mixin and library:

  • NEW: The new Toys::Utils::Exec::Result#effective_result method provides a reasonable integer result code even when a process terminates via signal or fails to start at all.
  • BREAKING API CHANGE: :cli is no longer a legal config option.
  • BREAKING API CHANGE: An options hash is no longer passed to the proc when executing a proc using a fork.
  • BREAKING API CHANGE: Passing an IO object as an input or output stream no longer closes it afterward.
  • BREAKING API CHANGE: Toys::Utils::Exec::Controller#result no longer preemptively (and prematurely) closes the controller input stream
  • FIXED: The :unsetenv_others option now works properly when executing a proc using a fork.
  • FIXED: Environment variable values specified as nil are now correctly unset when executing a proc using a fork.
  • FIXED: Fixed a rare concurrency issue if multiple threads concurrently get the result from a controller.

Other changes:

  • NEW: Native tab completion for zsh.
  • NEW: The :bundler mixin supports "manual" bundle setup, allowing bundler decisions to be deferred to execution time
  • FIXED: The :bundler mixin will not attempt to add the pathname gem to generated Gemfiles when running on TruffleRuby. This caused issues because TruffleRuby includes a special version of the gem and cannot install the one from Rubygems.
  • FIXED: ContextualError no longer overrides Exception#cause, which could confuse TruffleRuby.
  • DOCUMENTATION: Updated user guide to cover zsh completion and manual bundler setup
  • DOCUMENTATION: Some reorganization and cleanup in the user guide

Does any of this look wrong? Please let us know.


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

@depfu depfu bot added the dependencies label Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants