Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adr/madr
Markdown Architectural Decision Records
https://github.com/adr/madr
architectural-decision-records architectural-decisions design-document design-documents documentation hacktoberfest
Last synced: 2 days ago
JSON representation
Markdown Architectural Decision Records
- Host: GitHub
- URL: https://github.com/adr/madr
- Owner: adr
- License: other
- Created: 2017-07-18T08:37:12.000Z (over 7 years ago)
- Default Branch: develop
- Last Pushed: 2024-10-29T06:16:21.000Z (about 1 month ago)
- Last Synced: 2024-10-29T15:11:01.765Z (about 1 month ago)
- Topics: architectural-decision-records, architectural-decisions, design-document, design-documents, documentation, hacktoberfest
- Language: Markdown
- Homepage: https://adr.github.io/madr/
- Size: 355 KB
- Stars: 1,444
- Watchers: 24
- Forks: 405
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - adr/madr - Markdown Architectural Decision Records (Markdown)
README
# Markdown Architectural Decision Records
> "Markdown Architectural Decision Records" (MADR) `[ˈmæɾɚ]` – decisions that [matter `[ˈmæɾɚ]`](https://en.wiktionary.org/wiki/matter#Pronunciation).
For user documentation, please head to .
## Quick start
* [`adr-template.md`](template/adr-template.md) has all sections, with explanations about them.
* [`adr-template-minmal.md`](template/adr-template-minimal.md) only contains mandatory sections, with explanations about them.
* [`adr-template-bare.md`](template/adr-template-bare.md) has all sections, which are empty (no explanations).
* [`adr-template-bare-minimal.md`](template/adr-template-bare-minimal.md) has the mandatory sections, without explanations.Copy it into `docs/decisions`.
For each ADR, copy the template to `nnnn-title.md` and adapt.
Longer explanation: Head to .## Development hints
* MADR follows [Semantic Versioning 2.0.0](https://semver.org/) and documents changes in a `CHANGELOG.md` following [keep a changelog 1.0.0](http://keepachangelog.com/en/1.0.0/).
* Issues can be reported at .
* Suggestions can be contributed via pull requests. MADR offers pre-configured VS Code web environment at [Gitpod](https://gitpod.io/#https://github.com/adr/madr).
* MADR uses [markdownlint](https://github.com/DavidAnson/markdownlint) as Linter for Markdown files. Use [markdownlint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) for checking for linting issues in VS Code.
* `template/adr-template.md` is mirrored to `docs/decisions/adr-template`.
However, following YAML front matter is added to make it handled properly by the [Just the Docs Jekyll Template](https://just-the-docs.github.io/just-the-docs/).
```markdown
---
parent: Decisions
nav_order: 100
title: ADR Template
---
```### Branches
| Branch | Meaning |
|--------------|----------------------------------------------------------------------------------------------------------------------------------------------|
| `gh-pages` | Homepage showing the latest released version, rendered at |
| `develop` | Latest developments, including homepage updates which should be published on a release. `gh-pages` should always be merged into this branch. |
| `release/vY` | Branch for latest release Y.x version of MADR. Introduced to fix [#92](https://github.com/adr/madr/issues/92) |The branch name conventions follow the [git flow model](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow).
See also [`CONTRIBUTING.md`](CONTRIBUTING.md).
## How to start Jekyll locally
For rendering the `docs` directory, Jekyll is needed.
For local development, follow the [Jekyll installation instructions](https://jekyllrb.com/docs/installation/).
Installing the latest version of ruby followed by `gem install bundler` should be enough.Afterwards, run
```terminal
bundle install
jekyll serve --livereload
```and go to in your browser.
On Windows, using a dockerized environment is recommended:
```terminal
docker run -p 4000:4000 --rm -v "C:\git-repositories\adr.github.io\madr\docs":/site bretfisher/jekyll-serve
```In case you get errors regarding `Gemfile.lock`, just delete `Gemfile.lock` and rerun.
## Updating just-the-docs
* Adapt `docs/Gemfile` to use newer just-the-docs version. Thereby check for versions.
* Delete `docs/Gemfile.lock`. Start `bundle install`.
* Check .
* Check .## Releasing a new version
1. Update the examples at `docs/index.md` and `docs/examples.md`.
2. Update the concrete decisions in `docs/decisions/*` with the new template.
3. Commit ("Update examples and decisions") and push. Possibly as pull request.
4. Adapt the version reference in `template/0000-use-markdown-architectural-decision-records.md`.
5. Update "template" files in `docs/decisions`:
* Copy `template/0000-use-markdown-architectural-decision-records.md` to `docs/decisions/0000-use-markdown-architectural-decision-records.md`.
* Adapt content of `docs/decisions/adr-template.md` based on `template/adr-template.md`.
Thereby, ensure that the YAML front matter in `docs/decisions/adr-template.md` is kept.
6. Add link to `docs/index.md` at "Older versions" (for the homepage).
7. Copy `.markdownlint.yml` to `template/.markdownlint.yml` (and possibly to `docs/.markdownlint.yml`).
8. Update `CHANGELOG.md`.
9. Commit.
10. Update `package.json` and publish to [npmjs](https://www.npmjs.com/package/madr) using [release-it](https://www.npmjs.com/package/release-it) (do not create a release on GitHub). This also does a commit.
11. Create GitHub release using [github-release-from-changelog](https://www.npmjs.com/package/github-release-from-changelog).
12. Merge `develop` into `gh-pages`## License
This work is dual-licensed under [MIT](https://opensource.org/licenses/MIT) and
[CC0](https://creativecommons.org/share-your-work/public-domain/cc0/).
You can choose between one of them if you use this work.```yaml
SPDX-License-Identifier: MIT OR CC0-1.0
```