kanidm/project_docs/RELEASE_AND_SUPPORT.md
James Hodgkinson 805ac2dd16
Python module and rewritten RADIUS integration (#826)
* added python kanidm module
* rewrote RADIUS integration
* updated the documentation
* updating github actions to run more often
* BLEEP BLOOP ASYNCIO IS GR8
* adding config to makefile to run pykanidm tests

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Firstyear <william@blackhats.net.au>
2022-06-20 20:16:55 +10:00

2 KiB

Release Schedule

In the alpha phase, Kanidm will be released on a 3 month (quarterly) basis, starting on July 1st 2020.

  • February 1st
  • May 1st
  • August 1st
  • November 1st

Releases will be tagged and branched in git.

1.2.0 will be released as the first supported version once the project believes the project is in a maintainable longterm state, without requiring backward breaking changes. There is no current estimated date for 1.2.0.

Support

Releases during alpha will not recieve fixes or improvements once released, with the exception of:

  • Major security issues
  • Flaws leading to dataloss or corruption
  • Other fixes at the discrestion of the project team

In the case these issues are found, an out of band alpha snapshot will be made based on the current stable branch.

Alpha releases are "best effort", and are trial releases, to help get early feedback and improvements from the community, while still allowing us to make large, breaking changes that may be needed.

API stability

There are a number of "surfaces" that can be considered as "API" in Kanidm.

  • JSON HTTP end points of kanidmd
  • unix domain socket API of kanidm_unixd resolver
  • LDAP interface of kanidm
  • CLI interface of kanidm admin command
  • Many other interaction surfaces

During the Alpha, there is no guarantee that any of these APIs named here or not named will remain stable. Only elements from "the same release" are guaranteed to work with each other.

Once an official release is made, only the JSON API and LDAP interface will be declared stable.

The unix domain socket API is internal and will never be "stable".

The CLI is not an API and can change with the interest of human interaction during any release.

Python module

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!

All code changes will include full type-casting wherever possible.