Back to home page

EIC code displayed by LXR

 
 

    


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/