diff options
author | lloyd <[email protected]> | 2015-01-08 13:23:54 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2015-01-08 13:23:54 +0000 |
commit | c0de1f06d4522f3d1f114fdf2f5566467f495525 (patch) | |
tree | fa92103404b035f8766c9dde2b485f8f1bf9d23f /doc | |
parent | 89d6002286e4a1120fc544c70b0bb483e50bf634 (diff) |
Add a sketch of a support roadmap
Diffstat (limited to 'doc')
-rw-r--r-- | doc/dev/roadmap.rst | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/doc/dev/roadmap.rst b/doc/dev/roadmap.rst new file mode 100644 index 000000000..9c30130e1 --- /dev/null +++ b/doc/dev/roadmap.rst @@ -0,0 +1,59 @@ + +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-01-08) 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 target (ie, what the main developer uses and tests with +regularly) is a recent GCC or Clang on Linux with an x86-64 CPU. Occasionally +Linux systems using POWER, MIPS, and ARM processors are also checked. Testing +and fixes for Windows, MinGW, OS X, OpenBSD, Visual C++, iOS, etc comes +primarily from users. + +Ongoing Issues +---------------------------------------- + +Currently sources are kept in :doc:`Monotone <vcs>`, which likely discourages +some would-be developers. The github mirror may be helping somewhat here. + +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. |