> On June 3, 2014, 6:12 a.m., Alex Merry wrote: > > Changing the macro name is a no-brainer. Comments below; a lot of them are > > about binary compatibility issues, and these depend on how we expect this > > macro to be used. I believe that Qt5 makes all its deprecated functions > > header-only so that compiling Qt without deprecated symbols produces a > > version BC with the version with deprecated symbols, and you can also > > safely set the macro yourself in application code to hide all Qt's > > deprecated symbols without messing anything up. > > > > As you've currently got it, the only way this macro is useful is to produce > > a separate, binary-incompatible version of the framework that has no > > deprecated code or symbols. And maybe that's the only thing it's worth > > supporting. > > > > I also highlighted some of the @deprecated apidox things - they really need > > to be more helpful, and this seemed to be an "all the deprecated stuff" > > review.
Regarding the binary compatibility, kdelibs4support does a similar thing, which is why I thought it might be appropriate, but I also published the RR to be sure :) . Keeping with my don't rock the boat policy, I'll take whatever the Frameworks community deems to be appropriate. We should decide on a policy for deprecation in frameworks, and then publish that somewhere (I may have a new volunteer that would even be willing to write it!). Regarding the @deprecated apidox, I'll try to write something useful for them and update the patch later tonight. I won't comment on each one invidivually. Do you happen to have a good example of a @deprecated comment? > On June 3, 2014, 6:12 a.m., Alex Merry wrote: > > src/core/kcoreconfigskeleton.h, lines 1211-1220 > > <https://git.reviewboard.kde.org/r/118489/diff/1/?file=277673#file277673line1211> > > > > This wrapping of the apidox in the deprecated macro has been done > > inconsistently. Is there a standard for how Frameworks code should wrap the declarations? I'll fix any to be consistent with the wider codebase. > On June 3, 2014, 6:12 a.m., Alex Merry wrote: > > src/core/kcoreconfigskeleton.h, lines 1475-1487 > > <https://git.reviewboard.kde.org/r/118489/diff/1/?file=277673#file277673line1475> > > > > I think this is a bad idea. Binary compatibility is very important in > > Frameworks, and this breaks it. And messing with virtuals is not just BIC, > > it's BIC in a way that can cause weird error messages (rather than just > > linking failures). As mentioned above, I wasn't sure what the policy should be. I'm happy doing it either way, but I think the wider community should decide. > On June 3, 2014, 6:12 a.m., Alex Merry wrote: > > src/core/kcoreconfigskeleton.cpp, lines 1271-1280 > > <https://git.reviewboard.kde.org/r/118489/diff/1/?file=277674#file277674line1271> > > > > I think this (and some of the other trivial deprecated methods) could > > be reasonably made header-only. This (a) makes versions of KConfig compiled > > with and without deprecated symbols more BC, and (b) documents the > > replacement code right there in the header. Good point, I'll move such code into the header. > On June 3, 2014, 6:12 a.m., Alex Merry wrote: > > src/gui/kconfigloader.h, line 168 > > <https://git.reviewboard.kde.org/r/118489/diff/1/?file=277677#file277677line168> > > > > @reimp? Will add. > On June 3, 2014, 6:12 a.m., Alex Merry wrote: > > src/gui/kconfigloader.h, line 170 > > <https://git.reviewboard.kde.org/r/118489/diff/1/?file=277677#file277677line170> > > > > Q_DECL_OVERRIDE? Will add. - Matthew ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/118489/#review59060 ----------------------------------------------------------- On June 3, 2014, 2:34 a.m., Matthew Dawson wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/118489/ > ----------------------------------------------------------- > > (Updated June 3, 2014, 2:34 a.m.) > > > Review request for KDE Frameworks. > > > Repository: kconfig > > > Description > ------- > > Change all occurrences of KDE_NO_DEPRECATED to an appropriate define. > > Inline with the new defines used by Frameworks, remove the KDE_NO_DEPRECATED. > > Also remove some deprecated virtuals when compiling without deprecated > features. > > Make sure there are no deprecated features left when deprecated features are > compiled out. > > When compiling without deprecated features, make sure not to use them. > > KEmailSettings was using deprecated entries when the enumerations for the > features were compiled out, which would fail to compile. Thus, when compiling > without deprecated features don't read extra configuration entries. > > Remove usages of deprecated virtuals, instead use their replacement. > > Go through and rename uses of usrWriteConfig to usrSave. The change should > invoke no behavioural differences. Note that the kconfig_compiler has > changed to the new function as well. > > > Note that removing the deprecated virtuals does cause the non-deprecated > headers and deprecated libraries to be binary incompatible. Since you can't > really do this I don't think its an issue. Also, kdelibs4support (others may > too, haven't checked) uses a similar pattern. > > > Diffs > ----- > > autotests/kconfig_compiler/test_signal.cpp.ref > 58e73efd77614edc4a5bd54bc06fbc34ccff2342 > autotests/kconfig_compiler/test_signal.h.ref > 19b8b4005e543e9e660f3ea016853c7a689ac17d > autotests/kconfigtest.cpp 2b6de0d7d63df6aee69210aa09418628f0b8110a > src/core/kconfig.h d27eebe7c41cb433b1808882c53cbf7b4c870950 > src/core/kconfig.cpp ea9746c001e235529a1cdd5865b9e1b5c129b56a > src/core/kconfiggroup.h 3c4bce8433e3c5d4cb2d9fdd111a43f04cf3c295 > src/core/kconfiggroup.cpp 6f609baefec5beaf38fdfedd6d192b395e3f8acb > src/core/kcoreconfigskeleton.h bb9c1cf936b87e2456726a2bb3428be42558b39f > src/core/kcoreconfigskeleton.cpp f9c9f26876922bc8dbed20d050b09f09868550ce > src/core/kemailsettings.h 03249e5006b309a39ed4b16f85b86439cbbe96a6 > src/core/kemailsettings.cpp 230c2aa4ba1db85ae401e126de705cdbfd5a4a55 > src/gui/kconfigloader.h 36eb182fbf1c241a043566a13d7c6c123a6e455f > src/gui/kconfigloader.cpp 1dd9e7fc44a367165fedc2e7760c8b524ecd210e > src/kconfig_compiler/kconfig_compiler.cpp > 28b151c579c2c40e118b3b738a1e6ac81e461b3e > > Diff: https://git.reviewboard.kde.org/r/118489/diff/ > > > Testing > ------- > > Unit tests still pass, regardless of whether or not deprecated features are > enabled. > > > Thanks, > > Matthew Dawson > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel