Skip to main content

Manage decision records with mkdocs in a customizable and minimal fashion.

Project description

mkdocs-decision-records

PyPI version PyPI - Downloads LICENSE CircleCI Quality Gate Status Code Smells Maintainability Rating Security Rating Renovate


Manage decision records with mkdocs in a customizable and minimal fashion.

Features

  • Customizable status colors and lifecycle
  • Enforces information to be present for ADRs
  • Allows description being kept as markdown

Demo

You can find a Demo on GitHub Pages

Installation

  1. Install mkdocs-decision-records from the PyPi registry using your favorite package manager
  2. Configure your mkdocs.yml
    plugins:
    - decision-records:
        # Folder where your decision records are located, defaults to adr
        decisions_folder: adr
        # Optional prefix to prepend to ticket numbers
        ticket_url_prefix: https://ticket.example.com/
        # Configure amount of required deciders
        required_deciders_count: 1
        # Configure available stages and the badge colors
        lifecycle_stages:
          {status}: {color}
    
  3. Create your ADRs ensuring to add the frontmatter meta data:
    ---
    id: 000
    status: proposed | rejected | accepted | deprecated | … | superseded by
    date: YYYY-MM-DD
    deciders:
       - decider 1
       - decider 2
    # Optional ticket
    ticket: FOO-1
    ---
    
    ## Context and Problem Statement
    
    [Describe the context and problem statement, e.g., in free form using two to three sentences. You may want to articulate the problem in form of a question.]
    
    ## Decision Drivers <!-- optional -->
    
    * [driver 1, e.g., a force, facing concern, …]
    * [driver 2, e.g., a force, facing concern, …]
    * … <!-- numbers of drivers can vary -->
    
    ## Considered Options
    
    * [option 1]
    * [option 2]
    * [option 3]
    
    ## Decision Outcome
    
    Chosen option: "[option 1]",
    because [justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force force | … | comes out best (see below)].
    
    ## Pros and Cons of the Options <!-- optional -->
    
    ### [option 1]
    
    [example | description | pointer to more information | …] <!-- optional -->
    
    * Good, because [argument a]
    * Good, because [argument b]
    * Bad, because [argument c]
    * … <!-- numbers of pros and cons can vary -->
    
    ### [option 2]
    
    [example | description | pointer to more information | …] <!-- optional -->
    
    * Good, because [argument a]
    * Good, because [argument b]
    * Bad, because [argument c]
    * … <!-- numbers of pros and cons can vary -->
    
    ### [option 3]
    
    [example | description | pointer to more information | …] <!-- optional -->
    
    * Good, because [argument a]
    * Good, because [argument b]
    * Bad, because [argument c]
    * … <!-- numbers of pros and cons can vary -->
    
    ## Links <!-- optional -->
    
    * [Link type] [Link to ADR] <!-- example: Refined by [ADR-0005](0005-example.md) -->
    * … <!-- numbers of links can vary -->
    

Motivation

I love ADRs and documenting decisions in general. This plugin makes it a bit easier, enforcing basic meta information while keeping the format open enough so you can do your thing.

Contributing

I love your input! I want to make contributing to this project as easy and transparent as possible, whether it's:

  • Reporting a bug
  • Discussing the current state of the configuration
  • Submitting a fix
  • Proposing new features
  • Becoming a maintainer

To get started please read the Contribution Guidelines.

Development

Requirements

  • Python 3.12+
  • Poetry

Build

poetry install

Alternatives

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

mkdocs_decision_records-1.2.2.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkdocs_decision_records-1.2.2-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file mkdocs_decision_records-1.2.2.tar.gz.

File metadata

  • Download URL: mkdocs_decision_records-1.2.2.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.8 Linux/6.8.0-1018-aws

File hashes

Hashes for mkdocs_decision_records-1.2.2.tar.gz
Algorithm Hash digest
SHA256 fa6912271c6d12aa267fce30e7c7fa7ab62641ba7d5f4f6a8f7f835fb71e3421
MD5 bdb3fe378b522e5d50dfad04fce1ef4a
BLAKE2b-256 47fc5ffc5137646e871ab0d9bc0930f5d93ab215fb621604b2c7329a53a02daa

See more details on using hashes here.

File details

Details for the file mkdocs_decision_records-1.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for mkdocs_decision_records-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b830208d851b4dbd12772d2edc71ea5185ee4492718edd84014b1749256eb984
MD5 51397e58f27ff3bfeea140d2acce3d26
BLAKE2b-256 f3e33f0eb2dcf53c9cca935769266b0828b6bb2f34f51a61ee8144b7d818fc0b

See more details on using hashes here.

Supported by

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