diff options
Diffstat (limited to 'doc/roadmap.rst')
-rw-r--r-- | doc/roadmap.rst | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/doc/roadmap.rst b/doc/roadmap.rst new file mode 100644 index 000000000..76ab81f07 --- /dev/null +++ b/doc/roadmap.rst @@ -0,0 +1,58 @@ + +Botan Development Roadmap +======================================== + +Branch Stucture +---------------------------------------- + +Stability of branches is indicated by even or odd minor version numbers. The +minor number of the primary trunk is always odd and devel releases and +snapshots are made directly from it. Every once in a while a new even-numbered +branch is forked. All development continues on the main trunk, with fixes and +occasionally small features backported to the stable branch. Stability of API +and ABI is very important in the stable branches, whereas in trunk ABI changes +happen with no warning, and API changes are made whenever it would serve the +ends of justice. + +Current Status +---------------------------------------- + +Currently (as of 2015-07-03) trunk is numbered 1.11 and is written in C++11, +unlike earlier versions which used C++98. In due time a new stable 2.0 branch +will be made off of trunk and afterwards trunk will be renumbered as 2.1. The +2.0 releases will be maintained with security and bug fixes at least until a +new 2.2 stable branch is created and likely for some time afterwards. In the +last decade the length of time between new stable trees being created has been +between 23 and 41 months, suggesting a support lifetime of 2-4 years for 2.0.x. + +The 1.10 stable tree is, well, stable. There isn't enough project time to +backport all of the nice features from 1.11 (eg TLS v1.2, GCM, OCB, or +McEliece) to 1.10, even where it could be done while maintaining API/ABI +compat. The C++11 transition makes it especially hard for the 1.10/1.11 +split. So if 1.10 does what you want now it probably will next week, but it +won't ever do much beyond that. If you want any feature or optimization or side +channel resistance added in the last 4 years you have to use 1.11. 1.10 will +continue to be maintained at the current level for at least a year after 2.0 is +released. + +1.8 and all older versions are no longer maintained. + +Supported Targets +---------------------------------------- + +The primary supported targets, which are tested with every commit by +continous integration, are GCC and Clang on Linux, Clang on OS X, and +MSVC 2013 on Windows, all on some form of x86. + +Other processors, like ARM, MIPS, and POWER processors, and OSes, such +as OpenBSD, MinGW, or iOS are occasionally tested on an ad-hoc basis, +but breakage is somewhat more likely. + +Ongoing Issues +---------------------------------------- + +Some infrastructure, scripts and such still exists only on the machines of the +primary developer. + +Documentation could always use help. Many things are completely undocumented, +few things are documented well. |