Coder Social home page Coder Social logo

adr-j's Introduction

ADR-J Tool

Release Build Status License: MIT

A Java based command-line tool for working with Architecture Decision Records (ADRs). More information about what ADRs are and why to use them can be found in this article.

ADR-J is based on the script based tools from Nat Pryce. It has been extended so that:

  • Custom ADR templates can be created that fit into in-house development guidelines.

  • Different markup formats can be used in the templates (for instance Markdown and AsciiDoc) meaning that the ADRs can be used with different in-house documentation tools.

Quick Start

Install ADR-J tool

Use the adr command to manage ADRs. Try running adr help.

ADRs are stored in your project as markup files in the doc/adr directory.

  1. Create an ADR directory in the root of your project:

     adr init 
    

    This will create the first ADR recording that you are using ADRs to record architectural decisions and linking to Michael Nygard's article on the subject. The default is to use the Nygard template, GitHub markdown and the relative directory doc/adr.

    To use a different template to the default, specify the path of a template:

    adr init -t ~/standards/madr.md 
    

    A guide to writing templates can be found here. Example templates can be found here.

    To use a different directory for the created ADRs specify the directory:

    adr init doc/architecture/decisions
    

    To combine these both use:

     adr init -t ~/standards/madr.md doc/architecture/decisions
    

    After initialisation, a properties file is created in the directory .adr.

  2. Create Architecture Decision Records

     adr new Implement as Unix shell scripts
    

    This will create a new, numbered ADR file and open it in your editor of choice (as specified by the ADR_EDITOR environment variable).

    To create a new ADR that supersedes a previous one (ADR 9, for example), use the -s option.

     adr new -s 9 Use Rust for performance-critical functionality
    

    This will create a new ADR file that is flagged as superseding ADR 9. It then opens the new ADR in your editor of choice.

    To create a new ADR that references another ADR, use the -l option.

    adr new -l 4:"Links to" Use JMS interface for messaging
    

    This will create a new ADR that references ADR 4 and inserts the message "Links to" in the new ADR.

  3. For further information, see the man pages or use the built in help:

     adr help
    

Architecture Decisions

The decisions for this tool are recorded as architecture decision records in the project repository.

Build

This project uses Gradle to build. Execute following command to generate build/release/adr-j.jar

gradlew releaseJar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.