witty-crayon-22786
06/08/2017, 6:29 PMHey gang!
In order to maximize the efficiency of deprecations, I'd like to propose that the deprecated values be removed at the beginning of the `dev` cycle for any particular release. This means targeting deprecations for `X.Y.0dev0`, rather than `X.Y.0` as we generally do now.
The reason for this is that now that release versions are properly ordered (`1.4.0dev0` compares as less-than `1.4.0`), tagging things for removal in a stable version means that a whole bunch of code is considered dead after the final release candidate for a stable branch, which could introduce instability. Also, having to deal with "walking-dead" code for the entire length of the `dev` cycle is suboptimal.
As a complete example:
During the 1.3.x `dev` cycle, I decide that I want to deprecate an option or API public member.
I tag the member/option with a `1.5.0dev0` version
A few months later, during the `1.5.0dev0` release (ie, the first release from master after the creation of the 1.4.x stable branch), the value is removed.
And, to get started down this path now, I'm going to pretend that all deprecations in master that are targeted for 1.3.0 are actually targeted to 1.3.0dev0.
Thanks,
Stu