This patch fixes some internal typos. There is no user-visible change.
Moves rake from being a a runtime dependency to being a development dependency. Rake is used to run tests but is not required for consumers of hypothesis-ruby.
This patch contains minor performance improvements for HypothesisCoreIntegers
class instantiation.
Adds support for skipping shrinking. While shrinking is extremely helpful and important in general, it has the potential to be quite time consuming. It can be useful to observe a raw failure before choosing to allow the engine to try to shrink. hypothesis-python already provides the ability to skip shrinking, so there is precedent for this being useful. While hypothesis-ruby
does not have the concept of other "Phases" yet, we can still start off the API by using this concept.
Usage:
hypothesis(phases: Phase.excluding(:shrink)) do
# Failures here will be displayed directly and shrinking will be avoided
end
Adds support for skipping shrinking. While shrinking is extremely helpful and important in general, it has the potential to be quite time consuming. It can be useful to observe a raw failure before choosing to allow the engine to try to shrink. hypothesis-python already provides the ability to skip shrinking, so there is precedent for this being useful. While hypothesis-ruby
does not have the concept of other "Phases" yet, we can still start off the API by using this concept.
Usage:
hypothesis(phases: Phase.excluding(:shrink)) do
# Failures here will be displayed directly and shrinking will be avoided
end
This removes hypothesis-ruby's dependence on RSpec. Now, it can be used with any Ruby test runner.
This release converts Hypothesis for Ruby to use RuTie instead of the deprecated Helix, restoring compatibility with recent versions of Rust. Thanks to Alex Weisberger for taking this on!
This release adds an example database to Hypothesis for Ruby. This means that when a test fails, it will automatically reuse the previously shown example when you rerun it, without having to manually pass a seed.
This release makes the code usable via a direct require. I.e. no need for rubygems or any special LOAD_PATH.
For example, if the base directory were in /opt, you'd just say: require "/opt/hypothesis/hypothesis-ruby/lib/hypothesis"
This release fixes minor documentation issues.
Thanks to Tessa Bradbury for this contribution.
This release adds support for reporting multiple exceptions when Hypothesis finds more than one way for the test to fail.
This release fixes an occasional RuntimeError
that could occur
when shrinking a failing test.
This release updates the release date to the correct date, as part of fixing a bug which caused the last couple of releases (0.0.11, 0.0.12, and 0.0.13) to have an incorrect date.
This release moves the core Rust engine into the separate Conjecture crate. It should have no user visible effect.
This release is the beginning of splitting out the Rust core of Hypothesis
Ruby into a separate conjecture
crate for the non-Ruby-specific components
of it.
It should have no user visible impact.
This release has no user-visible changes other than updating the gemspec's homepage attribute.
This release is another update to shrinking:
- Cases where the value may be simplified without necessarily becoming smaller will have better results.
- Duplicated values can now sometimes be simultaneously shrunk.
This improves Hypothesis for Ruby's shrinking to be much closer
to Hypothesis for Python's. It's still far from complete, and even
in cases where it has the same level of quality it will often be
significantly slower, but examples should now be much more consistent,
especially in cases where you are using e.g. built_as
.
This release fixes the dependency on Rake to be in a more sensible range.
This release updates an error in the README.
This release just updates the gem description.
This is a trivial release to test the release automation. It should have no user visible impact.
This is an initial developer preview of Hypothesis for Ruby. It's ready to use, but isn't yet stable and has significant limitations. It is mostly released so that people can easily give feedback on the API and implementation, and is likely to change substantially before a stable release.
Note that while there were some earlier release numbers internally, these were pulled. This is the first official release.