On 01/13/2011 08:26 PM, Vincent Massol wrote:
>
> On Jan 13, 2011, at 8:00 PM, Sergiu Dumitriu wrote:
>
>> On 01/13/2011 01:13 PM, 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#HDeprecationStrategy
>>>
>>> "
>>> 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.
>>>
>>> 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?
>>
>> Where's the limit between public and complete nonsense?
>
> Not sure what you mean by "nonsense".

$doc.getFormat() which doesn't work at all. It's not even @Deprecated, 
but I doubt anyone even knows it's there.
$doc.getArchive() which returns serialized RCS diff with no tools to 
process it.

These are also nonsense IMO, but they might be used, so they should be 
deprecated for the moment:

$doc.getRCSVersion() which returns implementation details.
$doc.getRCSVersion() which returns implementation details.
$doc.getLastChanges() which returns implementation details.


>> There are
>> "public" methods in our APIs that aren't really used, and there are
>> internal methods that have been deprecated for some time but are still
>> widely used internally.
>>
>> Plus, Groovy means scriptable as well, but it can access even non-public
>> APIs.
>
> For me privileged API are ok since otherwise everything is script public.
>
> OTOH removing velocity APIs is not really ok for me at this point in time 
> since we don't have a way to notify users that they're using a deprecated API 
> right now. We need that first before we can think about removing them IMO.
>
>> Personally I prefer to prune out even some public methods, on a
>> case-by-case decision.
>
> Sure but 1) we need some general canvas to work with since asking every time 
> is a bit painful and 2) no committer seem to be removing deprecated methods 
> (we have so many old ones in lots of places).
>
> The consensus so far was that we have rules but we don't apply them. My mail 
> was just there to agree to change that consensus with 3.0.
>
> Thanks
> -Vincent
>>
>>> Personally I'm fine and I'd like to add this caveat to the best practice if 
>>> we agree.
>>>
>>> Thanks
>>> -Vincent
>


-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to