pekko/akka-docs/rst/common/may-change.rst
Johan Andrén 64b35cf1f1 Replace "experimental" with "may change" (#22326)
* Replacing "experimental" with "may change" #22305

* Right syntax for links

* Correct annotation name

* Final small changes
2017-02-20 12:05:21 +01:00

49 lines
No EOL
2 KiB
ReStructuredText

.. _may-change:
###########################
Modules marked "May Change"
###########################
To be able to introduce new modules and APIs without freezing them the moment they
are released because of our :ref:`binary compatibility guarantees <BinCompatRules>` we have introduced
the term **may change**.
Concretely **may change** means that an API or module is in early access mode and that it:
- is not covered by Lightbend's commercial support (unless specifically stated otherwise)
- is not guaranteed to be binary compatible in minor releases
- may have its API change in breaking ways in minor releases
- may be entirely dropped from Akka in a minor release
Complete modules can be marked as **may change**, this will can be found in their module description and in the docs.
Individual public APIs can be annotated with ``akka.api.annotation.ApiMayChange`` to signal that it has less
guarantees than the rest of the module it lives in. For example, when while introducing "new" Java 8 APIs into
existing stable modules, these APIs may be marked with this annotation to signal that they are not frozen yet.
Please use such methods and classes with care, however if you see such APIs that is the best point in time to try them
out and provide feedback (e.g. using the akka-user mailing list, github issues or gitter) before they are frozen as
fully stable API.
Best effort migration guides may be provided, but this is decided on a case-by-case basis for **may change** modules.
The purpose of this is to be able to release features early and
make them easily available and improve based on feedback, or even discover
that the module or API wasn't useful.
These are the current complete modules marked as **may change**:
.. toctree::
:maxdepth: 1
../dev/multi-node-testing
../scala/typed
Another reason for marking a module as "may change" is that it's too early
to tell if the module has a maintainer that can take the responsibility
of the module over time. These modules live in the ``akka-contrib`` subproject:
.. toctree::
:maxdepth: 1
../contrib/index