@@ -20,6 +20,50 @@ $ uv add libvcs --prerelease allow
2020_ Notes on the upcoming release will go here._
2121<!-- END PLACEHOLDER - ADD NEW CHANGELOG ENTRIES BELOW THIS LINE -->
2222
23+ ### New features
24+
25+ #### Async support (#504 )
26+
27+ Add async equivalents for all synchronous APIs, enabling non-blocking VCS operations:
28+
29+ ** Command classes** (` libvcs.cmd._async ` ):
30+
31+ - {class}` ~libvcs.cmd._async.git.AsyncGit ` - async git commands
32+ - {class}` ~libvcs.cmd._async.hg.AsyncHg ` - async mercurial commands
33+ - {class}` ~libvcs.cmd._async.svn.AsyncSvn ` - async subversion commands
34+
35+ ** Sync classes** (` libvcs.sync._async ` ):
36+
37+ - {class}` ~libvcs.sync._async.git.AsyncGitSync ` - async git repository management
38+ - {class}` ~libvcs.sync._async.hg.AsyncHgSync ` - async mercurial repository management
39+ - {class}` ~libvcs.sync._async.svn.AsyncSvnSync ` - async subversion repository management
40+
41+ ** Internal utilities** :
42+
43+ - {func}` ~libvcs._internal.async_run.async_run ` - async command execution with progress callbacks
44+ - {class}` ~libvcs._internal.async_subprocess.AsyncSubprocessCommand ` - async subprocess wrapper
45+
46+ Example usage:
47+
48+ ``` python
49+ import asyncio
50+ from libvcs.sync._async.git import AsyncGitSync
51+
52+ async def main ():
53+ repo = AsyncGitSync(url = " https://github.com/user/repo" , path = " /tmp/repo" )
54+ await repo.obtain() # Clone
55+ await repo.update_repo() # Pull
56+
57+ asyncio.run(main())
58+ ```
59+
60+ ### pytest plugin
61+
62+ #### pytest_plugin: Add async fixtures (#504 )
63+
64+ - Add ` async_git_repo ` , ` async_hg_repo ` , ` async_svn_repo ` fixtures
65+ - Add ` asyncio ` to ` doctest_namespace ` for async doctests
66+
2367## libvcs 0.40.0 (2026-04-25)
2468
2569### What's new
0 commit comments