|
1 | 1 | # Change Log
|
2 | 2 |
|
3 |
| -A change log provides a *human readable* list of significant changes, additions, deprecations, removals for software over time. It is meant to be able to be read by *people*. Change logs should be documented within a file called `CHANGELOG.md` and be updated per key release. See [semantic release](https://semver.org) for guidance on releasing cycles and versioning of your software. |
| 3 | +<pre align="center">A guide for setting up a log to document software changes in a human-centric format.</pre> |
4 | 4 |
|
5 |
| -⚠️ A `CHANGELOG.md` can replicate wording from a releases page (e.g. GitHub Releases), but should not be left out *in place of* a releases page. Down-stream inheritors of your software may not have access to your releases page, and will expect a `CHANGELOG.md` to be present as part of your software distribution. |
| 5 | +## Introduction |
6 | 6 |
|
7 |
| -## Keep a Changelog |
| 7 | +**Background**: A change log is a vital tool for documenting significant changes in software over time in a format accessible to humans. It plays a critical role in conveying the evolution of software, including additions, deprecations, and removals. This guide outlines the best practices for maintaining a `CHANGELOG.md` file, complementing release pages and enhancing software distribution transparency. |
8 | 8 |
|
9 |
| -This change log standard seeks to provide a template for *human readable* change logs, among other key guidance on the change logging process. |
| 9 | +**Use Cases**: |
| 10 | +- Documenting software changes for easy understanding and tracking. |
| 11 | +- Enhancing transparency in software development and release cycles. |
| 12 | +- Storing the history of significant changes independent of code hosts like GitHub.com |
| 13 | +--- |
10 | 14 |
|
11 |
| -Starter Kit: |
12 |
| -- [Guidance](https://keepachangelog.com/en/1.0.0/#how) |
13 |
| -- [Demo 1](https://github.com/riverma/terraformly/blob/main/CHANGELOG.md) |
14 |
| -- [Demo 2](https://github.com/olivierlacan/keep-a-changelog/blob/main/CHANGELOG.md) |
15 |
| -- [Webpage](https://keepachangelog.com/en/1.0.0/) |
| 15 | +## Prerequisites |
16 | 16 |
|
17 |
| -To leverage this template, make sure to do the following: |
18 |
| -1. Talk with your team about leveraging this template, and seek wide agreement before you adopt |
19 |
| -2. Copy the demo `CHANGELOG.md` above, and place in a file within your repository called `CHANGELOG.md` |
20 |
| -3. Edit the `CHANGELOG.md` file with your specific release information. If you have many historic releases prior to the creation of this file, mark the latest release as the first entry, and commit to updating this for future releases as the happen. |
21 |
| -4. Add an entry to your `README.md` under the `Changelog` section to point to your `CHANGELOG.md` file. |
| 17 | +* Familiarity with semantic versioning and release cycles. |
| 18 | +* Basic knowledge of Markdown formatting. |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## Quick Start |
| 23 | + |
| 24 | +**[⬇️ Keep a Changelog](https://keepachangelog.com/en/1.0.0/#how)** |
| 25 | + |
| 26 | +Download a template for creating a human-readable change log for your software project. |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +## Step-by-Step Guide |
| 31 | + |
| 32 | +1. **Team Agreement**: Discuss the importance of a change log with your team, emphasizing its value for transparency and communication. |
| 33 | +2. **Creating the Change Log**: |
| 34 | + - Start a `CHANGELOG.md` in your repository. |
| 35 | + - See demo use of the templates like [Demo 1](https://github.com/riverma/terraformly/blob/main/CHANGELOG.md) or [Demo 2](https://github.com/olivierlacan/keep-a-changelog/blob/main/CHANGELOG.md) as a base. |
| 36 | + - Customize the file with your project's release information. |
| 37 | +3. **Integrating with Project Documentation**: |
| 38 | + - Link to the `CHANGELOG.md` from your project’s `README.md` to enhance visibility. |
| 39 | + |
| 40 | +--- |
| 41 | + |
| 42 | +## Frequently Asked Questions (FAQ) |
| 43 | + |
| 44 | +- Q: Why is a `CHANGELOG.md` crucial even if there's a GitHub auto-generated release changes page? |
| 45 | +- A: It ensures future-proof accessibility of change information, especially for users who may not have access to the project's release page or if the software has changed hands. Moreover, its meant to be feature-centric and designed for people to understand, rather than GitHub's commit-oriented change reports. |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +## Credits |
| 50 | + |
| 51 | +**Authorship**: |
| 52 | +- [Rishi Verma](https://github.com/riverma) |
| 53 | + |
| 54 | +**Acknowledgements**: |
| 55 | +* This guide draws from the ["Keep a Changelog"](https://keepachangelog.com) standard and examples from various open source projects. |
| 56 | + |
| 57 | +--- |
| 58 | + |
| 59 | +## Feedback and Contributions |
| 60 | + |
| 61 | +Feedback and contributions are encouraged to refine this guide. See our [contribution guidelines](https://nasa-ammos.github.io/slim/docs/contribute/contributing/). |
0 commit comments