Skip to content

Deprecation rules

Olafcio1 edited this page Sep 29, 2026 · 24 revisions

§ Deprecation rules in the Avoid Framework


Here are the rules:

  1. Stable elements should use the annotation @NeverRemoval.
    Type presence doesn't always indicate all-member presence.

  2. Alpha elements should use the annotation @Discouraged.
    This means they're not yet fully established; incompatible changes may emerge. They should not be used on production.

  3. Incubating elements should use the annotation @ApiStatus.Experimental.
    This means they will probably stay, but they're still in development.

  4. Deprecated elements should use the annotation @Deprecated.
    This means they shouldn't be used anymore.

  5. Internal elements should use the annotation @ApiStatus.Internal.
    This means there's a high chance they might stop being available or get completely refactored, at any time.


Unfortunately sometimes I don't keep the @NeverRemoval promise. This happens mostly because an element that was supposed to stay may accidentally be referring to Avoid's or net.minecraft internals.

Here's how I would order the elements usability:

$\text{@NeverRemoval} > \text{@ApiStatus.Experimental} >$
$\text{unannotated} > \text{@ApiStatus.Internal} >$
$\text{@Deprecated} > \text{@Discouraged}$


Need access to an internal element?

  1. Check if there's a public way for this.
  2. Make an issue. This will make the problem noticed.
    You are encouraged to propose a solution.

Avoid Framework


    🏚️ 1. Home
    📽️ 2. Creating your mod
    🌄 3. Adding assets to your mod
    🧊 4. Creating a block
    💧 5. Creating a fluid
    ✏️ 6. Creating an item
    🎯 7. Creating an entity selector
    🤖 8. Creating a command
    ⌨️ 9. Creating a keybind
    🐺 10. Creating an entity
    🌫️ 11. Creating a fog
    🔩 12. Creating an item component
    🔮 13. Creating an effect
    📚 14. Language support & adding libraries
    🚩 15. Deprecation rules
    ⏳ 16. Loading philosophy


Migrations


    🧳 v1.25 -> v1.26
    🧳 v1.26 -> v1.27

Clone this wiki locally