Skip to content

Releases: dazuma/toys

toys 0.13.1

01 Mar 01:50
8ae3450
Compare
Choose a tag to compare
toys/v0.13.1

release: Release 2 gems (#173)

toys-core 0.13.1

01 Mar 01:49
8ae3450
Compare
Choose a tag to compare
toys-core/v0.13.1

release: Release 2 gems (#173)

toys 0.13.0

08 Feb 23:55
8f5401f
Compare
Choose a tag to compare

v0.13.0 / 2022-02-08

Toys 0.13.0 is a major release with significant improvements to the testing framework and git cache, along with compatibility improvements and bug fixes.

Breaking changes:

  • Passing --directory= to toys system test now restricts the search to only that directory, excluding global and builtin tools.
  • Renamed Toys::Testing#exec_tool to Toys::Testing#toys_exec_tool.
  • Removed the methods of Toys::Testing that were specific to "capture", "control", or "separate" spawning (i.e. #exec_separate_tool, #capture_tool, #capture_separate_tool, #control_tool, and #control_separate_tool). The general Toys::Testing#toys_exec_tool now either controls or captures depending on whether a block is present. Spawn-based execution is no longer available.

New functionality:

  • Provided several builtin system tools for viewing and managing the git cache.
  • The load_git directive and the underlying Toys::Utils::GitCache class now support updating from git based on cache age.
  • The Toys::Utils::GitCache class supports supports copying git content into a provided directory, querying repo information, and deleting cache data.
  • The Toys::Utils::GitCache class makes files read-only, to help prevent clients from interfering with one another.
  • The :terminal mixin and the underlying Toys::Utils::Terminal class now honor the NO_COLOR environment variable.
  • toys system test now understands --minitest-focus and --minitest-rg to activate those plugins.
  • toys system test now understands --minitest-version= to set the minitest version requirement.
  • Added Toys::Testing#toys_run_tool to run a tool in-process for testing.
  • Added Toys::Testing#toys_load_tool to load a tool in-process and provide a way to test individual methods.
  • Added :custom_paths and :include_builtins arguments to the Toys::StandardCLI constructor.

Fixes and compatibility:

  • Bundler install/updates are now spawned in subprocesses for compatibility with bundler 2.3. The bundler integration also now requires bundler 2.2 or later.
  • The exec_tool and exec_proc methods in the :exec mixin now log their execution in the same way as other exec functions.
  • Minor compatibility fixes to provide partial support for TruffleRuby.

Other notes:

  • The internal GitCache representation has changed significantly to support additional features and improve robustness and performance. This will force existing caches to update, but should not break existing usage.
  • Significant updates to the readme and user guide, including a section in the user guide on the test framework.
  • Toys-core docs are now embedded into the toys gem, so that all the links will work in rubydoc.info.

toys-core 0.13.0

08 Feb 23:55
8f5401f
Compare
Choose a tag to compare

v0.13.0 / 2022-02-08

Toys-Core 0.13.0 is a major release with significant improvements to the git cache, along with compatibility improvements and bug fixes.

New functionality:

  • The load_git directive and the underlying Toys::Utils::GitCache class now support updating from git based on cache age.
  • The Toys::Utils::GitCache class supports copying git content into a provided directory, querying repo information, and deleting cache data.
  • The Toys::Utils::GitCache class makes files read-only, to help prevent clients from interfering with one another.
  • The :terminal mixin and the underlying Toys::Utils::Terminal class now honor the NO_COLOR environment variable.
  • Added Toys::CLI#load_tool, which is useful for testing tools.

Fixes and compatibility updates:

  • Bundler install/updates are now spawned in subprocesses for compatibility with bundler 2.3. The bundler integration also now requires bundler 2.2 or later.
  • The exec_tool and exec_proc methods in the :exec mixin now log their execution in the same way as other exec functions.
  • Minor compatibility fixes to provide partial support for TruffleRuby.

Other notes:

  • The internal GitCache representation has changed significantly to support additional features and improve robustness and performance. This will force existing caches to update, but should not break existing usage.

toys 0.12.2

30 Aug 05:48
5689e27
Compare
Choose a tag to compare

v0.12.2 / 2021-08-30

  • FIXED: Tool context inspect string is no longer overwhelmingly long
  • FIXED: Fixed an exception in GitCache and load_git when updating a changed ref

toys-core 0.12.2

30 Aug 05:48
5689e27
Compare
Choose a tag to compare

v0.12.2 / 2021-08-30

  • FIXED: Tool context inspect string is no longer overwhelmingly long
  • FIXED: Fixed an exception in GitCache when updating a changed ref

toys 0.12.1

17 Aug 22:12
3a50b1e
Compare
Choose a tag to compare

v0.12.1 / 2021-08-17

  • FIXED: Fixed a regression in 0.12.0 where bundler could use the wrong Gemfile if you set a custom context directory

toys-core 0.12.1

17 Aug 22:12
3a50b1e
Compare
Choose a tag to compare

v0.12.1 / 2021-08-17

  • FIXED: Fixed a regression in 0.12.0 where bundler could use the wrong Gemfile if you set a custom context directory

toys 0.12.0

05 Aug 22:07
474cf17
Compare
Choose a tag to compare

v0.12.0 / 2021-08-05

Toys 0.12.0 is a major release with significant new features and bug fixes, and a few minor breaking changes. Additionally, this release now requires Ruby 2.4 or later.

Breaking changes:

  • Defining a tool with whitespace, control characters, or certain punctuation in the name, now raises ToolDefinitionError.
  • The Toys::Tool class (for the object returned by the Toys::Context::Key::TOOL attribute) has been renamed to Toys::ToolDefinition so that the old name can be used for class-based tool definition.

New functionality:

  • The DSL now supports a class-based tool definition syntax (in addition to the existing block-based syntax). Some users may prefer this new class-based style as more Ruby-like.
  • The subtool list on help screens is now split into sections by source directory
  • You can now load tools from a remote git repository using the load_git directive.
  • Whitespace is now automatically considered a name delimiter when defining tools.
  • There is experimental support for providing tests for tools.
  • There is now an extensible settings mechanism to activate less-common tool behavior. Currently there is one setting, which causes subtools to inherit their parent's methods by default.
  • The load directive can load into a new tool.
  • You can now set the context directory individually for the standard build tools.
  • Added a new standard mixin that provides XDG Base Directory information.
  • Added a new standard mixin that provides cached access to remote git repos.

Fixes:

  • Fixed some bundler integration issues that occurred when the bundle is being installed in a separate path such as a vendor directory.
  • Exceptions raised from internal classes now include the full backtrace.

toys-core 0.12.0

05 Aug 22:06
474cf17
Compare
Choose a tag to compare

v0.12.0 / 2021-08-05

Toys-Core 0.12.0 is a major release with significant new features and bug fixes, and a few breaking interface changes. Additionally, this release now requires Ruby 2.4 or later.

Breaking interface changes:

  • The Toys::Tool class has been renamed Toys::ToolDefinition so that the old name can be used for class-based tool definition.
  • Tool definition now raises ToolDefinitionError if whitespace, control characters, or certain punctuation are used in a tool name.
  • Toys::Loader#add_path no longer supports multiple paths. Use add_path_set instead.
  • The "name" argument was renamed to "source_name" in Toys::Loader#add_block and Toys::CLI#add_config_block

New functionality:

  • The DSL now supports a class-based tool definition syntax (in addition to the existing block-based syntax). Some users may prefer this new class-based style as more Ruby-like.
  • You can now load tools from a remote git repository using the load_git directive.
  • Whitespace is now automatically considered a name delimiter when defining tools.
  • There is now an extensible settings mechanism to activate less-common tool behavior. Currently there is one setting, which causes subtools to inherit their parent's methods by default.
  • The load directive can load into a new tool.
  • Added a new utility class and mixin that provides XDG Base Directory information.
  • Added a new utility class and mixin that provides cached access to remote git repos.
  • The help text generator now supports splitting the subtool list by source.
  • Loader and CLI methods that add tool configs now uniformly provide optional source_name and context_directory arguments.
  • Toys::SourceInfo now supports getting the root ancestor and priority of a source.
  • Toys::ToolDefinition now has a direct accessor for the source root. This is always set for a tool, even if it isn't marked as finished.

Fixes:

  • Fixed some bundler integration issues that occurred when the bundle is being installed in a separate path such as a vendor directory.
  • Toys::ContextualError now includes the full backtrace of the cause.
  • Cleaned up some unused memory objects during tool loading and lookup.