Deprecation of stuff
David Woodhouse
dwmw2 at infradead.org
Wed Sep 4 14:15:48 UTC 2019
On Mon, 2019-09-02 at 08:38 +0200, Richard Levitte wrote:
> The dispute in PR https://github.com/openssl/openssl/pull/7853 has
> made it quote obvious that we have some very different ideas on when
> and why we should or shouldn't deprecate stuff.
>
> What does deprecation mean? Essentially, it's a warning that at some
> point in the future, the deprecated functionality will be removed. I
> believe that part of the issue surrounding this is uncertainty about
> when that removal will happen, so let me just remind you what's
> written in our release strategy document:
>
> * No existing public interface can be removed until its replacement
> has been in place in an LTS stable release. The original interface
> must also have been documented as deprecated for at least 5 years.
> A public interface is any function, structure or macro declared in
> a public header file.
>
> Ref: https://www.openssl.org/policies/releasestrat.html
>
> I'd like to get this thread started with the following four questions,
> for as many of us to answer as possible:
>
> 1. Why should we deprecate stuff
>
> 2. Why should we not deprecate stuff
>
> 3. When should we deprecate stuff
>
> 4. When should we not deprecate stuff
>
> Cheers,
(I know -project won't accept my mail; you can choose to include it in
a reply if you see fit).
I'd note that the question of *versioning* mechanisms is a very very
special case of "when to deprecate stuff". So much so as to almost make
it a completely separate question altogether.
My own favourite application is littered with checks on
OPENSSL_VERSION_NUMBER, and the occasional call to SSLeay() to check
for things that were fixed at runtime without an ABI change.
http://git.infradead.org/users/dwmw2/openconnect.git/blob/HEAD:/openssl.c
http://git.infradead.org/users/dwmw2/openconnect.git/blob/HEAD:/openssl-dtls.c
A change to the versioning scheme is very much more than just another
thing that's been deprecated; it's a change to the very mechanism by
which we handle those deprecations. Changing that (and by extension,
rapidly deprecating it) requires a lot more work on the part of
application authors who want their code to build against whatever
version of OpenSSL may be present on the platforms they need to
support.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5174 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-project/attachments/20190904/f20dceeb/attachment.bin>
More information about the openssl-project
mailing list