- [Breaking change] Simplify stateful command protocol:
argumentsmust now acceptstateparameter, andapplicable?must now accept bothstateandargsparameters - Make
rngoptional in all arbitrarygeneratemethods with defaultRandom.new#44 - Mark stateful testing API as stable (no longer experimental)
- Add experimental
Pbt.statefulAPI for model-based stateful property testing #38 - Support state-aware and arg-aware stateful command protocols, including argument shrinking and generation edge cases #40
- Validate stateful model/command contracts more consistently and improve diagnostics #39
- Add Ruby 4.0 to CI test matrix
- Fix
IntegerArbitrary#shrinkto respect min/max bounds #36
- [Breaking change] Drop
:processand:threadworkers since there are no concrete use cases. - [Breaking change] Drop
:experimental_ractor_rspec_integrationoption since there are no concrete use cases.
- Fix Prism
LoadErrormessage #27 by @sambostock
- Fix a bug for experimental_ractor_rspec_integration mode. When a test file name starts with a number, it can't be a constant name.
- Allow to use RSpec::Matchers for
worker: :none, :thread, :processalso. - Make error message short to keep focusing on failure causes.
- Fix a bug for a case when parameters cannot be passed to a test block correctly.
- Add experimental_ractor_rspec_integration mode. Be careful, it's quite experimental.
- Fix a bug: consider a case when a backtrace is nil.
- Allow to pass a predicate block keyword arguments with destruction.
- Add verbose mode. It's useful to debug the test case.
- Change default worker from
:ractorto:none
- Implement basic primitive arbitraries
- Implement composite arbitraries
- Support shrinking
- Support multiple concurrency methods
- Ractor
- Process
- Thread
- None (Run tests sequentially)
- Documentation
- Add better examples
- Arbitrary usage
- Configuration
- Initial release (Proof of concept)