All releases of SPDK are available through GitHub. GitHub serves as the master repository for all changes, so the master branch always contains the latest code.
An SPDK release defines a public API version, where the public API comprises all of the C header files in the include/spdk directory. The version names are in the format
YY is year,
MM is month, and
vv is a minor version number and is often omitted. For example, the release in December of 2016 is version 16.12. The minor version is reserved for bug fix releases made at a later date that remain API compatible with the original release. SPDK makes no guarantees about API compatibility between releases with differing YY.MM versions, although every effort will be made to avoid breaking the API. Releases with identical YY.MM versions but differing minor version numbers are guaranteed to be API compatible. SPDK makes no guarantees about ABI compatibility between any two versions at this time.
SPDK uses a quarterly release cycle. The first two months of each quarter are an open window for merges. The final month of each quarter is intended only for bug fixes and documentation and so pull requests containing new features may be delayed, at the discretion of the maintainers. A high level roadmap for the next release is always posted at the start of the release cycle. The roadmap may be discussed on the SPDK mailing list at any time, and feedback is very welcome.
Bug reports may be filed using GitHub issues and should indicate the version of SPDK in question (or say
master for the latest). Bugs will always be fixed on the
master branch first, but may be back-ported to either of the two most recent releases if:
- A user requests the back-port by commenting on the issue stating to which version they’d like the bug back-ported
- The bug fix does not require a breaking API change