[Building Sakai] MT deprecation recommendationsfor 2.7
Jean-Francois Leveque
jean-francois.leveque at upmc.fr
Sat Mar 20 11:18:11 PDT 2010
+1 from a naive developer willing to learn
Anthony Whyte a écrit :
> The all-or-nothing cast to this discussion is going to lead us nowhere
> fast. I put forward a compromise proposal on 17 March and echoed by
> David Haines on the 19th that offers us incremental, case-by-case
> approach. It recognizes that there may be times when a static cover
> needs to be sacrificed in the interests of providing unit tests that
> help strengthen the bug fix validation and verification process.
>
> Ensuring that core production code is stable, reliable, maintainable and
> defect free (to the best of our abilities) trumps, in my view,
> (inexperienced) developer conveniences or local/contrib implementation
> decisions. That said, as Stephen Marquard has pointed out, deprecating
> and then removing static covers wholesale could well impose extra costs
> on schools required to refactor static covers out of their local/contrib
> code. This needs to be recognized but should not impose an absolute
> blocker on static cover removal.
>
> So,
>
> 1. Deprecate static covers in trunk/2.7.x (this at least provides a
> Javadoc warning that a cover might in future be removed)
> 2. Add further documentation in Confluence regarding Sakai developer
> best practices with respect to covers.
> 3. Address any static cover removal question on a case-by-case basis in
> Jira and on list (perhaps limited to blocker/critical issues).
> 4. If a static cover removal is justified, do it.
>
> Cheers,
>
> Anth
>
>
>> COMPROMISE PROPOSAL (17 March)
>> I'd like to see static covers eventually removed (so +1) but recognize
>> that the current crowd wisdom appears to consider this desire, well,
>> unwise. Still, I'd like to suggest a compromise proposal, one that
>> permits the removal of a static cover whenever it impedes the
>> implementation of unit tests written in support of a bug fix.
>> Extension of 2.x unit test coverage is work that meets a long
>> standing yet largely unrealized goal of the Sakai Community.
>> Suspending such work because one finds a static cover in the way
>> appears to me unwise.
>
>
>
>
> Begin forwarded message:
>
>> *From: *Anthony Whyte <arwhyte at umich.edu <mailto:arwhyte at umich.edu>>
>> *Date: *March 17, 2010 11:55:13 PM GMT+02:00
>> *To: *Clay Fenlason <clay.fenlason at et.gatech.edu
>> <mailto:clay.fenlason at et.gatech.edu>>
>> *Cc: *management at collab.sakaiproject.org
>> <mailto:management at collab.sakaiproject.org>, Developers Sakai-Dev
>> <sakai-dev at collab.sakaiproject.org
>> <mailto:sakai-dev at collab.sakaiproject.org>>, Sakai QA
>> <sakai-qa at collab.sakaiproject.org
>> <mailto:sakai-qa at collab.sakaiproject.org>>
>> *Subject: **Re: [Building Sakai] [Management] MT deprecation
>> recommendations for 2.7*
>>
>> Yes, I sidestepped both JCR as well as the static cover deprecations
>> recommendations in my email of last Sunday, choosing instead to focus
>> solely on 2.7 tool deprecations in an effort to secure at least lazy
>> consensus on how I planned to handle deprecations in the next QA tag.
>>
>> JCR
>> Despite the experimental nature of JCR I recommend we follow the same
>> approach as we do for tool deprecations: deprecate in kernel-1.1 and
>> remove in kernel-1.2 (moving JCR to contrib). This should provide
>> sufficient time for anyone using the JCR service to adjust their build
>> practices to compensate for it's eventual removal from the kernel. We
>> should announce this decision with a deprecation alert (I plan to
>> draft these when I return to the US) and provide one or more reminders
>> of JCR's impending removal during 2010, early 2011.
>>
>> COVERS
>> You've no doubt seen the objections raised regarding deprecating
>> static covers in the kernel and elsewhere. While I am not persuaded
>> by the claims that static cover removal truly raises barriers to
>> writing Sakai tools--is it really all that challenging to add a
>> service injection setter method that relies on a bit of XML residing
>> in a Spring bean configuration file?--I am sensitive to the assertion
>> that static cover removal imposes costs on those maintaining local
>> code that make use of the covers. Indeed, for an example of the
>> refactoring involved in removing static covers in favor of service
>> injection see http://jira.sakaiproject.org/browse/SAK-12077. The
>> work, while by no means onerous or difficult, is nevertheless non-trivial.
>>
>> Moreover, the kernel team is currently split on this issue in so far
>> as static cover removal is concerned--a difference of opinion that
>> raises something of a blocker to the removal proposal, although it
>> should be recalled that static cover removal as proposed by David
>> Horwitz would not commence for some time.
>>
>> COMPROMISE PROPOSAL
>> I'd like to see static covers eventually removed (so +1) but recognize
>> that the current crowd wisdom appears to consider this desire, well,
>> unwise. Still, I'd like to suggest a compromise proposal, one that
>> permits the removal of a static cover whenever it impedes the
>> implementation of unit tests written in support of a bug fix.
>> Extension of 2.x unit test coverage is work that meets a long
>> standing yet largely unrealized goal of the Sakai Community.
>> Suspending such work because one finds a static cover in the way
>> appears to me unwise.
>
>
>
>
>
> On Mar 19, 2010, at 7:48 PM, Mark Norton wrote:
>
>> I think the idea is to encourage the use of injection strategies while
>> retaining the covers. I maintain that covers shouldn't be deprecated at
>> all. They represent an alternative development strategy better suited
>> to inexperienced/naive Sakai tool developers. Adding to the JavaDoc
>> suggesting that there are better ways to do this are fine, but a
>> compiler warning suggesting that the cover will go away will only
>> confuse a naive developer.
>>
>> -1 on deprecating cover
>>
>> Ray Davis wrote:
>>> That isn't how Java API deprecation typically works. As a developer I
>>> would prefer to be warned sooner rather than later. And deprecation
>>> warnings from the compiler should help the Maintenance team track
>>> progress.
>>>
>>> Best,
>>> Ray
>>>
>>> On 3/19/10 9:42 AM, csev wrote:
>>>
>>>> How about if we add the "buyer beware" - *after* the MT finishes
>>>> fixing everything in the release. At that point, I would withdraw
>>>> my objection.
>>>>
>>>> /Chuck
>>>>
>>>> On Mar 19, 2010, at 12:13 PM, Aaron Zeckoski wrote:
>>>>
>>>>
>>>>> It is fair. I also can understand why people would use the covers
>>>>> since it is easier than trying to understand dependency injection.
>>>>> There are uses all over the core code as well (and quite heavily in
>>>>> some places like search) but the MT plans to clean these up.
>>>>> I feel like it is reasonable to leave them in for the life of the core
>>>>> services they are attached to at this point with a "buyer beware"
>>>>> deprecation marker on them.
>>>>> -AZ
More information about the sakai-dev
mailing list