@sacho/sacho 0.1.0-dev.14 → 0.1.0-dev.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -147,21 +147,37 @@ state that never shipped.
147
147
  Basic workflow
148
148
  --------------
149
149
 
150
- With `sacho` on your `PATH`, initialize it at the repository root and choose
151
- the version you are preparing:
150
+ With `sacho` on your `PATH`, initialize it at the repository root:
152
151
 
153
152
  ~~~~ sh
154
153
  sacho init
155
- sacho next 1.2.0
156
154
  ~~~~
157
155
 
158
156
  Initialization creates *sacho.toml*, *changes.d/*, and *CHANGES.md*. It also
159
157
  sets up the merge integration supported by the detected version-control
160
158
  system. The interactive setup can infer an issue-link template from the
161
- repository URL and offer to install a Git pre-commit hook. Repository
159
+ repository URL, offer headings found across an existing changelog as section
160
+ configuration, and offer to install a Git pre-commit hook. Repository
162
161
  integrations use the executable that ran `init`; pass
163
162
  `--integration-executable PATH` to use another executable.
164
163
 
164
+ If an existing *CHANGES.md* already has entries under `Unreleased` or
165
+ `Version X`, import them before creating new fragments:
166
+
167
+ ~~~~ sh
168
+ sacho import-unreleased
169
+ ~~~~
170
+
171
+ Sacho shows any normalization diff before writing. The import creates one root
172
+ fragment, or one fragment per populated configured section, records `X` as the
173
+ next version when present, and leaves every released section unchanged.
174
+
175
+ If the import did not infer a version, choose the version you are preparing:
176
+
177
+ ~~~~ sh
178
+ sacho next 1.2.0
179
+ ~~~~
180
+
165
181
  Create one fragment for each user-visible change, then edit the path printed by
166
182
  the command:
167
183
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sacho/sacho",
3
- "version": "0.1.0-dev.14+4b1514b",
3
+ "version": "0.1.0-dev.16+dc223de",
4
4
  "description": "An opinionated changelog manager",
5
5
  "license": "GPL-3.0-only",
6
6
  "author": "Hong Minhee <hong@minhee.org>",
@@ -24,12 +24,12 @@
24
24
  "node": ">=18"
25
25
  },
26
26
  "optionalDependencies": {
27
- "@sacho/sacho-aarch64-apple-darwin": "0.1.0-dev.14+4b1514b",
28
- "@sacho/sacho-aarch64-pc-windows-msvc": "0.1.0-dev.14+4b1514b",
29
- "@sacho/sacho-aarch64-unknown-linux-musl": "0.1.0-dev.14+4b1514b",
30
- "@sacho/sacho-x86_64-apple-darwin": "0.1.0-dev.14+4b1514b",
31
- "@sacho/sacho-x86_64-pc-windows-msvc": "0.1.0-dev.14+4b1514b",
32
- "@sacho/sacho-x86_64-unknown-linux-musl": "0.1.0-dev.14+4b1514b"
27
+ "@sacho/sacho-aarch64-apple-darwin": "0.1.0-dev.16+dc223de",
28
+ "@sacho/sacho-aarch64-pc-windows-msvc": "0.1.0-dev.16+dc223de",
29
+ "@sacho/sacho-aarch64-unknown-linux-musl": "0.1.0-dev.16+dc223de",
30
+ "@sacho/sacho-x86_64-apple-darwin": "0.1.0-dev.16+dc223de",
31
+ "@sacho/sacho-x86_64-pc-windows-msvc": "0.1.0-dev.16+dc223de",
32
+ "@sacho/sacho-x86_64-unknown-linux-musl": "0.1.0-dev.16+dc223de"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public",
@@ -89,13 +89,18 @@ Adopting Sacho in a project
89
89
  Run `sacho init` from the repository root. It creates `sacho.toml`,
90
90
  `changes.d/`, and `CHANGES.md`, and in a Git repository registers the merge
91
91
  drivers. Interactive setup infers issue-link templates from the remote and can
92
- install commit hooks; `sacho init --interactive` forces the questions and
93
- `--no-interactive` suppresses them.
94
-
95
- Adoption needs no migration. Sacho never rewrites existing released sections, so
96
- leave the old `CHANGES.md` history exactly as it is and start using fragments
97
- for the next version. Set that version with `sacho next 1.2.0` so the unreleased
98
- heading and `release` know what is being prepared.
92
+ install commit hooks. When an existing changelog is present, it also offers
93
+ level-three headings found across the changelog as section candidates and
94
+ suggests directories and source path globs. `sacho init --interactive` forces
95
+ the questions and `--no-interactive` suppresses them.
96
+
97
+ Leave old released sections exactly as they are. If the current `Unreleased` or
98
+ `Version X` region contains entries, run `sacho import-unreleased` before
99
+ creating fragments. Inspect and confirm its normalization diff; in a
100
+ noninteractive workflow, review the diff from the refused run before using
101
+ `--force`. The command creates deterministic *imported-unreleased.md* fragments
102
+ and infers the next version from `Version X`. If there are no current entries,
103
+ skip the import and set the version with `sacho next 1.2.0`.
99
104
 
100
105
  Two configuration decisions matter early, both covered in
101
106
  `reference/configuration.md`: whether to enforce fragment coverage