Breaking changes
`run()` now uses `text=True` (485)
This means that unicode, not bytes, will be used for running `subprocess`
commands in libvcs. If there are any compatibility issues with this, please file
a ticket.
Development
chore: Implement PEP 563 deferred annotation resolution (483)
- Add `from __future__ import annotations` to defer annotation resolution and reduce unnecessary runtime computations during type checking.
- Enable Ruff checks for PEP-compliant annotations:
- [non-pep585-annotation (UP006)](https://docs.astral.sh/ruff/rules/non-pep585-annotation/)
- [non-pep604-annotation (UP007)](https://docs.astral.sh/ruff/rules/non-pep604-annotation/)
For more details on PEP 563, see: https://peps.python.org/pep-0563/