Chen Liang
Chen Liang
Quick reasoning: `@Beta` alone cannot warn users efficiently. `@Deprecated` alone cannot distinguish from apis scheduled for release-stage removal or in no-source distributions. Combined would be the most informative.
Another quick note: We talked about jetbrain annotations has annotations like [`@ApiStatus.Experimental`](https://github.com/JetBrains/java-annotations/blob/89bb0eb829bf7f63b6504009e592199fae45cac9/common/src/main/java/org/jetbrains/annotations/ApiStatus.java#L32), which may serve notification purposes with ide integration.
Here are the cons of each: - JetBrains Annotations - Maybe not interpreted by other IDEs? An annotation processor is preferable. - API Guardian - Too few associated tools available...
Imo fablabs will be large experimental apis that are applicable to previous versions (generally applicable). Snapshot-bound smaller essential apis like nether biomes or living entity attributes may go through fabric...
The user visibility imo can be done with an annotation processor that maybe produces a warning if an annotated class/method/field is used in the abstract syntax tree?
@sfPlayer1 Now that we are on java 16, a notable new feature is that `@Deprecated` now has a `forRemoval` boolean field. Should we start using those in fabric api now?
See #1459 where I add `forRemoval` for apis that are definitely getting removed in the future. Meanwhile, for actual experimental apis, I suggest a new review mechanism: We do not...
Is this covered by the "provides" functionality?
Guess we will write a loot table visitor, like the tree visitors used by asm, javac api and all those cool stuff?
Pretty good. I assume these settings are all used by other vanilla items in modified bytecode, right? If those are exclusively used by mods mods should just add extra constructor...