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 and teardown_module

    • setup_class and teardown_class

    • setup_method and teardown_method

    • setup_function and teardown_function

  • Any unittest feature which is not supported by Pytest. Currently, this is only subTest and the load_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.