DIP 1013: The Deprecation Process -- Community Review Round 1

Mike Franklin slavo5150 at yahoo.com
Thu Apr 5 14:42:56 UTC 2018


On Monday, 2 April 2018 at 07:05:45 UTC, Mike Parker wrote:
> DIP 1013 is titled "The Deprecation Process".
>
> https://github.com/dlang/DIPs/blob/d8f6bfa1810c9774bd7d3b3dc6a7a6776ed5e17e/DIPs/DIP1013.md

I think there should be some clarification on the stages of 
deprecation.  For example, something like this:

Stage 1: T0 - Start of deprecation
   1. The deprecated feature is added to the Deprecated Features 
page to notify the public that a decision has been made to 
deprecate the feature.
   2. Pull requests are submitted to update relevant sections of 
the documentation notifying readers that the feature has been 
deprecated.
   3. Pull requests are submitted to remove all usages of the 
deprecated feature from DLang repositories.
   4. Pull requests are submitted to cause the compiler to emit 
deprecation messages for any usage of the deprecated feature, and 
to update the Deprecated Features page with the release version 
of this change.  A changelog entry is also required at this time.

Stage 2: T0 + 5 non-patch releases
   1. Pull requests are submitted to cause the compiler to emit 
error messages for any usage of the deprecated feature, and to 
update the Deprecated Features page with the release version of 
this change.  A changelog entry is also required at this time.

Stage3: T0 + 10 non-patch releases
   1. Pull requests are submitted to remove all knowledge of the 
deprecated feature from both the documentation and the 
implementation.  The Deprecated Features page is updated with the 
release version of this change.  A changelog entry is also 
required at this time.

> In order to facilitate on schedule deprecations, a comment of 
> the format @@@DEPRECATED_[version]@@@ should be added to the 
> top of the code to be removed/disabled.

Is `[version]` the version in which the deprecation took place, 
or the future version in which the next stage is to take place.  
For example, if I'm deprecating a feature in 2.080, should 
`[version]` be 2.080, or 2.085 (the version in which the features 
is changed to an error)?

Mike


More information about the Digitalmars-d mailing list