What requires a DIP?

Steven Schveighoffer schveiguy at gmail.com
Fri May 5 15:10:12 UTC 2023


On 5/5/23 10:28 AM, Quirin Schroll wrote:

> My sense was that, informally:
> * Any change that necessitates potentially real-world breakage needs a DIP.

Not *necessarily*. If this is a bug fix, then it may not need a DIP. 
Especially if a deprecation can help people migrate their code.

> * Mere additions need a DIP if they introduce a new language feature.

"language feature" is pretty broad. If, for example, you want to add a 
new property/function that can be used on an associative array, then it 
might be OK to add without a DIP. But these are judgment calls that 
probably need someone higher up to make.

> * Even small additions need a DIP if they require justification in terms 
> of cost–benefit ratio, with cost both in terms of initial implementation 
> and long-term maintenance.

Yeah.... Again, judgment calls from others can help.

What I'd recommend is to propose the change here, see what people say, 
and then if it's agreed that a DIP is required, start the process. 
Writing and successfully navigating a DIP through the process isn't 
trivial, and it sucks to do it and have someone say it wasn't necessary, 
or that it had no chance of succeeding.

-Steve


More information about the Digitalmars-d mailing list