Cri News

2.15.9

Fixes:

2.15.8

Fixes:

This release reverts a backwards-incompatible change introduced in 2.15.7.

To illustrate this, compare the behavior of the following command in recent versions of Cri:

option :f, :force, 'use force', argument: :forbidden

run do |opts, args, cmd|
  puts "Options = #{opts.inspect}"
  puts "Force? #{opts[:force]}"
  puts "Option given? #{opts.key?(:force)}"
end

In Cri 2.15.6, the default is not set in the options hash, so the value is nil and #key? returns false:

% ./run
Options = {}
Force? nil
Option given? false

This behavior was inconsistent with what was documented: flag options were (and still are) documented to default to false rather than nil.

In Cri 2.15.7, the default value is false, and explicitly set in the options hash (#key? returns true):

% ./run
Options = {:force=>false}
Force? false
Option given? true

This change made it impossible to detect options that were not explicitly specified, because the behavior of #key? also changed.

In Cri 2.15.8, the default value is also false (as in 2.15.7), but not explicitly set in the options hash (#key? returns false, as in 2.15.6):

% ./run
Options = {}
Force? false
Option given? false

This backwards-incompatible change was not intentional. To fix issue #94, a change in behavior was needed, but this change also affected other, previously-undefined behavior. The new behavior in 2.15.8 should fix the bug fixed in 2.15.7 (#94, #96), without causing the problems introduced in that version.

2.15.7

Fixes:

2.15.6

Fixes:

2.15.5

Fixes:

2.15.4

Fixes:

2.15.3

Fixes:

2.15.2

Fixes:

2.15.1

Fixes:

Enhancements:

2.15.0

Features:

2.14.0

Features:

2.13.0

Features:

2.12.0

Features:

2.11.0

Features:

2.10.1

Fixes:

2.10.0

Features:

This release drops support for Ruby 2.1, which is no longer supported.

2.9.1

Fixes:

2.9.0

Features:

Enhancements:

2.8.0

Features:

2.7.1

Fixes:

2.7.0

Features:

Enhancements:

2.6.1

2.6.0

2.5.0

2.4.1

2.4.0

2.3.0

2.2.1

2.2.0

2.1.0

2.0.2

2.0.1

2.0.0

1.0.1

1.0.0