Skip to content

Commit 612f2db

Browse files
committed
docs(CHANGES) Trim verbosity for v1.51.0–v1.54.0
why: Releases v1.51.0 through v1.54.0 exposed implementation internals (function names, type annotations, variable initializations) and included marketing copy inconsistent with the established changelog style. what: - Remove internal names (_HelpTheme, OutputFormatter, _determine_plan_action, SyncResult, _file_extension) from user-facing entries - Collapse root-cause bug explanations into single-line symptom descriptions - Remove marketing copy and cosmetic detail bullets - Reorder v1.53.0 sections: breaking changes before what's new - Collapse multi-bullet test sections into summary lines
1 parent 5d96b39 commit 612f2db

File tree

1 file changed

+31
-137
lines changed

1 file changed

+31
-137
lines changed

CHANGES

Lines changed: 31 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -37,96 +37,33 @@ _Notes on upcoming releases will be added here_
3737

3838
### Breaking changes
3939

40-
#### cli(sync): Route dry-run JSON through OutputFormatter (#514)
41-
42-
JSON dry-run output bypassed `OutputFormatter`, producing a nested
43-
workspace schema instead of the flat array used by other commands.
44-
Dry-run JSON and NDJSON now use the same `formatter.emit()` path.
45-
4640
- Dry-run `--json` output is now a flat array of plan entries, matching
47-
the schema of `sync --json` and `status --json`
48-
49-
### What's new
50-
51-
#### cli(_formatter): Add `_HelpTheme` protocol for argparse colorization (#514)
52-
53-
Add a typed protocol documenting the CPython 3.14+ argparse theme
54-
attributes consumed by `VcspullHelpFormatter`. The formatter hooks into
55-
`_theme` to colorize example command blocks in help text, applying
56-
distinct colors to program names, subcommands, and options.
41+
the schema of `sync --json` and `status --json` (#514)
5742

5843
### Bug fixes
5944

60-
#### cli(status): Fix false "up to date" and phantom dirty counts (#514)
61-
62-
`check_repo_status` initialized `ahead`/`behind` to `0` instead of
63-
`None` when no upstream is tracked, causing `_determine_plan_action`
64-
to report repos as "up to date" when the remote state was actually
65-
unknown. Additionally, non-git directories (where `clean` is `None`)
66-
were counted as dirty in the status summary.
67-
68-
- Initialize `ahead`/`behind` as `None` so missing upstream propagates
69-
correctly
70-
- Use identity checks (`is True` / `is False`) instead of truthiness
71-
for `clean`, excluding non-git repos from clean/dirty counts
72-
73-
#### cli(sync): Deduplicate repos matched by multiple patterns (#514)
74-
75-
When multiple patterns matched the same repository (e.g. `"myrepo"`
76-
and `"*"`), the repo was synced multiple times. Repos are now
77-
deduplicated by path after pattern matching.
78-
79-
#### cli(sync): Report non-git repos as UPDATE in dry-run plan (#514)
80-
81-
`_determine_plan_action` blocked non-git repos in dry-run output even
82-
though `update_repo` supports SVN and Mercurial via `create_project()`.
83-
Non-git repos now show `UPDATE` with a "non-git VCS" detail instead of
84-
`BLOCKED`.
85-
86-
#### cli(sync): Widen `update_repo` return type (#514)
87-
88-
Return type was annotated as `GitSync` but `create_project()` returns
89-
`GitSync | HgSync | SvnSync`. The annotation now matches the actual
90-
return type.
91-
92-
#### cli(_formatter): Complete option classification for help colorization (#514)
93-
94-
The help formatter's option sets were missing several flags (`-d`,
95-
`-x`, `-V`, `--fetch`, `--offline`, `--verbose`, etc.) and
96-
value-expecting options (`--max-concurrent`, `--name`, `--url`),
97-
causing tokens following those options to be misclassified in colorized
98-
help output.
45+
- Fix false "up to date" status for repos without upstream tracking (#514)
46+
- Fix non-git repos being counted in dirty/clean summary totals (#514)
47+
- Fix repos matched by multiple patterns being synced multiple times (#514)
48+
- Fix SVN and Mercurial repos showing as BLOCKED in dry-run plan (#514)
49+
- Fix misclassified tokens in colorized `--help` output (#514)
9950

10051
### Documentation
10152

102-
- Update sync examples in README and quickstart to use `--all`, matching
103-
the v1.53.0 CLI change (#514)
53+
- Update sync examples in README and quickstart to use `--all` (#514)
10454

10555
### Tests
10656

107-
- Add SVN and Mercurial tests for `update_repo` to verify non-git VCS
108-
paths (#514)
57+
- Add SVN and Mercurial sync tests (#514)
10958

11059
## vcspull v1.53.0 (2026-02-08)
11160

112-
### What's new
113-
114-
#### cli: Show help when commands are called without arguments (#511)
115-
116-
Running `vcspull sync`, `vcspull search`, `vcspull add`, or
117-
`vcspull discover` with no arguments now prints the command's help
118-
screen instead of raising a cryptic argparse error or silently doing
119-
nothing. This makes the CLI self-documenting — new users can explore
120-
available options without reaching for `--help`, and experienced users
121-
get an instant reminder of the expected syntax.
122-
12361
### Breaking changes
12462

12563
#### cli(sync): Require `--all` to sync all repositories (#511)
12664

127-
`vcspull sync` without arguments previously synced nothing and exited
128-
silently. It now shows help instead. To sync every configured
129-
repository, use the new `--all` (or `-a`) flag:
65+
`vcspull sync` without arguments now shows help instead of silently
66+
exiting. To sync every configured repository, use `--all` (or `-a`):
13067

13168
```console
13269
$ vcspull sync --all
@@ -135,88 +72,58 @@ $ vcspull sync --all
13572
- Passing `--all` with positional patterns is an error (mutually exclusive)
13673
- The `"*"` glob pattern still works as an alternative to `--all`
13774

138-
## vcspull v1.52.1 (2026-02-08)
75+
### What's new
13976

140-
### Tests
77+
- Subcommands (`sync`, `search`, `add`, `discover`) now print help when
78+
called without arguments (#511)
14179

142-
#### conftest: Fix test failures in clean build environments (#513)
80+
## vcspull v1.52.1 (2026-02-08)
14381

144-
Tests now pass in environments without a global git identity (e.g. Arch
145-
Linux nspawn containers with Python 3.14). The autouse `setup` fixture
146-
sets `GIT_AUTHOR_NAME`, `GIT_AUTHOR_EMAIL`, `GIT_COMMITTER_NAME`, and
147-
`GIT_COMMITTER_EMAIL` as environment variables so subprocesses inherit
148-
git identity regardless of `~/.gitconfig` resolution.
82+
### Tests
14983

150-
- Add `@skip_if_hg_missing` / `@skip_if_svn_missing` markers directly on
151-
test functions where libvcs fixture-level markers don't propagate
152-
reliably under `asyncio_mode = "auto"`
153-
- Add pytester-based harness tests that validate fixture infrastructure
154-
in isolated subprocess environments
84+
- Fix test failures in clean build environments without a global git
85+
identity (e.g. Arch Linux nspawn containers) (#513)
15586

15687
## vcspull v1.52.0 (2026-02-07)
15788

15889
### Breaking changes
15990

16091
- Bump minimum libvcs from v0.38.6 -> v0.39.0 (#512)
16192

162-
Adds `SyncResult` and various other bug fixes to syncing.
163-
16493
### Features
16594

166-
#### cli(sync): Detect and report errored git syncs (#512)
167-
168-
`vcspull sync` now detects git fetch/pull failures via libvcs's `SyncResult`
169-
and reports them as errors instead of silently succeeding. The sync summary
170-
shows errored repositories alongside successful and failed counts.
95+
#### cli(sync): Detect and report errored syncs (#512)
17196

172-
- Only pass `set_remotes=True` for git repositories (not SVN/HG)
173-
- Include repository identity in sync error messages
97+
`vcspull sync` now reports git fetch/pull failures as errors instead of
98+
silently succeeding. The sync summary shows errored repos alongside
99+
successful and failed counts.
174100

175101
#### cli(sync): Exit non-zero on unmatched patterns with `--exit-on-error` (#512)
176102

177103
When `--exit-on-error` is set and sync patterns match no configured
178104
repositories, `vcspull sync` now exits with a non-zero status code.
179-
Unmatched patterns are tracked separately from sync failures, giving
180-
automation scripts a clear signal about config/pattern problems.
181105

182106
#### cli(sync): Improved sync summary output (#512)
183107

184-
- Track and display unmatched patterns separately from repo totals
108+
- Show unmatched patterns separately from repo totals
185109
- Omit "0 previewed" from non-dry-run summaries
186-
- Suppress unmatched-pattern lines in `--summary-only` mode
187-
- Color the total count in summary output
188110

189111
### Bug fixes
190112

191-
- Fix path-based sync patterns showing `"None"` instead of the actual search
192-
term (#512)
193-
194-
- Downgrade duplicate user-facing unmatched-pattern log message to debug level,
195-
so each pattern is reported only once (#512)
196-
197-
- Emit sync summary even when all patterns are unmatched (#512)
113+
- Fix path-based sync patterns showing `"None"` instead of the actual
114+
search term (#512)
115+
- Fix duplicate unmatched-pattern warnings in output (#512)
116+
- Fix missing sync summary when all patterns are unmatched (#512)
198117

199118
### Tests
200119

201-
- Add errored sync tests: fetch failure, exit-on-error, mixed good/errored,
202-
summary lines, all-fail, and cross-VCS scenarios (#512)
203-
- Add SVN and HG errored sync tests using libvcs factory fixtures (#512)
204-
- Add rev/branch mismatch and ambiguous branch/directory name regression
205-
tests (#512)
206-
- Add unmatched pattern count, duplicate log, and path-pattern "None" message
207-
tests (#512)
208-
- Refactor `test_cli.py` to use `write_config` helper and assert exit codes
209-
consistently (#512)
120+
- Add errored sync, unmatched pattern, and cross-VCS regression tests (#512)
210121

211122
## vcspull v1.51.1 (2026-02-01)
212123

213124
### Tests
214125

215-
- Add syrupy 4.x backwards compatibility for `YamlSnapshotExtension` (#509)
216-
217-
The custom snapshot extension now sets both `_file_extension` (syrupy 4.x API)
218-
and `file_extension` (syrupy 5.x API) to support both versions. This fixes
219-
test failures on systems packaging syrupy 4.6.1, such as Arch Linux (#503).
126+
- Fix snapshot test compatibility with syrupy 4.x (#509, #503)
220127

221128
## vcspull v1.51.0 (2026-01-27)
222129

@@ -226,25 +133,12 @@ automation scripts a clear signal about config/pattern problems.
226133

227134
### Documentation
228135

229-
#### CLI reference pages now have linkable arguments (#502)
230-
231-
Each command-line argument (`--help`, `-v`, `--config`, etc.) in the CLI
232-
reference documentation now has a permalink anchor (¶). You can hover over any
233-
argument to reveal the link, then share direct URLs to specific options.
234-
235-
- Improved metadata display: Default values, types, and "Required" tags are now
236-
styled more clearly
237-
- Help text containing glob patterns like `django-*` no longer triggers
238-
documentation build warnings
239-
- Multiple CLI commands can now appear on the same documentation page without
240-
ID conflicts
136+
- CLI reference arguments now have permalink anchors (#502)
137+
- Fix doc build warnings from glob patterns in help text (#502)
241138

242139
### Bug fixes
243140

244-
#### Improve downstream compatibility in test matrix (#504)
245-
246-
- Refactor syrupy snapshot tests to avoid `name=` parameter which may cause
247-
matching issues in certain build environments, e.g., Arch Linux packaging (#503).
141+
- Fix snapshot test compatibility for downstream packaging (#504, #503)
248142

249143
## vcspull v1.50.1 (2026-01-25)
250144

0 commit comments

Comments
 (0)