Skip to content

Commit

Permalink
JAMES-2909 Use Architecture Decision Record
Browse files Browse the repository at this point in the history
  • Loading branch information
blackheaven authored and Raphael Ouazana committed Oct 16, 2019
1 parent 70fd3f1 commit e6cf012
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
1 change: 1 addition & 0 deletions .adr-dir
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
src/adr
4 changes: 4 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ There is many other ways one can help us: packaging, communication, etc ...
** https://github.com/apache/james-project/#how-to-retrieve-users-and-password-from-my-previous-container[How to retrieve users and password from my previous container?]
** https://github.com/apache/james-project/#how-to-run-deployment-tests[How to run deployment Tests]
* https://github.com/apache/james-project/#generating-a-package-for-james[Generating a package for James]
* https://github.com/apache/james-project/#know-more-about-james[Know more about James]

== How to try James

Expand Down Expand Up @@ -563,3 +564,6 @@ Once installed, try:

By default James is configured without LDAP support.

= Know more about James

James comes with a https://james.apache.org/documentation.html[Documentation] and https://github.com/linagora/james-project/tree/master/src/adr[Architectural Decision Records].
38 changes: 38 additions & 0 deletions src/adr/0001-record-architecture-decisions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 1. [JAMES-2909] Record architecture decisions

Date: 2019-10-02

## Status

Proposed

## Context

In order to be more community-oriented, we should adopt a process to have a structured way to have open architectural decisions.

Using an Architectural Decision Records-based process as a support of discussion on the developers mailing-lists.

## Decision

We will use Architecture Decision Records, as [described by Michael Nygard](https://web.archive.org/web/20190824074401/http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions).

Each ADR will be discussed on the Apache James' developers mailing-list before being accepted.

Following [Apache Decision Making process](https://community.apache.org/committers/decisionMaking.html), we provide the following possible status, with their associated meaning:
- `Proposed`: The decision is being discussed on the mailing list.
- `Accepted (lazy consensus)` : the architecture decision was proposed on the mailing list, and a consensus emerged from people involved in the discussion on the mailing list.
- `Accepted (voted)` : the architecture undergo a voting process.
- `Rejected` : Consensus built up against that proposal.


## Consequences

See Michael Nygard's article, linked above. For a lightweight ADR toolset, see Nat Pryce's [adr-tools](https://github.com/npryce/adr-tools).

We should provide in a mutable `References` section links to related JIRA meta-ticket (not necessarily to all related sub-tickets) as well as a link to the mail archive discussion thread.

JIRA tickets implementing that architecture decision should also link the related Architecture Decision Record.

## References

* [JAMES-2909](https://jira.apache.org/jira/browse/JAMES-2909)

0 comments on commit e6cf012

Please sign in to comment.