changelog generator & diff tool
stormlightlabs.github.io/git-storm/
changelog
changeset
markdown
golang
git
1---
2title: Quickstart
3outline: deep
4---
5
6# Quickstart
7
8This walkthrough gets you from zero to a published changelog entry in a few
9minutes. It mirrors the default workflow baked into the CLI.
10
11## 1. Install the CLI
12
13```sh
14go install github.com/stormlightlabs/git-storm/cmd/storm@latest
15```
16
17Verify the binary is available:
18
19```sh
20storm version
21```
22
23## 2. Capture unreleased changes
24
25Create a `.changes` entry manually or generate them from commits.
26
27### Option A — Manual entry
28
29```sh
30storm unreleased add \
31 --type added \
32 --scope cli \
33 --summary "Add bump command"
34```
35
36### Option B — From git history
37
38```sh
39storm generate --since v1.2.0 --interactive
40```
41
42Use the commit selector TUI to pick which commits become entries. Storm writes
43Markdown files such as `.changes/2025-03-01-add-bump-command.md`.
44
45## 3. Review pending entries
46
47```sh
48storm unreleased review
49```
50
51The Bubble Tea UI lets you edit summaries, delete noise, or mark entries as
52ready. In non-interactive environments, fall back to
53`storm unreleased list --json`.
54
55## 4. Dry-run a release
56
57```sh
58storm release --bump patch --dry-run
59```
60
61This prints the new `CHANGELOG` section without modifying files. When the
62output looks right, re-run without `--dry-run`.
63
64## 5. Publish and tag
65
66```sh
67storm release --bump patch --toolchain package.json --tag
68```
69
70- `--bump patch` derives the next version from the previous release.
71- `--toolchain package.json` keeps your npm manifest in sync.
72- `--tag` creates an annotated git tag containing the release notes.
73
74Follow up with standard git commands:
75
76```sh
77git add CHANGELOG.md package.json .changes
78git commit -m "Release v$(storm bump --bump patch)"
79git push origin main --tags
80```
81
82## 6. Enforce entries in CI (optional)
83
84```sh
85storm check --since v1.2.0
86```
87
88The command exits non-zero when commits are missing `.changes` files, making it
89ideal for pre-merge checks.
90
91## Next steps
92
93- Skim the [Introduction](/introduction) to understand the design.
94- Explore every flag in the [manual](/manual).