On Monday 21 December 2015 20:45:26 Carl Meyer wrote:
> 
> Obviously the first question is whether the behavior in question is
> documented. If it is, then a deprecation path is definitely required. On
> the other hand, if the current behavior contradicts the documentation,
> then it's a bug and can just be fixed.
> 

+1

> But the two examples you cite have an edge case with behavior that is
> unspecified in the documentation. The next question I would ask in those
> cases is "Can I imagine a scenario in which someone is intentionally
> taking advantage of the current behavior - it's not just hiding an error
> in their code? How likely is that scenario? How reasonable is their use
> case? And if we conclude that there may be people out there with a
> reasonable use case for the current behavior, how hard would it be for
> them to change their code to continue working as-is, if Django's
> behavior is changed?"
> 

Again, +1.

Another example where we changed immediately was when we disallowed 
select_related in automatic transaction mode, in 1.6.3. In that case, we had a 
stronger argument: 1.6 changed automatic mode, so that code which had been 
correct suddenly gained a potential for data-corruption.

Shai.

Reply via email to