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#HDepreca…
"
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/