aboutsummaryrefslogtreecommitdiffstats
path: root/doc/roadmap.rst
blob: ccac29a28ff624d099e06726aaa3c05082b5a044 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

Botan Development Roadmap
========================================

Branch Structure
----------------------------------------

Stability of branches is indicated by even or odd minor version numbers. The
minor number of master is always odd, and devel releases come from it. Every
once in a while a new even-numbered branch is forked. All development continues
on the main trunk, with fixes and API compatible features backported to the
stable branch. Stability of API and ABI is very important in the stable
branches, whereas in master ABI changes happen with no warning, and API changes
are made whenever it would serve the ends of justice.

Current Status
----------------------------------------

Currently (as of 2016-11-03) git master is approaching feature freeze for a
stable 2.0 branch by the end of December 2016.

At some point between the final release candidate and the 2.0.0 release, a new
release-2.0 branch will be created off of master. Development will continue on
master (renumbered as 2.1.0), with chosen changes backported to release-2.0
branch.

Theoretically a new development release could be created at any time after this.
But it is likely that for at least several months after branching, most
development will be oriented towards being applied also to 2.0, and so there
will not be any interesting diff between 2.1 and 2.0. At some point when the
divergence grows enough to be 'interesting' a new development release will be
created. These early development releases would only be for experimenters, with
2.0 recommended for general use.

Support Lifetimes
----------------------------------------

Botan 2.0.x will be supported for at least 24 months from the date of 2.0.0
(probably longer)

Botan 1.10.x is supported (for security patches only) through 2017-12-31

All prior versions are no longer supported in any way.

Supported Targets
----------------------------------------

The primary supported targets, which are tested with every commit by
continuous integration, are GCC and Clang on Linux/x86-64, Clang on
OSX/x86-64, and MSVC 2015 on Windows/x86-64. We also test arm, arm64,
and ppc64 builds via GCC cross compilation and qemu emulation, and for
iOS cross-compilation is checked (but the tests are not run).

Other processors and OSes, like MIPS and OpenBSD, are occasionally
tested on an ad-hoc basis, but breakage is somewhat more likely.

As a policy we do not support any OS which is not supported by its
original vendor. So for example no consideration whatsoever is given
to supporting such EOLed systems as Windows 2000 or Solaris 2.6.

Ongoing Issues
----------------------------------------

Documentation could always use help. Many things are completely undocumented,
few things are documented well.