2021-08-02 12:27:54 +00:00
|
|
|
# Deprecation
|
|
|
|
|
|
|
|
## ABI and API Deprecation {#deprecation}
|
2021-02-26 12:33:12 +00:00
|
|
|
|
|
|
|
This document details the policy for maintaining stability of SPDK ABI and API.
|
|
|
|
|
|
|
|
Major ABI version can change at most once for each quarterly SPDK release.
|
2021-11-25 01:40:57 +00:00
|
|
|
ABI versions are managed separately for each library and follow [Semantic Versioning](https://semver.org/).
|
2021-02-26 12:33:12 +00:00
|
|
|
|
|
|
|
API and ABI deprecation notices shall be posted in the next section.
|
|
|
|
Each entry must describe what will be removed and can suggest the future use or alternative.
|
|
|
|
Specific future SPDK release for the removal must be provided.
|
|
|
|
ABI cannot be removed without providing deprecation notice for at least single SPDK release.
|
|
|
|
|
2022-11-29 17:02:14 +00:00
|
|
|
Deprecated code paths must be registered with `SPDK_DEPRECATION_REGISTER()` and logged with
|
|
|
|
`SPDK_LOG_DEPRECATED()`. The tag used with these macros will appear in the SPDK
|
|
|
|
log at the warn level when `SPDK_LOG_DEPRECATED()` is called, subject to rate limits.
|
|
|
|
The tags can be matched with the level 4 headers below.
|
|
|
|
|
2021-08-02 12:27:54 +00:00
|
|
|
## Deprecation Notices {#deprecation-notices}
|
2022-05-18 07:21:05 +00:00
|
|
|
|
|
|
|
### nvme
|
|
|
|
|
|
|
|
Deprecated `spdk_nvme_ctrlr_prepare_for_reset` API, which will be removed in SPDK 22.01.
|
|
|
|
For PCIe transport, `spdk_nvme_ctrlr_disconnect` should be used before freeing I/O qpairs.
|