Skip to content
This repository was archived by the owner on Nov 30, 2021. It is now read-only.

Commit 39c3490

Browse files
authored
docs: ADR template (#536)
* docs: ADR template * update
1 parent 1339c17 commit 39c3490

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed

docs/architecture/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<!--
2+
order: false
3+
parent:
4+
order: false
5+
--->
6+
7+
# Architecture Decision Records (ADR)
8+
9+
This is a location to record all high-level architecture decisions in Ethermint.
10+
11+
You can read more about the ADR concept in this blog posts:
12+
13+
- [GitHub - Why Write ADRs](https://github.blog/2020-08-13-why-write-adrs/)
14+
- [Reverb - Documenting architecture decisions, the Reverb way](https://product.reverb.com/documenting-architecture-decisions-the-reverb-way-a3563bb24bd0#.78xhdix6t)
15+
16+
An ADR should provide:
17+
18+
- Context on the relevant goals and the current state
19+
- Proposed changes to achieve the goals
20+
- Summary of pros and cons
21+
- References
22+
- Changelog
23+
24+
Note the distinction between an ADR and a spec. The ADR provides the context, intuition, reasoning, and
25+
justification for a change in architecture, or for the architecture of something
26+
new. The spec is much more compressed and streamlined summary of everything as
27+
it stands today.
28+
29+
If recorded decisions turned out to be lacking, convene a discussion, record the new decisions here, and then modify the code to match.
30+
31+
Note the context/background should be written in the present tense.
32+
33+
Please add a entry below in your Pull Request for an ADR.
34+
35+
## ADR Table of Contents
36+
37+
<!--
38+
Add an entry in the following format:
39+
- [ADR XXX: ADR Title](./adr-XXX-adr-title.md)
40+
-->

docs/architecture/adr-template.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# ADR {XXX}: {TITLE}
2+
3+
## Changelog
4+
5+
- {date}: {changelog}
6+
7+
## Status
8+
9+
> A decision may be "proposed" if the project stakeholders haven't agreed with it yet, or "accepted" once it is agreed. If a later ADR changes or reverses a decision, it may be marked as "deprecated" or "superseded" with a reference to its replacement.
10+
> {Deprecated|Proposed|Accepted} {Implemented|Not Implemented}
11+
12+
## Context
13+
14+
> This section describes the forces at play, including technological, political, social, and project local. These forces are probably in tension, and should be called out as such. The language in this section is value-neutral. It is simply describing facts.
15+
> {context body}
16+
17+
## Decision
18+
19+
> This section describes our response to these forces. It is stated in full sentences, with active voice. "We will ..."
20+
> {decision body}
21+
22+
## Consequences
23+
24+
> This section describes the resulting context, after applying the decision. All consequences should be listed here, not just the "positive" ones. A particular decision may have positive, negative, and neutral consequences, but all of them affect the team and project in the future.
25+
26+
### Positive
27+
28+
{positive consequences}
29+
30+
### Negative
31+
32+
{negative consequences}
33+
34+
### Neutral
35+
36+
{neutral consequences}
37+
38+
## References
39+
40+
- {reference link}

0 commit comments

Comments
 (0)