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