diff --git a/README.md b/README.md index 9bfe63f1..1ae60226 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,16 @@ treatments. It generally replicates the functionality developed in the MATLAB [open-TFUS toolbox](https://github.com/OpenwaterHealth/opw_neuromod_sw). +## Supported Versions + +![openlifu-python maintenance by release line](docs/support-schedule.svg) + +Versions may fall to a lower support tier every six months or so, each time the +downstream +[desktop application](https://github.com/OpenwaterHealth/openlifu-desktop-application/tree/main) +selects a newer version of openlifu. See the [support schedule](SUPPORT.md) for +details. + ## Installation ### Requirements diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 00000000..18eb2e91 --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,60 @@ +# Support schedule + +This document defines the maintenance and support policy for the `openlifu` +python package. + +## Release lines and patch releases + +A **release line** is a `MAJOR.MINOR` version series, such as `0.20`. +Maintenance is delivered through patch releases. Only the **latest patch +release** within a supported line is supported; earlier patches are superseded. + +## Maintenance tiers + +- **Full Maintenance:** fixes for critical and noncritical issues. +- **Critical Maintenance:** fixes for critical issues only. +- **Unsupported:** no maintenance releases. + +The +[desktop application](https://github.com/OpenwaterHealth/openlifu-desktop-application)'s +releases determine the support boundaries for openlifu, as described in the +[desktop application support schedule](https://github.com/OpenwaterHealth/openlifu-desktop-application/blob/main/SUPPORT.md): + +- Full Maintenance runs from the latest release all the way back to the release + line used in the latest openlifu-desktop-application release. +- Critical Maintenance runs back through the release line used for the previous + openlifu-desktop-application release. + +The +[release component version table](https://github.com/OpenwaterHealth/openlifu-desktop-application/blob/main/docs/release-component-version-table.md) +shows support status according to these rules. + +With roughly two desktop release lines per year, support tiers may change every +six months or so. Support transitions follow actual releases; these durations +are not fixed calendar deadlines. + +## Support at a glance + +![openlifu-python maintenance by release line](docs/support-schedule.svg) + +The graphic and table describe release lines. Always use the latest patch in a +supported line. + +## What counts as critical? + +Critical Support applies when fixes are needed to address circumstances such as +the following: + +- Impacts to essential device performance, including safety-related issues +- Incorrectness of planning, simulation, or targeting +- Data loss or corruption +- Inability to perform core functionality with no reasonable workaround + +## Temporary Exceptions + +These follow the +[desktop application's temporary exceptions](https://github.com/OpenwaterHealth/openlifu-desktop-application/blob/main/SUPPORT.md#temporary-exceptions): + +- The latest "legacy IO" release line is fully supported for now. +- `v0.18` and `v0.19` are Unsupported, rather than receiving Critical Support, + because desktop application `v1.11` is Unsupported. diff --git a/docs/support-schedule.svg b/docs/support-schedule.svg new file mode 100644 index 00000000..3877b4af --- /dev/null +++ b/docs/support-schedule.svg @@ -0,0 +1,24 @@ + + openlifu-python: support by component and release line + Release lines for openlifu-python, grouped by maintenance status. + + + + Unsupported + Critical Maintenance + Full Maintenance + + + openlifu-python + + + v0.19 and older + + (none) + + v0.20 - v0.21 + + v0.20 legacy IO + + + +