add adr-status + direnv
This commit is contained in:
@@ -1,2 +1,58 @@
|
|||||||
# gittally
|
# GitTally
|
||||||
Lightweight, declarative and highly opinionated software build system (CI/CI).
|
|
||||||
|
Lightweight, declarative and highly opinionated software build system (CI/CD).
|
||||||
|
|
||||||
|
## Developer Setup
|
||||||
|
|
||||||
|
Source `.envrc` to add `tools/` to your `PATH`, or install [direnv](#direnv) to have this done automatically on `cd`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
source .envrc
|
||||||
|
```
|
||||||
|
|
||||||
|
Common tasks:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./gradlew build # compile and run all checks
|
||||||
|
./gradlew test # run tests
|
||||||
|
./gradlew ktlintFormat # auto-format Kotlin sources
|
||||||
|
./gradlew ktlintCheck # check formatting (also runs as part of build)
|
||||||
|
|
||||||
|
adr-status # show all architecture decisions at a glance
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### direnv
|
||||||
|
|
||||||
|
[direnv](https://direnv.net/) sources `.envrc` automatically whenever you enter the repository and unloads it when you leave.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Ubuntu
|
||||||
|
sudo apt install direnv
|
||||||
|
|
||||||
|
# add to ~/.bashrc or ~/.zshrc
|
||||||
|
eval "$(direnv hook bash)" # or: eval "$(direnv hook zsh)"
|
||||||
|
```
|
||||||
|
|
||||||
|
Trust the project's `.envrc` once per clone:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
direnv allow
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tools (`tools/`)
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---|---|
|
||||||
|
| `adr-status` | List all Architecture Decision Records with their status and decision summary |
|
||||||
|
|
||||||
|
## Architecture Decision Records
|
||||||
|
|
||||||
|
Major technical decisions are documented as ADRs in [`docs/adrs/`](docs/adrs/).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
adr-status # show all decisions at a glance
|
||||||
|
```
|
||||||
|
|
||||||
|
New ADRs follow the template at [`docs/adrs/0000-00-00.adr-template.md`](docs/adrs/0000-00-00.adr-template.md).
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
- rejected: -
|
- rejected: -
|
||||||
- superseded: -
|
- superseded: -
|
||||||
|
|
||||||
|
**Decision [proposed]:** CHOSEN-OPTION — one-line rationale.
|
||||||
|
|
||||||
## Context and Problem Statement
|
## Context and Problem Statement
|
||||||
|
|
||||||
A short description, why and under which circumstances this decision had to be made.
|
A short description, why and under which circumstances this decision had to be made.
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
- rejected: -
|
- rejected: -
|
||||||
- superseded: -
|
- superseded: -
|
||||||
|
|
||||||
|
**Decision [accepted]:** Kotest — Kotlin-native test runner with richer DSL than JUnit 5; paired with MockK, WireMock, and Testcontainers.
|
||||||
|
|
||||||
## Context and Problem Statement
|
## Context and Problem Statement
|
||||||
|
|
||||||
GitTally is a greenfield Kotlin/Spring Boot project.
|
GitTally is a greenfield Kotlin/Spring Boot project.
|
||||||
|
|||||||
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
root=$(git rev-parse --show-toplevel 2>/dev/null) || { echo "Not in a git repo"; exit 1; }
|
||||||
|
grep -F '**Decision ' "$root"/docs/adrs/* \
|
||||||
|
| sed "s|$root/docs/adrs/||; s/:/\t/; s/\*\*Decision //; s/:\*\*//" \
|
||||||
|
| column -t -s $'\t'
|
||||||
Reference in New Issue
Block a user