Update Toys packages to '~> 0.22.0'#155
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
e2b2cc2 to
07a7819
Compare
07a7819 to
2c11f19
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
'~> 0.19.0'→'~> 0.22.0'Release Notes
dazuma/toys (toys)
v0.22.0: toys 0.22.0v0.22.0 / 2026-05-05
Toys 0.22 is a major release focused on polish and cleanup in preparation for version 1.0. It includes a number of small breaking changes where needed to clean up the interfaces. (Note that many of the changes listed below are actually in the
toys-coregem.)Breaking interface changes:
staticdirective no longer "forces" creating of helper methods, instead using the same logic as the flag and argument directives. In particular, by default it will not create a method starting with underscore.Toys::Settingsand moved inheritable_helper_methods to a dedicated tool attribute. Use thebasic_settingsgem if you need the old settings class.Toys::Acceptor#createno longer takes a hash as the spec. (This was undocumented but worked previously.) To construct an object, pass the class as the main spec object, and the keyword arguments in the options.Toys::Acceptor::Enum#valuesnow returns the values themselves instead of a zipped array that includes strings.Toys::FlagGroup::Baseis no longer instantiable; useToys::FlagGroup::Optionalinstead.acceptoranddisplay_nameattributes ofToys::PositionalArgare no longer writable and must be set in the constructor.Toys::Completion#createno longer takes a hash as the spec. (This was undocumented but worked previously.) To construct an object, pass the class as the main spec object, and the keyword arguments in the options.delegation_targetattribute ofToys::ToolDefinition::DefaultCompletionis no longer writable and must be set in the constructor.:""key. (This was undocumented but worked previously.) Just pass a fully constructed completion object if you need a custom object.Module#includemethod is now available in the DSL asinclude_moduleinstead ofsuper_include.Toys::Context::Key. This behavior was undocumented and inconsistent between different ways of defining templates.Toys::CLI#load_toolreturn the block value rather than the exit_code.Toys::Testing#toys_load_toolreturn the block value rather than the exit_codeLoader#add_path_setoption to include individual source names in the relative_paths argument.use_lessin theToys::StandardMiddleware::ShowHelpconstructor touse_pager, and added support for custom pagers.StandardUIto reduce confusion.LoaderErrorand usedToolDefinitionErrorfor those cases, as it was decided that the distinction was ambiguous and dependent on internal details.ContextualError#underlying_erroras it was synonymous withcause.ContextualErrorpublic interface into a singlecapturemethod.ArgParser::ExtraArgumentsErrornow takes:argumentsinstead of:values, and provides an accessor for the same.ArgParser::ToolUnrecognizedErrornow takes:full_nameinstead of:values, and provides an accessor for the same.ArgParser::UsageError#full_messagetomessage_with_suggestionsto avoid overridingException#full_message.New features:
Loader#add_path_set,Loader#add_git, andLoader#add_gem.:gemsmixin provides a context key for retrieving the underlyingToys::Utils::Gemsservice object.:gemsmixin provides an explicitToys::Utils::Gems::ClassMethodsmodule defining the directives added to the tool class.activateandbundlemethods in the Gems utility now return useful results.Other fixes:
:updateargument to theload_gitdirective had no effect if the:asargument was provided.FlagValueUnacceptableErrorandArgValueUnacceptableErrorhave their value set correctly.logger: nilactually clears it.Toys::StandardMiddleware::ShowHelp::TOOL_NAME_KEY.ArgParser::UsageErroris now a proper exception.ContextualErrordoes a better job of capturing relevant syntax errors.Several libraries under
toys/utilswere extracted into their own gems. The current code remains underToys::Utilsas a vendored copy of the external gem, so the extracted gems are not actually dependencies of Toys. The affected libraries are:Toys::Utils::Execwhich was extracted to the gemexec_service.Toys::Utils::XDGwhich was extracted to the gemsimple_xdg.Toys::Utils::GitCachewhich was extracted to the gemgit_cache.Finally, a variety of clarifications and fixes were made to the reference documentation, readme, and user's guide.
v0.21.0: toys 0.21.0v0.21.0 / 2026-03-23
This release includes a variety of small fixes and updates toward improving product polish in preparation for a 1.0 release. It focuses on the following areas:
:unbundleoption which removes any existing bundle for a subprocessXDG_DATA_DIRSorXDG_CONFIG_DIRSis nonempty but contains only relative pathslookup_stateandlookup_cachemethods on the XDG utilitySettings#load_data!when subclassing another settings classILLEGAL_VALUEbeing passed torange.member?Settings#load_data!v0.20.0: toys 0.20.0v0.20.0 / 2026-03-09
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
:minitesttemplate::minitesttemplate default to looking for test files of the forms*_test.rbandtest_*.rbinstead oftest*.rb.:minitesttemplate supports installing specified gems without using bundler.:minitesttemplate provide command line arguments for overriding the gem installation or bundler settings.:minitesttemplate recognize--includeas an alias for--name. This matches recent versions of minitest.:minitesttemplate generates more comprehensive documentation.New functionality in the
:rspectemplate::rspectemplate supports installing specified gems without using bundler.:rspectemplate provide command line arguments for overriding the gem installation or bundler settings.:rspectemplate recognize the--example-matchesflag, and can handle multiple--exampleand--tagflags.:rspectemplate generates more comprehensive documentation.New functionality in the
:cleantemplate::cleantemplate supports specifying certain gitignored files to preserve.:cleantemplate is more robust against concurrent modification and works better with large git repos.New functionality in the
system testbuiltin tool:system testbuiltin looks for test files of the form*_test.rbin addition totest_*.rb.system testbuiltin uses bundler to install gems if a Gemfile is present in the.testdirectory.system testbuiltin supports flags that can specify arbitrary gems to load.Updates to the Exec mixin and library:
Toys::Utils::Exec::Result#effective_resultmethod provides a reasonable integer result code even when a process terminates via signal or fails to start at all.:cliis no longer a legal config option.Toys::Utils::Exec::Controller#resultno longer preemptively (and prematurely) closes the controller input stream:unsetenv_othersoption now works properly when executing a proc using a fork.Other changes:
:bundlermixin supports "manual" bundle setup, allowing bundler decisions to be deferred to execution time:bundlermixin will not attempt to add thepathnamegem 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.ContextualErrorno longer overridesException#cause, which could confuse TruffleRuby.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.