Warning, /acts/docs/versioning.rst is written in an unsupported language. File is not indexed.
0001 Versioning and public API
0002 =========================
0003
0004 ACTS uses `Semantic Versioning <https://semver.org/spec/v2.0.0.html>`_ to
0005 indicate breaking changes in its public API. A breaking change will result in a
0006 new major version. The `Conventional Commits
0007 <https://www.conventionalcommits.org/en/v1.0.0/>`_ convention is used for pull
0008 requests to track the type of changes that have been merged and ensure that the
0009 version number is increased correctly.
0010
0011 Since ACTS is still under active development, we create **major** versions
0012 that break the API relatively frequently. We try to limit breaking changes to about
0013 once a month.
0014
0015 Public API
0016 ----------
0017
0018 The API surface of ACTS is very large. Everything at the top-level in the ``Acts``-namespace is considered public.
0019
0020 .. note::
0021 If a private symbol, e.g. in the `Acts::detail` or `Acts::Experimental` namespaces,
0022 is part of an otherwise public API, this should be **considered a bug**, which we
0023 would appreciate being reported as an issue.
0024
0025 There are a number of optional components in the ``Plugins/`` folder, only some of which are considered part of the public API:
0026
0027 - DD4hep
0028 - Json
0029 - Root
0030 - FpeMonitoring
0031
0032 Private API
0033 -----------
0034
0035 The following components are not part of the public API but are expected to
0036 become part of it at a later stage:
0037
0038 - All plugins in the ``Plugins`` directory which are not listed under *Public API*.
0039 - The Fatras library in the ``Fatras`` directory.
0040 - The Alignment library in the ``Alignment`` directory.
0041
0042 The following components will never become part of the public API:
0043
0044 - Symbols in helper namespaces e.g. in ``Acts::detail`` must be considered
0045 implementation details and are not part of the public API.
0046 - Symbols in the namespace ``Acts::Experimental`` are not part of the public API.
0047 - The examples framework and executables in the ``Examples`` directory.
0048 - All units tests, integration tests, (micro)-benchmarks, and related code in
0049 the ``Tests`` directory.