On Jan 13, 2011, at 1:59 PM, Caleb James DeLisle wrote:
On 01/13/2011 07:13 AM, Vincent Massol wrote:
Hi devs,
I think the start of the XE 3.x cycle is a good time to remove some deprecated methods/classes.
We have a deprecation strategy defined already: http://dev.xwiki.org/xwiki/bin/view/Community/DevelopmentPractices#HDeprecat...
" Our rule is to keep @deprecated methods/classes for 2 final releases after the version where they were first added has been released as final.
For example if a method is deprecated in, say XE 1.3M2 then the method will be removed in 1.6M1 or after. Of course any major new release can deprecate anything. For example a XWiki 2.0 release is allowed to break backward compatibility (obviously we need to be careful to offer a migration path for users of previous major versions). "
So 2 final releases mean that deprecations introduced in 2.5.x or before can theoretically be removed for XE 3.0 final.
I would go as far as to say <= 2.7 since it is 2 numbers back and 3.0 is a "major" revision.
2.5.x ---- 2.6 ---- 2.7 ---- 3.0 2 numbers is 2.6 and 2.7. There's the major argument but I feel it's better to leave some time for developers to upgrade and have a chance to fix deprecation that were added recently.
However, IMO we shouldn't remove deprecated methods/classes that are public for scrips since this will break xwiki users.
Are we ok to do that?
+1 it's not fun but our hands are tied here IMO. For some cases esp. where compatibility and security are at odds, perhaps we should add a compatibility switch? WDYT?
Yes we've added compat configuration in the past. We'll need to think about removing those too at some point (like the title compat switch) ;) Thanks -Vincent
Caleb
Personally I'm fine and I'd like to add this caveat to the best practice if we agree.
Thanks -Vincent