M1. Support portable installation through Spack. |
Full |
DTK is a spack package: https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/datatransferkit/package.py |
M2. Provide a comprehensive test suite for correctness of installation verification. |
Full |
DTK uses CTest for running comprehensive tests. |
M3. Employ user-provided MPI communicator (no MPI_COMM_WORLD). Don't assume a full MPI 3 implementation without checking. Provide an option to prevent any changes to MPI error-handling if it is changed by default. |
Full |
Only user-provided communicators are used. |
M4. Give best effort at portability to key architectures (standard Linux distributions, GNU, Clang, vendor compilers, and target machines at ALCF, NERSC, OLCF). |
Full |
DTK has been tested at ALCF, OLCF, and with a variety of platforms (Linux, Mac OSX) and compilers (Clang, GNU, NVCC, IBM, etc.) |
M5. Provide a documented, reliable way to contact the development team. |
Full |
https://github.com/ORNL-CEES/DataTransferKit/blob/master/CONTRIBUTING.md |
M6. Respect system resources and settings made by other previously called packages (e.g. signal handling). |
Full |
DTK doesn't interfere with that. |
M7. Come with an open source (BSD style) license. |
Full |
BSD 3-Clause |
M8. Provide a runtime API to return the current version number of the software. |
Full |
DataTransferKit::version() and DataTransferKit::gitCommitHash() |
M9. Use a limited and well-defined symbol, macro, library, and include file name space. |
Full |
All DTK functionality is wrapped in the DataTransferKit namespace, macros start with DTK_ , header files have the format DTK_* . |
M10. Provide an xSDK team accessible repository (not necessarily publicly available). |
Full |
https://github.com/ORNL-CEES/DataTransferKit |
M11. Have no hardwired print or IO statements that cannot be turned off. |
Full |
DTK doesn't use any IO statements. |
M12. For external dependencies, allow installing, building, and linking against an outside copy of external software. |
Full |
All dependencies can be provided externally. |
M13. Install headers and libraries under <prefix>/include and <prefix>/lib. |
Full |
Yes, the install path is chosen via CMAKE_INSTALL_PREFIX . |
M14. Be buildable using 64 bit pointers. 32 bit is optional. |
Full |
Yes, whatever the compiler uses. |
M15. All xSDK compatibility changes should be sustainable. |
Full |
The xSDK compatibility requirements are fulfilled by the default branch. |
M16. Any xSDK-compatible package that compiles code should have a configuration option to build in Debug mode. |
Full |
Via CMake . |