Originally posted by **smilediver** August 28, 2024
It would be nice if there was a more clear deprecation policy and more robust management. My proposed plan is:
1. Decide what the lifetime for deprecated features should be. Example: deprecated features are removed after they were deprecated for at least two minor releases: so if it was marked deprecated in 2.1, then it is removed in 2.3.
3. Document that in Readme/Wiki.
4. Mark everything already deprecated with `AX_DEPRECATED(2.1)`. (Or maybe we should already remove old deprecated stuff right now?, cause some stuff is already deprecated since Cocos).
5. Add `AX_DEPRECATED_NOTE(...)` (name could be different) for marking things like macros, that can't have a deprecated attribute.
6. Remove `AX_DEPRECATED_ATTRIBUTE`.
7. Add `AX_USE_DEPRECATED` to turn on/off deprecated features. It can be optionally turned on by user, so they can choose to stay on the bleeding edge or use deprecated features. It would work like this:
```cpp
#if AX_USE_DEPRECATED
AX_DEPRECATED(2.1) static Application* sharedApplication();
#endif
```
Also, it would be nice if there was a more clear overall release schedule, like a new minor release every quarter, or something like that.
What do you think? If there's interest to that, I could take care of the code side of things.
Discussed in https://github.com/axmolengine/axmol/discussions/2111