Compatibility¶
HypoFuzz uses calendar-based versioning, with a
YY-MM-patch
format.
Because HypoFuzz is closely tied to Hypothesis internals, we recommend pinning your transitive dependencies using a tool like pip-compile, uv, or pipenv. This makes it possible to reproduce old environments based only on your version-control history, and ensures that any compatibility problems in new releases can be handled when it suits you.
Pytest and unittest compatibility¶
HypoFuzz is compatible with almost all features of Pytest and unittest. The features which are not are listed below. If any of these features are important to you, please get in touch! They are not yet implemented in HypoFuzz due to low perceived use.
Pytest’s xunit-style setup and teardown methods. Like Pytest, we recommend using fixtures instead.
setup_module
andteardown_module
setup_class
andteardown_class
setup_method
andteardown_method
setup_function
andteardown_function
Any unittest feature which is not supported by Pytest. Currently, this is only
subTest
and theload_tests
protocol.
Direct dependencies¶
HypoFuzz’s direct dependencies are:
dependencies = [
"black>=23.3.0",
"coverage>=5.2.1",
"hypothesis[cli,watchdog]>=6.135.20",
"libcst>=1.0.0", # for hypothesis.extra._patching
"psutil>=3.0.0",
"pytest>=7.0.0",
"starlette",
"trio",
"hypercorn",
]
API deprecation policy¶
The command-line interface will not make incompatible changes without at least three months notice, during which passing deprecated options will emit runtime warnings (e.g. via the terminal, displayed on the dashboard, etc.).
User-accesible integration points with Hypothesis, such as the
ExampleDatabase
API, are considered
stable upstream and are unlikely to change even in major version releases.
If it is impractical to continue to support old versions of Hypothesis (or other dependencies) after a major update, the minimum supported version will be updated. If you would like to use new versions of HypoFuzz with old versions of its dependencies, please get in touch to discuss your specific needs.