Skip to main content

This Python script is designed to help software development teams document their architecture decisions using Architecture Decision Records (ADRs).

Project description

ADR-py

Shout to excellent adr-tools project on which ADR-py is based on

This Python script is designed to help software development teams document their architecture decisions using Architecture Decision Records (ADRs). ADRs are a lightweight and effective way to capture important decisions made during the design and development of a software system, and to keep track of their rationale and implications over time.

The script creates ADR files in a predefined format, following the principles of Michael Nygard's ADR template. Each ADR file is a Markdown document with a unique name that includes a sequential number and a title, which is automatically generated based on the information provided by the user.

Prerequisites

  • Python 3.11 installed on your system.
  • Basic knowledge of command-line interface (CLI) usage.

Installation

  • pip install adrpy

How to Use

Usage:

$ adrpy [OPTIONS] COMMAND [ARGS]...

Options:

  • --install-completion: Install completion for the current shell.
  • --show-completion: Show completion for the current shell, to copy it or customize the installation.
  • --help: Show this message and exit.

Commands:

  • init: Initialize ADR directory with first ADR in given PATH
  • new: Create new ADR with given NAME

init

Initialize ADR directory with first ADR in given PATH

Usage:

$ adrpy init [OPTIONS] [PATH]

Arguments:

  • [PATH]: Path in where ADRs should reside. If not provided Path will be extracted from pyproject.toml

Options:

  • --help: Show this message and exit.

new

Create new ADR with given NAME

Usage:

$ adrpy new [OPTIONS] NAME

Arguments:

  • NAME: Name of new ADR. Longer names (with spaces) should be put in quotation marks. [required]

Options:

  • adrpy --help: Show this message and exit.

ADR Template

The generated ADR files follow the template proposed by Michael Nygard in his book "Documenting Architecture Decisions." The template consists of the following sections:

  • Title: The title of the ADR.
  • Status: The current status of the decision (e.g., proposed, accepted, rejected).
  • Context: The context and background information that led to the decision.
  • Decision: The decision made and its rationale.
  • Consequences: The potential consequences and trade-offs of the decision.

Benefits of ADRs

Using ADRs has several benefits for software development teams, including:

  • Documentation: ADRs provide a written record of important architectural decisions, making it easier for team members to understand the reasons behind past decisions.
  • Communication: ADRs serve as a communication tool for discussing and documenting design decisions, facilitating collaboration among team members.
  • Decision-making: ADRs encourage thoughtful decision-making by requiring the team to consider the context, rationale, and potential consequences of each decision.
  • Transparency: ADRs promote transparency by making architectural decisions visible and accessible to the entire team, fostering a culture of shared understanding and accountability.
  • Knowledge sharing: ADRs help capture the collective knowledge and experience of the team, enabling future team members to learn from past decisions and avoid repeating mistakes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adr-0.1.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

adr-0.1.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file adr-0.1.0.tar.gz.

File metadata

  • Download URL: adr-0.1.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.6 Linux/5.15.0-1035-azure

File hashes

Hashes for adr-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d3f6262237ba0a3187818ec8b1a2a086cb18f8c9dc36106fc5edc1ee31b578be
MD5 7c116c093c8c53eda3d4261d515b0e15
BLAKE2b-256 96702100619111d04dec6960c03f1ec6392f40933b3ac2553f547e1d3c5fbac0

See more details on using hashes here.

File details

Details for the file adr-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: adr-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.6 Linux/5.15.0-1035-azure

File hashes

Hashes for adr-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 66f8f9207fe60cb8634eedc40b9aaf6fe524e10a408c3c9e21a1c0a8038ed425
MD5 1ba07ce8bfd7cc2dbb76f99a8820169c
BLAKE2b-256 1da95a64ab6350615a480773e96a16f736aad30605e501418371cd307b6bef0f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page