[Development] On deprecated APIs
Marc Mutz
marc.mutz at kdab.com
Wed Aug 31 09:38:21 CEST 2016
Hi,
My porting guide for Q_FOREACH -> C++11 ranged for has created the expected
outcry from users.
I think some of the FUD comes from the fact that deprecation in 5.x usually
means that the API is gone in Qt 6.0.
I'd therefore like to propose a new contract with our users:
The Qt Project:
- continues to deprecate API it wants gone
- maintains deprecated Qt N.x API until Qt (N+1).0.
- does *not* remove deprecated N.x API anymore come (N+1).0
- does also *not* maintain deprecated N.x API after the initial (N+1).0.0
release
* (ie. N+1).y CI runs with API deprecated in N.x (or earlier) disabled
* also means Qt does the work of making sure deprecated API is turned
all-inline before a .0.0 release to maintain BC.
In return, the Qt users:
- stop insisting on -Wdeprecated-clean builds without investing time of their
own into updating their sources
- provide patches to maintain deprecated APIs we no longer maintain
In return, the Qt Project:
- pledges to take those patches in without hackling about "but it's
deprecated..."
This allows us to continue to mark API deprecated, so new users have guidance
on what API to avoid, while giving peace of mind to users of exisiting API
that their investment is protected, as long as they're willing to participate
in maintenance.
I believe this is fair and beneficial for both sides. I don't know how far
this will carry us (technically and socially), but maybe we can just try it in
the Qt 5 -> 6 transition?
I won't be able to come to QtCon this year, either, but feel free to take the
opportunity to discuss this there.
Thanks,
Marc
--
Marc Mutz <marc.mutz at kdab.com> | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
Tel: +49-30-521325470
KDAB - Qt, C++ and OpenGL Experts
More information about the Development
mailing list