aboutsummaryrefslogtreecommitdiffstats
path: root/doc/roadmap.rst
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2015-07-03 10:43:02 -0400
committerJack Lloyd <[email protected]>2015-07-03 10:43:02 -0400
commitae94396329f583d0999d4086936811f68bddd59b (patch)
tree3aaaa95dc4bea25564e9c11b7a70a1ebb2f4e7b2 /doc/roadmap.rst
parent56d07f092b170bfdf4972414b0739664c8d6294a (diff)
Simplify the website and documentation layout.
Merge the website index, download page, algo page into the readme file so all the important information is in one place. The readme.rst is now also used as the website landing page. Remove the website target on the makefile, replaced by website.sh, since I'm the only one who ever needs to run this. Fix various ReST formatting bugs in news.rst and the manual Remove the old build_log which hasn't been touched in years and refers entirely to compilers which we don't support anymore.
Diffstat (limited to 'doc/roadmap.rst')
-rw-r--r--doc/roadmap.rst58
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.