3 <!--#include virtual="/inc/head.shtml" -->
6 <!--#include virtual="/inc/banner.shtml" -->
10 <div class="blog-index">
13 <h2>Release Strategy</h2>
15 First issued 23rd December 2014<br/>
16 Last modified 7th January 2020
20 <div class="entry-content">
23 As of release 3.0.0, the OpenSSL versioning scheme is changing
24 to a more contemporary format: MAJOR.MINOR.PATCH
28 With this format, API/ABI compatibility will be guaranteed
29 for the same MAJOR version number. Previously we guaranteed
30 API/ABI compatibility across the same MAJOR.MINOR combination.
34 <li>MAJOR: API/ABI incompatible changes will increase this number</li>
35 <li>MINOR: API/ABI compatible feature releases will change this</li>
36 <li>PATCH: Bug fix releases will increment this number. We also
37 allow backporting of accessor functions in these releases.</li>
41 This more closely aligns with the expectations of users who are
42 familiar with semantic versioning. However, we have not adopted
43 semantic versioning in the strict sense of its rules, because it
44 would mean changing our current LTS policies and practices.
48 The current 1.1.1 versioning scheme remains unchanged:
51 As of release 1.0.0 the OpenSSL versioning scheme was improved
52 to better meet developers' and vendors' expectations. Letter
53 releases, such as 1.0.2a, exclusively contain bug and security
54 fixes and no new features. Releases that change the last digit,
55 e.g. 1.1.0 vs. 1.1.1, can and are likely to
56 contain new features, but in a way that does not break binary
57 compatibility. This means that an application compiled and
58 dynamically linked with 1.1.0 does not need to be recompiled
59 when the shared library is updated to 1.1.1. It should be
60 noted that some features are transparent to the application
61 such as the maximum negotiated TLS version and cipher suites,
62 performance improvements and so on. There is no need to
63 recompile applications to benefit from these features.
69 <p>With regards to current and future releases the OpenSSL
70 project has adopted the following policy:</p>
73 <li>The next version of OpenSSL will be 3.0.0.</li>
74 <li>Version 1.1.1 will be supported until 2023-09-11 (LTS).</li>
75 <li>Version 1.0.2 is no longer supported. Extended support
76 for 1.0.2 to gain access to security fixes for that version is
77 <a href="/support/contracts.html">available</a>.</li>
78 <li>Versions 1.1.0, 1.0.1, 1.0.0 and 0.9.8 are no longer supported.</li>
81 <p>We may designate a release as a Long Term Support (LTS)
82 release. LTS releases will be supported for at least five years
83 and we will specify one at least every four years. Non-LTS
84 releases will be supported for at least two years.</p>
86 <p>During the final year
87 of support, we do not commit to anything other than security
88 fixes. Before that, bug and security fixes will be applied
94 Before a major release, we make a number of pre-releases, labeled
95 <i>alpha</i> and <i>beta</i>.
98 <p>An <i>alpha</i> release means:</p>
100 <li>Not (necessarily) feature complete</li>
101 <li>Not necessarily all new APIs in place yet</li>
104 <p>A <i>beta</i> release means:</p>
106 <li>Feature complete/Feature freeze</li>
107 <li>Bug fixes only</li>
110 <p>The OpenSSL 3.0 release schedule is documented on the
111 <a href="https://wiki.openssl.org/index.php/OpenSSL_3.0_Release_Schedule">OpenSSL 3.0 Release Schedule</a>
112 wiki page. We expect the final release to be in early Q4 2020.</p>
115 For any major or minor release, we have defined the following
121 All open github issues/PRs older than 2 weeks at the time of
122 release need to be assessed for relevance to the version being
123 released. Any flagged with the a milestone for the version
124 to be released must be closed (see below).
127 Clean builds in Travis and Appveyor for two days.
130 run-checker.sh succeeds on 2 consecutive days before release.
133 No open Coverity issues (not flagged as "False Positive" or
139 Valid reasons for closing an issue/PR with a milestone for the
145 We have just now or sometime in the past fixed the issue
148 Unable to reproduce (following discussion with original reporter
155 Deliberate decision not to fix this issue until a later release (this
156 wouldn't actually close the issue/PR but change the milestone
160 Not enough information and unable to contact reporter
166 <p>No API or ABI breaking changes are allowed in a minor or patch release.
167 The following stability rules apply to all changes made to code
168 targeted for a major release from version 3.0.0 or later:</p>
170 <li>No existing public interface can be modified except where changes
171 are unlikely to break source compatibility or where structures are made
173 <li>No existing public interface can be removed until its replacement
174 has been in place in an LTS stable release. The original interface must
175 also have been documented as deprecated for at least 5 years. A public
176 interface is any function, structure or macro declared in a public
178 <li>When structures are made opaque, any newly required accessor
179 macros or functions are added in a feature release of the extant LTS
180 release and all supported intermediate successor releases.</li>
185 You are here: <a href="/">Home</a>
186 : <a href="/policies">Policies</a>
187 : <a href="">Release Strategy</a>
188 <br/><a href="/sitemap.txt">Sitemap</a>
192 <!--#include virtual="sidebar.shtml" -->
196 <!--#include virtual="/inc/footer.shtml" -->