The strategy to manage lifecycle of Sonar deprecated APIs aims to guarantee that deprecated APIs can be dropped without any side-effects at a given planned date.
The rules are:
- Any API must be deprecated before being dropped
- A deprecated API is fully supported until its drop
- A deprecated API is dropped during the first release of the n+1 major version. Example: an API deprecated in 4.1 is supported in 4.2+, 5.x and is dropped in 6.0.
- A major version contains generally 4 minor versions (4.0, 4.1, 4.2, 4.3) , released every two months. That means that an API can be deprecated from 8 months to 14 months long.
- Any release of plugin must depend on at least the last x.0 version of Sonar API
- No usage of deprecated API is accepted when releasing a plugin. It raises a critical issue in Sonar analysis. This issue can't be postponed.
- An API is marked as deprecated with:
- the annotation @Deprecated
the javadoc tag @deprecated. The message must start with "in x.y", for example
The following example shows the amount of APIs marked as deprecated during the releases 4.x: