On Sep 30, 2011, at 9:57 AM, Vincent Massol wrote:

> Result: 5 +1, no 0, no -1
> 
> The vote is passed, I'm documenting it.

Documented here:
http://dev.xwiki.org/xwiki/bin/view/Community/DevelopmentPractices#HDeprecation26LegacyStrategy

Thanks
-Vincent

> 
> Thanks
> -Vincent
> 
> On Sep 27, 2011, at 1:58 PM, Vincent Massol wrote:
> 
>> Hi devs,
>> 
>> I'd like to propose to apply the -legacy module concept we have in platform 
>> to XWiki Commons (and XWiki Rendering when a first need will arise).
>> 
>> The idea is to introduce a 
>> xwiki-commons/xwiki-commons-core/xwiki-commons-legacy parent module.
>> 
>> My first use case is:
>> * Now that I've removed all usages of the old @Requirement annotation in 
>> commons, rendering, platform, enterprise I'd like to make sure we don't use 
>> it again and thus I'd like to add an aspect in 
>> xwiki-commons/xwiki-commons-core/xwiki-commons-legacy/xwiki-commons-legacy-component/
>>  to add support for the old annotations. More specifically I'd like to 
>> remove the handling of the old Requirement annotation in 
>> ComponentDescriptorFactory and add an around aspect to add support for it in 
>> the legacy module.
>> 
>> Thus I'd like to agree that we have 2 steps when it comes to deprecating 
>> code:
>> 1) Start by deprecating it using the @deprecate and @Deprecated javadoc and 
>> java annotations. The code remains where it was before the deprecation 
>> happens. This is a first step.
>> 2) When our own code doesn't use any of the deprecated APIs then move the 
>> code to a legacy module (either by moving an entire class if possible or by 
>> using some Aspect to weave some methods for ex). This is a second step.
>> 
>> It has the following advantages:
>> * Our code remains clean of old deprecated apis
>> * Deprecated code is cleanly separated from new ways of doing things
>> * When new users download the our code they see the new ways (same for 
>> javadoc generation)
>> * Users wanting to use the old APIs can still do so
>> 
>> Note: The question of when to remove completely the code from legacy is 
>> another topic that I'd like to bring up too but in a different email thread 
>> (I started writing a mail on this topic but need to finish it).
>> 
>> Here's my +1 to follow this practice across our code base and to document it 
>> on xwiki.org
>> 
>> Thanks
>> -Vincent
>> 
> 

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to