When you write a library, you want people to use it. (Otherwise, why write it as a library?). But to attract and keep users, you need to provide more than "a bunch of code". In this talk, I’ll discuss some of those things.
I’ll talk about:
-
Code quality and portability
-
Testing
-
Documentation
-
Release criteria, scheduling, and documentation
-
Static and dynamic analysis
-
Fuzzing
-
Managing change in your library
as well as tools that you can use for providing these things. Examples will be taken from Boost and libc++, the C++ standard library implementation for LLVM.