Skip to content

Latest commit

 

History

History
77 lines (60 loc) · 3.19 KB

README.md

File metadata and controls

77 lines (60 loc) · 3.19 KB

API Special Interest Group

SIG-API is responsible for reviewing and approving changes to the project's public APIs, and for maintaining guidelines around creating such APIs. It is also responsible for reviewing public API documentation and sample code, since the point of documentation and sample code is to illustrate how to effectively use public Open Enclave APIs.

Meetings

Currently combined with SIG-Architecture.

SIG Chair

Dave Thaler (dthaler)

SIG Approvers

TBD

SIG Reviewers

TBD

Charter

References that API reviewers are expected to be familiar with the existence of (but not necessarily their contents), so they can be consulted when appropriate include:

  • Open Enclave API guidelines: All pull requests that affect public APIs are expected to conform to these guidelines. SIG-API is responsible for any updates to these guidelines, and SIG-API reviewers are expected to be familiar with these guidelines and review PR's for conformance to them.

  • Doxygen manual: This reference is relevant to comments on public APIs, which are used to generate the public docs reachable under "API Documentation" on the Open Enclave SDK site. For example, the difference between returns and retval, the use of [in,out] annotations, etc. are explained at this site.

  • C/C++ Language Reference: This reference covers standard C and C++ language concepts and library (e.g., libc) APIs, and explains any differences between language versions, such as C++11 and C99. Libc APIs are normally expected to conform to these specifications. Samples should generally follow recommendations in these specifications where appropriate (e.g., avoiding deprecated APIs, use of nullptr in C++11 samples).

  • POSIX API specification: POSIX APIs are normally expected to conform to this specification.

  • Linux man pages: Linux is not always compliant to the POSIX API or C/C++ standards. For example, the malloc page explains that when malloc() returns non-NULL there is no guarantee that the memory really is available. Hence this reference should be consulted for discussion of "standard" APIs.

  • Windows API documentation: Windows is not always compliant to the POSIX API or C/C++ standards. For example, Windows requires closesocket() to close a socket rather than the POSIX close() API. Hence this reference should be consulted for discussion of "standard" APIs.