Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #504 +/- ##
==========================================
+ Coverage 58.23% 60.01% +1.77%
==========================================
Files 40 55 +15
Lines 6489 8536 +2047
Branches 1098 1331 +233
==========================================
+ Hits 3779 5123 +1344
- Misses 2177 2743 +566
- Partials 533 670 +137 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. 🤖 Generated with Claude Code |
why: Document async patterns and conventions for contributors. what: - Add async architecture overview (_async/ subpackages) - Add async subprocess patterns (communicate, timeout, BrokenPipeError) - Add async API conventions (naming, callbacks, shared logic) - Add async testing patterns with pytest-asyncio - Add async anti-patterns to avoid
why: Provide async subprocess execution primitives for building async VCS command wrappers. what: - Add async_subprocess.py with AsyncSubprocessCommand class - Add async_run.py with async run() and callback support - Support timeout, check, and streaming output
why: Enable non-blocking VCS command execution for better concurrency. what: - Add AsyncGit with async run(), clone(), fetch(), etc. - Add AsyncHg with async run(), clone(), pull(), etc. - Add AsyncSvn with async run(), checkout(), update(), etc.
why: Enable async repository cloning, updating, and synchronization for concurrent multi-repo operations. what: - Add AsyncGitSync with async obtain(), update_repo(), etc. - Add AsyncHgSync with async obtain(), update_repo(), etc. - Add AsyncSvnSync with async obtain(), update_repo(), etc. - Add shared async base class
what: - Add async_git_repo, async_hg_repo, async_svn_repo fixtures - Add asyncio to doctest_namespace for async doctests - Add conditional pytest_asyncio import
what: - Add AsyncSubprocessCommand tests (run, timeout, concurrent) - Add async run() tests (callbacks, error handling) - Add AsyncProgressCallbackProtocol tests
what: - Add AsyncGit tests (init, clone, status, etc.) - Add AsyncHg tests (init, clone, status, etc.) - Add AsyncSvn tests (checkout, update, status, etc.)
what: - Add AsyncGitSync tests (obtain, update_repo, remotes) - Add AsyncHgSync tests (obtain, update_repo) - Add AsyncSvnSync tests (obtain, update_repo)
what: - Add docs/internals/async_run.md with API reference - Add docs/internals/async_subprocess.md with API reference - Add async modules to internals toctree
what: - Add docs/topics/asyncio.md with patterns and examples - Cover concurrent cloning, progress callbacks, error handling - Add asyncio to topics toctree
why: Document the new async command and sync classes. what: - Add AsyncGit, AsyncHg, AsyncSvn to cmd/index.md - Add AsyncGitSync, AsyncHgSync, AsyncSvnSync to sync/index.md
why: Help users discover and adopt async APIs. what: - Add async section to README with concurrent clone example - Add async quickstart examples with asyncio.run() patterns - Document async pytest fixtures in pytest-plugin guide
why: Required for async test support with pytest. what: - Add pytest-asyncio to dev and testing dependency groups
why: Enable proper async test support with strict mode. what: - Set asyncio_mode = "strict" for explicit async marking - Set asyncio_default_fixture_loop_scope = "function" - Filter pytest-asyncio deprecation warning for loop scope
|
Automated review finding. Recorded here so it is not lost. Nothing has been pushed to this branch and no fix is applied — this is a note, not a change request. Async
|
Summary
AsyncprefixAsyncGit,AsyncHg,AsyncSvncommand classesAsyncGitSync,AsyncHgSync,AsyncSvnSyncsync classesNew APIs
GitAsyncGitHgAsyncHgSvnAsyncSvnGitSyncAsyncGitSyncHgSyncAsyncHgSyncSvnSyncAsyncSvnSyncTest plan