Deprecation schedule

Jonathan M Davis jmdavisProg at gmx.com
Fri Nov 26 14:08:40 PST 2010


On Friday 26 November 2010 11:03:03 Andrei Alexandrescu wrote:
> I wonder what would be a good deprecation schedule. Consider
> http://d.puremagic.com/issues/show_bug.cgi?id=5257 as an example.
> 
> We should now slowly deprecate std.utf.count. How should we go about it?
> 
> T0: documentation marked as "scheduled for deprecation".
> T1: Function is deprecated and documentation updated to mention "has
> been deprecated"
> T2: Function is eliminated
> 
> Question is, what are some good values for T1 - T0 and T2 - T1?

I think that not doing T0 and T1 at the same time only makes sense if we know 
that we're going to deprecate it but aren't ready to do so yet (like if we were 
to do another release with std.date without putting in the new std.datetime - we 
_know_ that we're going to deprecate std.date, but we wouldn't be ready to 
actually do it yet, because it's replacement wasn't yet in Phobos). So, in this 
case, I think that T0 and T1 should be done at the same time.

As for for how long a function should be deprecated and not yet removed, that's 
a bit harder. How often do people update dmd? Part of me wants to say 1 release, 
but I know that there are people out there who don't bother updating for a 
release or two. How long before having a function deprecated but still there 
becomes an issue (particularly if you end up with very many of them)? And given 
the relatively fast pace of development, if we were actually to deprecate 
everything that we wanted to deprecate right now, I'm not sure that it would be 
all that short a list (though, since it's mostly either whole modules or an 
entire language feature like scoped local variables rather than individual 
functions, the actual number of things that you'd have to list as deprecated 
would probably be rather short).

I'd say that T2 - T1 should be about 6 months at most at this point. If Phobos 
dmd and Phobos were completely stable and had been for a while, then something 
more like 2 years might be appropriate, but the pace of development is still too 
fast for that to make sense. 6 months is still a bit of an eternity for D at the 
moment, so that's probably enough right now. I do think, however, that it's 
something that should change once Phobos has become more stable.

- Jonathan M Davis


More information about the Digitalmars-d mailing list