10. Release Process and Checklists
Release goals
A release candidate should satisfy:
stable C++ core behavior for supported surfaces
C ABI behavior consistent and tested
Python and Fortran bindings build and pass expected test gates
docs site and API references build successfully
Contributor release checklist
Build and tests
[ ] build core/bindings with
-j6[ ] C ABI tests pass
[ ] Fortran basic test passes
[ ] Python non-MPI/non-CUDA suite passes
Documentation
[ ] Doxygen generation succeeds
[ ] Sphinx site generation succeeds
[ ] new contributor-facing pages are in docs navigation
[ ]
distributed_spancoverage is present in user/developer/bindings guides where non-owning semantics are relevant
API quality
[ ] public API comments complete and signature-aligned
[ ] backend-unavailable paths return explicit status codes
[ ] ownership/lifetime contracts documented for new handles/wrappers
[ ] parity matrix rows are updated for any changed container/view semantics (including
distributed_span)
Version and packaging notes
keep package version sources aligned (CMake/package/binding expectations)
avoid hardcoded test expectations that diverge from project version metadata