|
| 1 | +# Memory Analyzer API Policy |
| 2 | + |
| 3 | +This document provides the current API Policy for Memory Analyzer. |
| 4 | + |
| 5 | +## Purpose |
| 6 | + |
| 7 | +Eclipse MAT is built on top of the Eclipse IDE framework, and the components can |
| 8 | +be embedded inside other deployments. As an OSGI framework-capable runtime, |
| 9 | +the components export known consistent APIs that allow other developers and |
| 10 | +components to work together within the IDE. |
| 11 | + |
| 12 | +For example, the [Eclipse MAT Calcite Plugin](https://github.com/vlsi/mat-calcite-plugin) |
| 13 | +plugs directly into the Eclipse IDE and interacts with the Eclipse MAT |
| 14 | +components to enhance its functionality. |
| 15 | + |
| 16 | +## Declared API |
| 17 | + |
| 18 | +The declared APIs in Memory Analyzer are provided as public and documented. The |
| 19 | +API compatibility between different versions of Memory Analyzer should be |
| 20 | +reflected by the version numbers, following the [Eclipse versioning policy](https://github.com/eclipse-platform/eclipse.platform/blob/master/docs/VersionNumbering.md). |
| 21 | + |
| 22 | +## Some examples |
| 23 | + |
| 24 | +- Changes to the API - adding new APIs or deprecating APIs should be documented |
| 25 | +and communicated to the community (e.g. via GH issue and/or mailing list). |
| 26 | + |
| 27 | +- Deprecated API should be available for at lease one major release. |
| 28 | + |
| 29 | +## Provisional and internal API |
| 30 | + |
| 31 | +Provisional APIs should be used while development is occurring. If successfully |
| 32 | +adopted, they might become declared APIs. If not, they can be removed. In any |
| 33 | +situation, the community should be notified. |
| 34 | + |
| 35 | +## Tooling |
| 36 | + |
| 37 | +See the [Contributor Reference](Contributor_Reference.md) for some notes on API |
| 38 | +tooling and configuration. |
0 commit comments