The Django deprecation timeline [1] is very inconsistent in its usage of
the terminology 'deprecated'. For example, the 1.5 section often says
"is deprecated" or "has been deprecated", when what they mean is "will
be removed", which is what the other sections generally tend to say.
Some in section 1.6 say a feature "will be deprecated".
Can we have a consistent policy on this terminology?
Miriam-Webster:
"deprecate: to express disapproval of"
So something is 'deprecated' as soon as we say we are going to remove it
- we are expressing disapproval, but allowing it to continue
temporarily. The confusing thing from Python terminology is that we then
add PendingDeprecationWarning, followed by DeprecationWarning, which
suggest that deprecation is something that will happen in the *future*,
the thing that happens when we finally remove it. But that isn't normal
English usage, and we can't sensibly use 'deprecated' for both the
beginning and the end of the process.
So I'd suggest that we stick to:
- deprecated = the first time we say we are going to remove it,
and normally means we add PendingDeprecationWarning
- removed - when we actually remove.
In the deprecation timeline, we can simply say "X will be removed", or
"X will be removed in favour of Y". If it is outside the normal
deprecation policy in some way, we can mention that, otherwise no need
to say which version it was deprecated in. In our release notes, we
carry on announcing deprecation as we are doing now. The only problem is
that our 'deprecation timeline' effectively becomes a 'removal
timeline', but I think it will be clear enough if the rest of our
terminology is.
Comments?
Luke
[1] https://docs.djangoproject.com/en/dev/internals/deprecation/
--
"It is a truth universally acknowledged, that a single man in
possession of a good fortune, must be in want of a wife." (Jane
Austen)
Luke Plant || http://lukeplant.me.uk/
Yes, but in the meantime you're using the newer, better supported, and
often more-secure code. It allows you the luxury of taking the time,
and encourages you to upgrade even if you don't have time to make
application changes. This stability is an important promise for many
of our users.
If you're being nagged by deprecation warnings than... well... That's the point!
The annotation "Will be deprecated" is also useful.
Change requires care, IMHO.
Many hackers on this list continually work on the latest version. Many don't.
peace,
Ryan McIntosh
Software Architect
PeaceWorks Technology Solutions
ph: (204) 480-0314
cell: (204) 770-3682
ry...@peaceworks.ca
--
You received this message because you are subscribed to the Google Groups "Django developers" group.
To post to this group, send email to django-d...@googlegroups.com.
To unsubscribe from this group, send email to django-develop...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
On 2 October 2011 07:48, Alexander Schepanovski <suor...@gmail.com> wrote:
> But even a common user, who himself doesn't hack into django may use
> third-party libs that do: migration, automatic caching, any orm, form
> and template extenders. And for the developers of that libs
> deprecation is a waste not help, at least what it feels for me. For
> common user this means he cannot upgrade until all hos libs upgraded
> or he himself is forced into hacking them.
>
IMHO, it's exactly the opposite. If you remove the code right away,
then I can't upgrade to the new version of Django, 'cause I have to
wait for my 30 dependencies to upgrade or hack it my own.
---
As for the naming, it's probably because i'm not a native speaker, but
I always found the warning names logical. "PendingDeprecationWarning"
warns you about something, that will be deprecated in the version.
"DeprecationWarning" warns you that something *is* deprecated (as in
old and useless), so it *may* be removed in any future version.
Whether it is actually removed is another thing - Python itself has a
long tradition of leaving some C API functions deprecated for
indefinite period of time. So, to me, deprecation is the state right
before removal. I would stay with "X will be deprecated in Django Y.Z"
wording (which implies it may be removed in any (Y+m).(Z+1+n) n,m>=0
version).
--
Łukasz Rekucki
+1. I agree with Paul that "PendingDeprecationWarning" is slightly
problematic from a language perspective because we're saying that
we're deprecating a feature now, and implementing that by raising a
Pending warning. However, I think that's a mild inconsistency I can
live with.
Yours,
Russ Magee %-)
I'm completely agreed that the 'soft' deprecation is useful. I'm just
complaining about the ambiguity in the language: "We're deprecating
this feature by marking it PendingDeprecation...".
Yours,
Russ Magee %-)
There appears to be some confusion here -- nobody is proposing
changing *anything* about Django's deprecation policy. All we are
doing is attempting to get some consistency in the *language* that we
use, especially in the deprecation guide document [1]. If you read the
current document, the language used varies wildly -- see Luke's
original email for a full list of the problems). In the interests of
clarity, Luke has proposed normalizing the language, and so far, I
haven't seen any disagreement that the language cleanup he has
proposed is the right thing to do. All I've noted is that there is an
unfortunate inconsistency in the naming of PendingDeprecation, but
there's not much we can do about that.
[1] https://docs.djangoproject.com/en/dev/internals/deprecation/
Yours,
Russ Magee %-)
> --
> You received this message because you are subscribed to the Google Groups "Django developers" group.
> To post to this group, send email to django-d...@googlegroups.com.
> To unsubscribe from this group, send email to django-develop...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
>
>
--
Justin Holmes
Head Instructor, SlashRoot Collective
SlashRoot: Coffee House and Tech Dojo
60 Main Street
New Paltz, NY 12561
845.633.8330
PendingDeprecationWarning and DeprecationWarning are Python builtins:
http://docs.python.org/library/exceptions.html
so we can't change the names unless we want to introduce our own
alternative, which would definitely be a bad idea IMO.
PendingDeprecation is already quiet by default.
Regards,
Luke
--
"I was sad because I had no shoes, until I met a man who had no
feet. So I said, "Got any shoes you're not using?" (Steven Wright)
Luke Plant || http://lukeplant.me.uk/