Vespa uses semantic versioning.
Java APIs, web service APIs and all application package constructs are supported through a major release and only removed on a new release if they are already marked deprecated.
Use of deprecated Java APIs will cause a warning on compilation, and use of deprecated application package constructs will cause a deprecation warning on deployment. Note that Java APIs come in two categories:
- Public APIs carry the compatibility guarantee and are visible from your code as well as in the javadoc
- Exported APIs are also visible from your code, but is not in the public Javadoc and carry no compatibility guarantee
In addition, some public Java classes and methods are marked with the com.google.common.annotations.Beta tag. These are under development and may still change before they stabilize.
Data written to Vespa is compatible between adjacent releases. For self-hosted systems, it may be necessary to upgrade through each minor release rather than in larger leaps to ensure Vespa can read existing data. This is a good practice in any case.