Deprecation process documented?

Jonathan M Davis via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Feb 24 09:55:28 PST 2015


On Tuesday, February 24, 2015 17:57:12 Jacob Carlborg via Digitalmars-d-learn wrote:
> On 2015-02-24 10:20, Jonathan M Davis via Digitalmars-d-learn wrote:
>
> > No, it's not documented. I really should put it up on the wiki. The current
> > process is that if the replacement for the symbol is being introduced at the
> > same time, the old symbol will be marked as deprecated for a release (so
> > that it's possible for code to build on both the latest release and on
> > master without getting deprecation messages with either). If there is no
> > replacement, or the replacement already exists, then that's not necessary.
> > After that, the symbol is deprecated but documented for about a year. Then
> > it's undocumented but remains there and deprecated for about another year,
> > and then it finally gets removed entirely.
>
> Is the symbol deprecated right away or is there some kind of "scheduled
> for deprecation <date>" in the documentation?

Normally, the symbol is deprecated right away, because using a deprecated
symbol just results in a message being printing, but if a new symbol is
being introduced to replace the deprecated one at the same time that the
old symbol is deprecated, then we'll mark it as "scheduled for deprecation"
in the docs so that a project has a way to be built with both the latest
release and master without getting an deprecation messages. Previously, we
hadn't been doing that, but it caused Vladmir some problems when a symbol
that he was using in dfeed (or some other similar project) was in a template
and ended up flooding his console with deprecation messages, and he needed
to be able to build with both the latest release and with master. So, the
process was adjusted to take that into account.

Regardless, when a symbol is either marked as "scheduled for deprecation" in
the docs or outright deprecated, a date is usually put in the docs for when
it will be moved to the next deprecation stage, though in the case of
"scheduled for deprecation," there's a decent chance that it'll be marked
with the next release number rather than a date, since the idea there is to
give folks a release of leeway so that they can avoid deprecation messages
when building with master rather than give them a particular period of time
to change their code before the symbol goes away, as is the case with
symbols that are actually deprecated.

- Jonathan M Davis



More information about the Digitalmars-d-learn mailing list