Skip to content

py(deps) libvcs 0.43.0 -> 0.44.0#556

Merged
tony merged 2 commits into
masterfrom
subprocess-trimming
Jun 21, 2026
Merged

py(deps) libvcs 0.43.0 -> 0.44.0#556
tony merged 2 commits into
masterfrom
subprocess-trimming

Conversation

@tony

@tony tony commented Jun 21, 2026

Copy link
Copy Markdown
Member

Summary

Raise the libvcs floor to v0.44.0 (PyPI release).

libvcs 0.44.0 returns VCS command output verbatim instead of trimming each line. That change lives at libvcs's low-level .run() API; vcspull syncs through the high-level helpers (GitSync / HgSync / SvnSync), which are unaffected — so there are no vcspull code, configuration, or CLI changes.

See libvcs CHANGES: https://libvcs.git-pull.com/history.html#libvcs-0-44-0-2026-06-21

Test plan

  • uv run pytest — full suite passes (1087 passed, 27 snapshots)
  • uv run mypy — clean
  • uv run ruff check . — clean
  • uv run ruff format --check . — clean

@codecov

codecov Bot commented Jun 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.85%. Comparing base (0347015) to head (5c8b285).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #556   +/-   ##
=======================================
  Coverage   83.85%   83.85%           
=======================================
  Files          30       30           
  Lines        4354     4354           
  Branches      873      873           
=======================================
  Hits         3651     3651           
  Misses        467      467           
  Partials      236      236           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

tony added a commit to vcs-python/libvcs that referenced this pull request Jun 21, 2026
Command output is now returned exactly as the VCS printed it. The
runner used to strip every captured line, drop blank lines, and
remove the trailing newline, which corrupted whitespace-significant
output: a captured `git diff` was rejected by `git apply`,
`git cat-file blob` lost indentation and blank lines, and multi-line
errors were concatenated into one run-on line. Output is now
verbatim, with a `trim=True` opt-in for convenient bare-value reads.

Breaking changes:

`.run()` on the Git/Hg/Svn command classes (and the internal runner)
now returns output verbatim instead of trimmed -- the trailing
newline is kept. Pass `trim=True` for the previous bare-value
behavior:

    Before: git.run(["rev-parse", "HEAD"])
    After:  git.run(["rev-parse", "HEAD"], trim=True)

High-level helpers are unaffected: GitSync.get_revision() still
returns a bare revision, and downstream vcspull (which strips
defensively) passes unchanged.

Also in this change:
- trim is forwarded from the git/hg/svn command methods, so the
  opt-in works everywhere, not only the low-level runner.
- Multi-line stderr keeps its line breaks in CommandError.output,
  instead of being concatenated into one run-on line.
- rev_list honors its date-range filters (since/until/after/before/
  max_age/min_age), which were silently dropped.
- ADR 0001 records the decision, measured alternatives, and prior
  art; a changelog entry summarizes the breaking change.

Companion PR: vcs-python/vcspull#556 -- validates the verbatim
default downstream; its suite passes unchanged.
@tony tony force-pushed the subprocess-trimming branch from 969ecea to 5c8b285 Compare June 21, 2026 16:01
@tony tony changed the title Preview: validate against libvcs subprocess-trimming py(deps) libvcs 0.43.0 -> 0.44.0 Jun 21, 2026
@tony tony marked this pull request as ready for review June 21, 2026 16:07
@tony tony merged commit 3406cce into master Jun 21, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant