[cmake-developers] A policy for Policies
Stephen Kelly
steveire at gmail.com
Sat Jun 20 05:29:46 EDT 2015
Brad King wrote:
> <snip>
I recommend the following guidelines:
1) Policies need to result in errors in a short timeframe. They are not
something to ignore for years, because allowing that makes them feature
toggles. Alex won't be happy with this one obviously, but that's what I
recommend.
2) Policies need to result in unconditional warnings in a short timeframe.
Even -Wno-dev should have no effect on the warning when the warning is
unconditional. If third parties are using -Wno-dev to silence output they
need to know that will no longer work. It only works while there is an OLD
state for the policy.
I don't think more conditions with deprecation states is a good idea. Policy
lifecycle should be simple to understand. It should be a loud notification
to people who see it that they have an action item on their hands.
Here's my recommendation for a way forward:
CMake 3.4:
* Policies <= CMP0011
-- emit unconditional warnings for each policy (no OLD anymore - 6 years
old)
* Policies CMP0051 -> CMP0054
-- emit unconditional warnings for each policy (no OLD anymore - 3 releases
old)
* Policies CMP0026, CMP0024
-- emit unconditional warning (CMP0026 warning will be in place for longer
as many are affected, so start unconditional warning now). These are high
priority because they make a better CMake implementation possible.
CMake 3.5:
* Policies CMP0001, CMP0003, CMP0004, CMP0006 -> CMP0010
-- emit unconditional errors for each policy (the ancient ones except 'the
KDE4 policies')
* Policies CMP0055, CMP0056
-- emit unconditional warnings for each policy (no OLD anymore - 3 releases
old)
* Policies selection
-- Select some other high-value policies to warn unconditionally on, eg
CMP0031.
CMake 3.6:
* Policies CMP0051 -> CMP0054
-- emit unconditional errors for each policy (unconditional warning for two
releases already)
* Policies CMP0058, CMP0063
-- emit unconditional warnings for each policy (no OLD anymore - 3 releases
old)
CMake 3.7:
* Policies CMP0000, CMP0002, CMP0003, CMP0005, , CMP0011
-- Make 'the KDE4 policies' unconditional errors.
Of course all of this needs to be malleable. Let's see what the response is
to the warning behavior in 3.4 if you apply it.
Thanks,
Steve.
More information about the cmake-developers
mailing list