@sacho/sacho-aarch64-pc-windows-msvc 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.
- package/README.md +100 -41
- package/package.json +2 -2
- package/sacho.exe +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
|
|
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
|
-
|
|
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
|
-
|
|
196
|
+
closes the materialized unreleased region:
|
|
132
197
|
|
|
133
198
|
~~~~ sh
|
|
134
|
-
sacho release
|
|
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
|
|
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-pc-windows-msvc",
|
|
3
|
-
"version": "0.1.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "The Sacho binary for aarch64-pc-windows-msvc",
|
|
5
5
|
"license": "GPL-3.0-only",
|
|
6
6
|
"author": "Hong Minhee <hong@minhee.org>",
|
|
7
|
-
"homepage": "https://
|
|
7
|
+
"homepage": "https://sacho.dev/",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
10
|
"url": "git+https://github.com/dahlia/sacho.git"
|
package/sacho.exe
CHANGED
|
Binary file
|