@@ -18,7 +18,49 @@ $ uv add libvcs --prerelease allow
1818
1919<!-- Maintainers, insert changes / features for the next release here -->
2020
21- _ Upcoming changes will be written here._
21+ ### New features
22+
23+ #### Async support (#504 )
24+
25+ Add async equivalents for all synchronous APIs, enabling non-blocking VCS operations:
26+
27+ ** Command classes** (` libvcs.cmd._async ` ):
28+
29+ - {class}` ~libvcs.cmd._async.git.AsyncGit ` - async git commands
30+ - {class}` ~libvcs.cmd._async.hg.AsyncHg ` - async mercurial commands
31+ - {class}` ~libvcs.cmd._async.svn.AsyncSvn ` - async subversion commands
32+
33+ ** Sync classes** (` libvcs.sync._async ` ):
34+
35+ - {class}` ~libvcs.sync._async.git.AsyncGitSync ` - async git repository management
36+ - {class}` ~libvcs.sync._async.hg.AsyncHgSync ` - async mercurial repository management
37+ - {class}` ~libvcs.sync._async.svn.AsyncSvnSync ` - async subversion repository management
38+
39+ ** Internal utilities** :
40+
41+ - {func}` ~libvcs._internal.async_run.async_run ` - async command execution with progress callbacks
42+ - {class}` ~libvcs._internal.async_subprocess.AsyncSubprocessCommand ` - async subprocess wrapper
43+
44+ Example usage:
45+
46+ ``` python
47+ import asyncio
48+ from libvcs.sync._async.git import AsyncGitSync
49+
50+ async def main ():
51+ repo = AsyncGitSync(url = " https://github.com/user/repo" , path = " /tmp/repo" )
52+ await repo.obtain() # Clone
53+ await repo.update_repo() # Pull
54+
55+ asyncio.run(main())
56+ ```
57+
58+ ### pytest plugin
59+
60+ #### pytest_plugin: Add async fixtures (#504 )
61+
62+ - Add ` async_git_repo ` , ` async_hg_repo ` , ` async_svn_repo ` fixtures
63+ - Add ` asyncio ` to ` doctest_namespace ` for async doctests
2264
2365### Development
2466
0 commit comments