This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 4e099d070f9f51c8658578b344770902cce2dc49 Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Sun Jun 21 13:27:00 2020 +0700 [ADR] Define quality levels --- src/adr/0040-quality-levels-definitions.md | 62 ++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/src/adr/0040-quality-levels-definitions.md b/src/adr/0040-quality-levels-definitions.md new file mode 100644 index 0000000..a4aad52 --- /dev/null +++ b/src/adr/0040-quality-levels-definitions.md @@ -0,0 +1,62 @@ +# 40. Quality levels definition + +Date: 2020-06-21 + +## Status + +Accepted (lazy consensus) + +## Context + +We hereby define as an artifact compiled artifact that external people consumes. This includes: + + - libraries + - Mail servers + - Extensions for James Mail Servers + - Command line tools + +We designate as a feature an optional, opt-in behaviour of a James server that can be configured by +user willing to rely on it. + +James as a project delivers several artifacts, and features. In order for project users to better +understand the underlying quality of the artifact they use, as well as the level of risk associated, +we need to better define some quality levels. + +## Decision + +For a given artifact or feature, by **mature** we mean that: + + - *interfaces* in components need a contract test suite + - *interfaces* have several implementations + - *implementation* of these interfaces need to pass this contract test suite which provides unit tests + - Decent integration tests coverage is needed + - Performance tests need to be conducted out + - Quality Assurance with external clients needs to be conducted out + - known existing production deployments/usages + - usable documentation + +This is the maximum quality level delivered by the James project. Users should feel confident using these +artifacts or features. + +By **experimental** we designate an artifact or feature not matching yet the above requirements. However some +active contributors are willing to raise the quality level of this component, and eventually make it +mature. Or at least are willing to support users. + +Users should have low expectations regarding experimental artifacts or features. They are encouraged to contribute to them +in order to raise its quality. + +By **unsupported** we mean that an artifact or feature do not match most of the *mature* quality conditions. Active +contributors do not feel confident delivering support for it. This artifact or feature might be deprecated and +removed from future James releases. Users are strongly encouraged to contribute to the artifact development. + +## Consequences + +Quality levels need to be mentioned explicitly in the documentation, per artifact, and per feature. + +We need to audit existing artifacts and features to make a list of experimental and unsupported artifacts. We will maintain +JIRA tickets opened from them, detailing for each one of them expected actions to raise the quality level. Maintaining such +tickets will encourage contributions on experimental and unsupported components. + +## References + + - Mailing list discussion: https://www.mail-archive.com/server-dev@james.apache.org/msg66909.html --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org