axmolengine / axmol

Axmol Engine – A Multi-platform Engine for Desktop, XBOX (UWP) and Mobile games. (A fork of Cocos2d-x-4.0)
https://axmol.dev
MIT License
922 stars 205 forks source link

Deprecation policy #2137

Closed halx99 closed 2 months ago

halx99 commented 2 months ago

Discussed in https://github.com/axmolengine/axmol/discussions/2111

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.
paulocoutinhox commented 2 months ago

Very nice :)