This is difficult to achieve with deprecations — it typically involves creating a new, mostly useless keyword argument to signal the new behavior, that later needs to be removed. Additionally, allowing breaking changes will enable us to "clean up shop" and clean up the API a *lot*.
So, how will we minimize the impact of this proposal to the community?
* create a transition guide: for every change, analyze how user code could be affected (errors, strange results), and produce an item in the guide for how to transition 0.x code to 1.x code.
* extreme communication: we plan to announce our intentions far and wide, including this mailing list, others in the ecosystem, Twitter, and at conferences. For users that just want their code to keep working, pinning to "<1.0" will prevent their code's behavior from changing without warning.
* pre-releases: we will make one or more pre-release of 1.0 so that users can test their code before the release comes out officially.
* feature parity: we will time 1.0 to be simultaneous with a 0.x release, so that users can keep using the 0.x series without missing out on mission-critical features.
In the coming days, I will be creating a few issues related to this proposal on GitHub at
https://github.com/scikit-image/scikit-image, together with a corresponding GitHub Project. You can find all issues related to this transition by using the "1.0" tag. Those will be the right place to discuss specific API changes that we are considering. This thread or the meta-issue on GitHub will be the place to discuss the process of the 1.0 release overall.
Questions? Concerns? Write us an email, catch us on Zulip, or comment on related issues on GitHub.
Thanks for reading!
Juan.
_______________________________________________