On Wed, Apr 01, 2009, Kenneth Goldman wrote:

> Assuming it's not a joke, what's the meaning of a 1.0 as opposed to
> 0.9.something.
> 
> My hope is that you'll say the API is frozen and that there's a commitment
> not to break backward compatibility in future releases.
> 

Here's an outline of the reasons...

A problem which has always been apparent with the current OpenSSL version
scheme is that there are three needs...

1. Bug fixes (including security issues).
2. New features which retain binary compatibility.
3. Major development and revision which may not retain binary compatibility
   and may obsolete old or broken APIs.

We only had two numbers to play with and bug fixes and new features were both
tied into the letter revisions (0.9.8j->0.9.8k) and so on.

Major development was performed by changing the last number i.e.
0.9.8->0.9.9.

The reason why there is a need to have new features independent of major
development is mainly based on timescale. Type #3 releases only happen every
few years largely because making big API changes regularly is not an option.
So if there is a need for a new feature it can be added in a type #2 release:
many people don't want to wait years before some much needed feature is added.
For example TLS extensions and CMS support recently.

[On a more practical note many of my clients want new features added quickly
if possible and that pays the bills]

It was decided that we should no longer combine feature and bugfix releases
and to do that we revised the versioning scheme. The 0.9.x was a legacy from
the SSLeay days so we wanted a clean break and went for 1.0.0 in what would've
been 0.9.9. OpenSSL is more than mature enough to have a 1.0 version number
anyway.

Under this scheme....

1. Bug fix releases will change the letter.
   E.g. 1.0.0 -> 1.0.0a

2. Feature releases will change the last (minor) number.
   E.g. 1.0.0 -> 1.0.1

3. Major development will change the second (major) number.
   E.g. 1.0.0 -> 1.1.0

So effectively we are freezing the API and not (knowingly) making any changes
which will break applications until the 1.1.0 release which on past experience
will be some years away.

We can't freeze the API indefintely because it would effectively halt major
development. Some parts of the API are just too inflexible to support what we
may want to do in future.

Steve.
--
Dr Stephen N. Henson. Email, S/MIME and PGP keys: see homepage
OpenSSL project core developer and freelance consultant.
Homepage: http://www.drh-consultancy.demon.co.uk
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to