Hi everyone, Let me post here a proposal made by Gautier which I find of interest:
Over the last months, my company (Linagora) have done a large set of deep changes in James' architecture without much discussion with the community. In order to change that, we would like to propose an Architectural Decision Records [1] based process. It would work as following: 1. Publish an ADR proposition on this list, with the associated JIRA 2. Discuss it 3. Add it to the code base [1] https://adr.github.io/ Let me begin: * JIRA: https://issues.apache.org/jira/browse/JAMES-2909 * PR: https://github.com/apache/james-project/pull/166 # 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. 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. ## Decision We will use Architecture Decision Records, as [described by Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions). 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. ## 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). ## References * [JAMES-2909](https://jira.apache.org/jira/browse/JAMES-2909) * [Github PR](https://github.com/apache/james-project/pull/169) --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org