Skip to content

Stability Policy

This project uses the MAJOR.MINOR.PATCH version number format and follows Intended Effort Versioning (EffVer) for the Python API: the version number tells you how much effort an upgrade is expected to take, not whether something is technically incompatible. This means that, unlike with Semantic Versioning, minor releases may contain small breaking changes.

Public API

This policy covers the webknossos and cluster_tools packages, which are released together with the same version number. Only the following is covered:

  1. Everything that is imported directly from the webknossos or cluster_tools module, not from submodules, e.g.
    import webknossos as wk
    wk.Skeleton()
    # or
    from webknossos import Dataset
    Dataset()
    # or
    import cluster_tools
    cluster_tools.get_executor("multiprocessing")
    
  2. Methods, functions, classes and variables prefixed with an underscore are not part of the public API and may change anytime.

Versions

  • Major releases may contain breaking changes to commonly used parts of the API. They are listed in the Breaking Changes section of the changelog, together with upgrade instructions.
  • Minor releases add features and deprecate APIs. They may also contain small breaking changes to rarely used parts of the API, or changes needed to keep up with the WEBKNOSSOS server. Such changes are listed in the Changed section of the changelog and start with Breaking:.
  • Patch releases only contain bug fixes.

Whether a breaking change is common enough to require a major release is decided case by case when it is added to the changelog. Where possible, APIs are deprecated with a warning first, listed in the Deprecated section, and removed in a later release. To be notified of upcoming removals, watch for DeprecationWarnings in your code.