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