2024-02-18 01:44:11 +01:00
|
|
|
# Kanidm - Support and Release Processes
|
|
|
|
|
|
|
|
<p align="center">
|
|
|
|
<img src="https://raw.githubusercontent.com/kanidm/kanidm/master/artwork/logo-small.png" width="20%" height="auto" />
|
|
|
|
</p>
|
|
|
|
|
|
|
|
# Introduction
|
|
|
|
|
|
|
|
This document describes the Kanidm project teams support and release version processes.
|
|
|
|
|
|
|
|
While we have made every effort to ensure this document is complete, in the event that something is
|
|
|
|
missing or if you have a question, please
|
|
|
|
[open a discussion](https://github.com/kanidm/kanidm/discussions).
|
|
|
|
|
|
|
|
The version of this document found
|
|
|
|
[on the project page](https://github.com/kanidm/kanidm/blob/master/project_docs/RELEASE_AND_SUPPORT.md)
|
|
|
|
is considered authoritive and applies to all versions.
|
|
|
|
|
|
|
|
## Release Schedule and Versioning
|
2020-06-30 06:58:35 +02:00
|
|
|
|
2022-10-26 00:18:25 +02:00
|
|
|
Kanidm is released on a 3 month (quarterly) basis.
|
2020-06-30 06:58:35 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
- February 1st
|
|
|
|
- May 1st
|
|
|
|
- August 1st
|
|
|
|
- November 1st
|
2020-06-30 06:58:35 +02:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
Versions follow semver using `major.minor.patch` with an optional `-tag`.
|
|
|
|
|
|
|
|
- development branch: `X.Y.Z-dev`
|
|
|
|
- pre-release branch: `X.Y.Z-pre`
|
|
|
|
- stable branch: `X.Y.Z`
|
|
|
|
|
|
|
|
Release branches will be created and tagged 7 days prior to a release. The version will be set to
|
|
|
|
the pre-release version.
|
2020-06-30 06:58:35 +02:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
```
|
|
|
|
/- tag 1.2.0-dev
|
|
|
|
| tag 1.3.0-dev
|
|
|
|
v v
|
|
|
|
--o ... --o--o--o--o ... <- branch master
|
|
|
|
\
|
|
|
|
\-o--o--o--o--o--o--o <- branch 1.2.0
|
|
|
|
^ ^ ^
|
|
|
|
| | tag v1.2.1
|
|
|
|
| \- tag v1.2.0
|
|
|
|
\- tag v1.2.0-pre
|
|
|
|
```
|
|
|
|
|
|
|
|
The first stable release is version 1.2.0. All releases prior are release candidate, beta or alpha
|
|
|
|
builds and will no longer be supported as of the release of 1.2.0.
|
2020-06-30 06:58:35 +02:00
|
|
|
|
|
|
|
## Support
|
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
Stable releases will be supported for 4 months after their release date. This allows a 1 month
|
|
|
|
support overlap between N and N+1 versions.
|
2020-06-30 06:58:35 +02:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
Stable releases will have the following support provided during their support window.
|
2020-06-30 06:58:35 +02:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
- Security fixes
|
|
|
|
- Fixes for flaws leading to dataloss or corruption
|
|
|
|
- Fixes that impact the ability to upgrade
|
|
|
|
- Other quality fixes at the discretion of the project team
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
### Replication
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
All nodes must be the same version. A topology may contain up to a maximum of 2 nodes.
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
### Upgrade Policy
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
Upgrades are supported from 1 release before the current stable release.
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
### Tool Versions
|
2022-05-01 05:55:21 +02:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
Command line tools (`kanidm`) and sync connectors (`kanidm-ipa-sync`, `kanidm-ldap-sync`) must be
|
|
|
|
matched versions with the server that they communicate with.
|
2022-05-01 05:55:21 +02:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
### API stability
|
2021-03-25 01:34:29 +01:00
|
|
|
|
2024-02-18 01:44:11 +01:00
|
|
|
Kanidm has a number of APIs with different stability guarantees. APIs that are stable will only
|
|
|
|
recieve breaking changes in the case of an ethics, security or potential data corruption issue.
|
|
|
|
|
|
|
|
Stable APIs are:
|
|
|
|
|
|
|
|
- LDAP protocol operations
|
|
|
|
- JSON HTTP end points which use elements from
|
2024-02-27 10:25:02 +01:00
|
|
|
[`proto/src/v1`](https://github.com/kanidm/kanidm/blob/master/proto/src/v1)
|
2024-02-18 01:44:11 +01:00
|
|
|
- SCIM operations from
|
2024-02-27 10:25:02 +01:00
|
|
|
[`proto/src/scim_v1`](https://github.com/kanidm/kanidm/blob/master/proto/src/scim_v1)
|
2024-02-18 01:44:11 +01:00
|
|
|
|
|
|
|
All other APIs and interactions are not considered stable. Changes will be minimised if possible.
|
|
|
|
This includes but is not limited to:
|
|
|
|
|
|
|
|
- unix domain socket API of `kanidm_unixd` resolver
|
|
|
|
- unix admin domain socket for `kanidmd` server
|
|
|
|
- web user interface design and operations
|
|
|
|
- entry schema
|
|
|
|
- CLI interface of any command provided by kanidm unless otherwise noted above
|
|
|
|
- JSON HTTP end points which use elements from
|
|
|
|
[`proto/src/internal.rs`](https://github.com/kanidm/kanidm/blob/master/proto/src/internal.rs)
|
|
|
|
|
|
|
|
### Deprecation Policy
|
|
|
|
|
|
|
|
Features or APIs may be removed with 1 release versions notice. Deprecations will be announced in
|
|
|
|
[the Release Notes](https://github.com/kanidm/kanidm/blob/master/RELEASE_NOTES.md)
|
|
|
|
|
|
|
|
### Python module
|
2022-06-20 12:16:55 +02:00
|
|
|
|
2022-12-26 23:52:03 +01:00
|
|
|
The python module will typically trail changes in functionality of the core Rust code, and will be
|
|
|
|
developed as we it for our own needs - please feel free to add functionality or improvements, or
|
|
|
|
[ask for them in a Github issue](http://github.com/kanidm/kanidm/issues/new/choose)!
|
2022-06-20 12:16:55 +02:00
|
|
|
|
|
|
|
All code changes will include full type-casting wherever possible.
|
2024-02-18 01:44:11 +01:00
|
|
|
|
|
|
|
### Project Discretion
|
|
|
|
|
|
|
|
In the event of an unforseen or extraordinary situation, the project team may make decisions
|
|
|
|
contradictory to this document at their discretion. In these situation, the project team will make
|
|
|
|
every effort to communicate the reason for the decision and will attempt to minimise disruption to
|
|
|
|
users.
|