@sacho/sacho-aarch64-apple-darwin 0.1.0-dev.8 → 0.1.0

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.
Files changed (3) hide show
  1. package/README.md +100 -41
  2. package/package.json +2 -2
  3. package/sacho +0 -0
package/README.md CHANGED
@@ -1,6 +1,27 @@
1
1
  Sacho: an opinionated changelog manager
2
2
  =======================================
3
3
 
4
+ [![GitHub Releases][GitHub Releases badge]][GitHub Releases]
5
+ [![crates.io][crates.io badge]][crates.io]
6
+ [![npm][npm badge]][npm]
7
+ [![GitHub Actions][GitHub Actions badge]][GitHub Actions]
8
+ [![License: GPL-3.0-only][GPL-3.0 badge]][GPL-3.0]
9
+ [![GitHub Sponsors][GitHub Sponsors badge]][GitHub Sponsors]
10
+
11
+ [GitHub Releases badge]: https://img.shields.io/github/v/release/dahlia/sacho?logo=github
12
+ [GitHub Releases]: https://github.com/dahlia/sacho/releases
13
+ [crates.io badge]: https://img.shields.io/crates/v/sacho?logo=rust
14
+ [crates.io]: https://crates.io/crates/sacho
15
+ [npm badge]: https://img.shields.io/npm/v/@sacho/sacho?logo=npm
16
+ [npm]: https://www.npmjs.com/package/@sacho/sacho
17
+ [GitHub Actions badge]: https://github.com/dahlia/sacho/actions/workflows/main.yaml/badge.svg
18
+ [GitHub Actions]: https://github.com/dahlia/sacho/actions/workflows/main.yaml
19
+ [GPL-3.0 badge]: https://img.shields.io/github/license/dahlia/sacho
20
+ [GPL-3.0]: https://www.gnu.org/licenses/gpl-3.0.html
21
+ [GitHub Sponsors badge]: https://img.shields.io/github/sponsors/dahlia?logo=githubsponsors
22
+ [GitHub Sponsors]: https://github.com/sponsors/dahlia
23
+
24
+
4
25
  Motivation
5
26
  ----------
6
27
 
@@ -18,7 +39,7 @@ towncrier assumes Python; changesets assumes an npm monorepo. Sacho is a single
18
39
  static binary with no runtime dependencies, usable in any repository regardless
19
40
  of language, and it does not even assume Git.
20
41
 
21
- [Sacho is opinionated.](./PHILOSOPHY.md) It enforces one fragment format,
42
+ [*Sacho is opinionated.*](./PHILOSOPHY.md) It enforces one fragment format,
22
43
  one output style, and one set of invariants. Configuration exists to describe
23
44
  your repository, not to customize the philosophy.
24
45
 
@@ -52,7 +73,51 @@ Without mise, npm, or Cargo, download the archive for your platform from
52
73
  *sacho* (*sacho.exe* on Windows) into a directory on your `PATH`.
53
74
 
54
75
  [mise]: https://mise.jdx.dev/
55
- [GitHub Releases]: https://github.com/dahlia/sacho/releases
76
+
77
+
78
+ Agent Skill
79
+ -----------
80
+
81
+ Sacho ships an [Agent Skill] that teaches AI coding agents, such as Claude Code,
82
+ how to adopt and operate Sacho: writing fragments for users, cutting releases,
83
+ and forward-porting fixes across maintenance branches.
84
+
85
+ In Claude Code, install it as a plugin. Add this repository as a plugin
86
+ marketplace, then install the `sacho` plugin:
87
+
88
+ ~~~~ text
89
+ /plugin marketplace add dahlia/sacho
90
+ /plugin install sacho@sacho
91
+ ~~~~
92
+
93
+ For other agents, or to install the skill without the plugin system, use the
94
+ [`skills`] CLI, which reads the skill straight from this repository:
95
+
96
+ ~~~~ sh
97
+ npx skills add dahlia/sacho
98
+ ~~~~
99
+
100
+ Add `-a claude-code` to target one agent, `-g` to install it globally, and
101
+ `--skill sacho` to select the skill by name.
102
+
103
+ The skill is also bundled inside the `@sacho/sacho` npm package, following the
104
+ [`skills-npm`] layout. In a project that depends on that package, run
105
+ `npx skills-npm setup` once to link bundled skills from *node\_modules* into
106
+ your agent on every install.
107
+
108
+ [Agent Skill]: https://agentskills.io/
109
+ [`skills`]: https://github.com/vercel-labs/skills
110
+ [`skills-npm`]: https://github.com/antfu/skills-npm
111
+
112
+
113
+ Documentation
114
+ -------------
115
+
116
+ The [*Sacho documentation*] walks through adoption, everyday use, releases,
117
+ CI, and version-control integration. It also explains Sacho's core concepts and
118
+ provides complete command and configuration references.
119
+
120
+ [*Sacho documentation*]: https://sacho.dev/guide/getting-started
56
121
 
57
122
 
58
123
  How it works
@@ -128,15 +193,27 @@ staged Git changes or `sacho check --base <revision>` in CI.
128
193
 
129
194
  When the version is ready, compile and consume its fragments. This command
130
195
  releases the version stored by `sacho next`, uses the current local date, and
131
- starts the next version:
196
+ closes the materialized unreleased region:
132
197
 
133
198
  ~~~~ sh
134
- sacho release --next 1.3.0
199
+ sacho release
135
200
  ~~~~
136
201
 
137
202
  If no next version has been set, pass the release version explicitly, for
138
203
  example `sacho release 1.2.0`. Use `--date YYYY-MM-DD` when the release date
139
- must be supplied rather than taken from the local clock.
204
+ must be supplied rather than taken from the local clock. A repository with no
205
+ released changelog sections can cut its first release without fragments. Later
206
+ empty releases require an explicit `--allow-empty`.
207
+
208
+ Commit and tag that released-only state. When development resumes, start the
209
+ next cycle separately:
210
+
211
+ ~~~~ sh
212
+ sacho next 1.3.0
213
+ ~~~~
214
+
215
+ Pass `--next 1.3.0` to `sacho release` only when the release commit should also
216
+ open the next cycle and retain its empty materialized region.
140
217
 
141
218
  After committing a release, print its frozen Markdown section with `show`:
142
219
 
@@ -161,7 +238,8 @@ Version-control integration
161
238
  ---------------------------
162
239
 
163
240
  Sacho can enforce that commits changing configured source paths also carry a
164
- changelog fragment. Select the repository's VCS in *sacho.toml*:
241
+ changelog fragment. Select the repository's VCS and the paths to check in
242
+ *sacho.toml*:
165
243
 
166
244
  ~~~~ toml
167
245
  [vcs]
@@ -176,41 +254,6 @@ Git also supports `sacho check --staged`. The `none` preset explicitly skips
176
254
  VCS-backed checks while leaving fragment validation and changelog consistency
177
255
  checks enabled.
178
256
 
179
- Each preset supplies three subprocess commands. Repositories can override one
180
- command without repeating the other two:
181
-
182
- ~~~~ toml
183
- [vcs]
184
- preset = "git"
185
-
186
- [vcs.commands]
187
- message = ["my-vcs-wrapper", "message", "${commit}"]
188
- ~~~~
189
-
190
- The first array element is the executable and every remaining element is one
191
- literal argument; Sacho never invokes a shell. The commits command uses
192
- `${base}`, while changed-paths and message use `${commit}`. An overridden query
193
- is the complete query and does not invoke commands from its preset behind the
194
- scenes. The built-in Mercurial preset handles parent comparisons internally.
195
-
196
- The query output contracts are:
197
-
198
- - `commits` emits zero or more nonempty UTF-8 commit identifiers, oldest
199
- first and one per line. The final line may end in LF; CRLF is also
200
- accepted.
201
- - `changed-paths` emits concatenated NUL-terminated name-status records.
202
- Ordinary records are `A\0PATH\0`, `D\0PATH\0`, `M\0PATH\0`, or
203
- `T\0PATH\0`, where `T` denotes a file type change. Copy and rename records
204
- are `C[SIMILARITY]\0OLD_PATH\0NEW_PATH\0` and
205
- `R[SIMILARITY]\0OLD_PATH\0NEW_PATH\0`, where the optional similarity is a
206
- decimal percentage from 0 through 100. Status fields are UTF-8 and paths
207
- are nonempty repository-relative platform paths; path bytes need not be
208
- UTF-8 on Unix. Nonempty output ends in NUL. A copied or renamed fragment
209
- counts as new content only when similarity is present and below 100;
210
- omitting it does not satisfy fragment coverage.
211
- - `message` emits the complete UTF-8 commit message verbatim. Sacho does not
212
- trim it.
213
-
214
257
  `sacho init` installs Git merge attributes and drivers in Git repositories. In
215
258
  Mercurial repositories it installs an idempotent block in *.hg/hgrc* containing
216
259
  a successful-merge update hook and, when changelog materialization is enabled,
@@ -219,6 +262,12 @@ the changelog merge driver. These integrations invoke the executable that ran
219
262
  per-path merge-driver hook; after resolving a concurrent fragment merge, run
220
263
  `sacho sync --force`.
221
264
 
265
+ See [*CI and hooks*] for fragment coverage and [*Version control*] for preset,
266
+ merge-driver, and custom-query details.
267
+
268
+ [*CI and hooks*]: https://sacho.dev/guide/ci-and-hooks
269
+ [*Version control*]: https://sacho.dev/guide/version-control
270
+
222
271
 
223
272
  Etymology
224
273
  ---------
@@ -243,3 +292,13 @@ is the same insistence this tool makes against generating changelogs from
243
292
  commit messages after the fact.
244
293
 
245
294
  [1]: https://en.wikipedia.org/wiki/Veritable_Records_of_the_Joseon_Dynasty#Compilation_process
295
+
296
+
297
+ License
298
+ -------
299
+
300
+ Copyright (C) 2026 Hong Minhee.
301
+
302
+ Sacho is free software licensed under the GNU General Public License version 3
303
+ only. It comes with no warranty, to the extent permitted by law. See
304
+ [*LICENSE*](./LICENSE) for the full terms.
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@sacho/sacho-aarch64-apple-darwin",
3
- "version": "0.1.0-dev.8+a3ec562",
3
+ "version": "0.1.0",
4
4
  "description": "The Sacho binary for aarch64-apple-darwin",
5
5
  "license": "GPL-3.0-only",
6
6
  "author": "Hong Minhee <hong@minhee.org>",
7
- "homepage": "https://github.com/dahlia/sacho",
7
+ "homepage": "https://sacho.dev/",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/dahlia/sacho.git"
package/sacho CHANGED
Binary file