[phobos] Decision on length of deprecation cycle
Jonathan M Davis
jmdavisProg at gmx.com
Wed May 25 15:52:29 PDT 2011
On 2011-05-25 14:56, Andrei Alexandrescu wrote:
> On 5/25/11 4:20 PM, Jonathan M Davis wrote:
> > On 2011-05-25 14:02, Andrei Alexandrescu wrote:
> >> That should work. But then why not sticking to the current intended
> >> scheme? Every release, whatever has aged sufficiently gets deprecated
> >> and then removed.
> >
> > Overall, I prefer that scheme. As soon as you worry about how long has
> > been scheduled for deprecated or deprecated, you have to check how much
> > it's aged anyway. It is true, however, that we don't really have a good
> > way of keeping track of how long something has been deprecated other
> > than simply checking the last few releases after a release to see what
> > has aged enough to move to the next phase for the next release.
>
> I thought of that for a bit and there are two things we could do:
>
> 1. State the date of deprecation in the warning message. Instead of
>
> "Warning: module xxx has been scheduled for deprecation."
>
> we should say:
>
> "Warning: since 2011-xx-xx, module xxx has been scheduled for deprecation."
>
> 2. Then, it's difficult for a human being to set in mind dates that are
> six months ahead. That's what electronic calendars are for. So I propose
> we define a deprecation czar role who simply uses whatever electronic
> calendar (google, yahoo...) to enact deprecation. On the day of the
> deprecation, the czar simply makes the change in the repository. For
> that we need a self-organized, thorough person. That's why I recommend
> Jonathan.
That definitely sounds like a good (particularly since the people using it
then know the date it was scheduled for deprecation was). My one concern with
that is that the date would ideally coincide with the release date of a
release of dmd, and it won't unless you specifically go in and edit all of
those dates just prior to a release (doable but a bit annoying). The other
option would be to mark it with the date that it will be move to the next
phase (which is actually more useful for those who see the message), though it
has pretty much the same problem only a bit worse, since you can't know the
dmd release dates that far in advance. Regardless, it's fine with me to be in
charge of it. At this point, I think that most of the functions which have
been scheduled for deprecation have been done by me anyway (though Andrei has
done that with several).
So, I'd suggest putting the date that the function will move to the next phase
in the message instead of when it entered its current phase (or both dates),
and we should try and adjust those dates just prior to a release so that they
more or less coincide with actual releases. Then we can guarantee that the
function will stay in that phase until at least that date (with the possible
exception of moving it forward a week or so early if the date is right after a
release). I can manage adjusting the dates and moving stuff from phase to
phase if need be.
> > The main question is how long each phase should
> >
> > typically take. If it were only two releases, then there's probably some
> > stuff which is currently scheduled for deprecation which we could now
> > deprecate. If it were 6 releases, then there's probably nothing which
> > should be being deprecated just yet. We need to decide on at least an
> > approximate length of time, since then it's better organized, and we can
> > then give some guarantees to those who ask about it.
>
> I'd say anything measured in months is reasonable. You aired some
> numbers at a point that seemed entirely fine to me.
I believe that I suggested approximately 6 months for each phase, and that
seems like a nice, round number to me. I'd love to use shorter periods than
that, but given how many people seem to be slow at upgrading to the latest dmd
and Phobos, it may cause too many problems if we shorten them more than that.
- Jonathan M Davis
More information about the phobos
mailing list