Skip to content

Commit 0620bbf

Browse files
committed
Update changelog
1 parent c33d3e1 commit 0620bbf

3 files changed

Lines changed: 36 additions & 27 deletions

File tree

CHANGELOG.md

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,41 @@
22

33
- Update wheels to libgit2 1.9.7
44

5-
- CI (Linux, macOS, Windows): cache compiled dependencies between wheel
6-
builds, keyed by platform and dependency versions.
7-
8-
- CI (macOS): build architecture-specific OpenSSL/libssh2/libgit2
9-
dependencies instead of universal binaries, producing smaller wheels.
10-
115
- New exception hierarchy: `AlreadyExistsError`, `InvalidSpecError`,
126
`InvalidError`, `NotFoundError`, `AmbiguousError`, `AuthError`, and
137
`CertificateError` all inherit from `GitError` and the appropriate Python
148
built-in exception (`ValueError`/`KeyError`) for backward compatibility
15-
[#830](https://github.com/libgit2/pygit2/issues/830).
16-
17-
- Fix custom ODB and refdb backend callbacks overwriting a pending Python
18-
exception (e.g. `RuntimeError`) with a stale libgit2 error message.
9+
[#830](https://github.com/libgit2/pygit2/issues/830)
1910

2011
- Fix `DiffDelta.is_binary` and `DiffDelta.flags` returning stale values for
2112
deltas obtained from `Diff.deltas`; flags are now loaded lazily
2213
[#962](https://github.com/libgit2/pygit2/issues/962)
23-
[#1100](https://github.com/libgit2/pygit2/pull/1100).
14+
[#1100](https://github.com/libgit2/pygit2/pull/1100)
2415

25-
- Fix invalid oid arguments being silently ignored in `BlobIO`, the
26-
`Reference` constructor, `RefdbBackend.write()`/`delete()`, and custom
27-
`OdbBackend` callbacks; they now raise the appropriate Python exception
28-
instead of producing wrong results, `SystemError`, or crashes
29-
[#1478](https://github.com/libgit2/pygit2/issues/1478).
16+
- Fix `Repository.submodules.get()` and `name in repo.submodules` raising
17+
`AlreadyExistsError` when a repository exists at the submodule path but was
18+
never registered as a submodule; they now return `None` and `False`
19+
respectively as documented
20+
[#1487](https://github.com/libgit2/pygit2/pull/1487)
3021

31-
- Fix potential crash and memory leak in `DiffHunk.lines` and `Patch.hunks`
32-
on allocation or per-item failure
33-
[#1479](https://github.com/libgit2/pygit2/issues/1479).
22+
- Fix `BlobIO` cleanup deadlock on partial reads
23+
[#1488](https://github.com/libgit2/pygit2/issues/1488)
24+
[#1491](https://github.com/libgit2/pygit2/pull/1491)
3425

35-
- Fix memory leaks in `Repository.listall_branches()` and
36-
`Tree.diff_to_index()` on early error paths
37-
[#1480](https://github.com/libgit2/pygit2/issues/1480).
26+
- Fix leaks and crashes in error paths
27+
[#1478](https://github.com/libgit2/pygit2/issues/1478)
28+
[#1479](https://github.com/libgit2/pygit2/issues/1479)
29+
[#1480](https://github.com/libgit2/pygit2/issues/1480)
30+
[#1481](https://github.com/libgit2/pygit2/issues/1481)
3831

39-
- Fix reference leaks in the blob filter stream callbacks and in
40-
`_cache_enums()`
41-
[#1481](https://github.com/libgit2/pygit2/issues/1481).
32+
- Fix custom ODB and refdb backend callbacks overwriting a pending Python
33+
exception (e.g. `RuntimeError`) with a stale libgit2 error message.
34+
35+
- Documentation fixes
36+
[#1490](https://github.com/libgit2/pygit2/pull/1490)
37+
38+
- CI (macOS): build architecture-specific OpenSSL/libssh2/libgit2
39+
dependencies instead of universal binaries, producing smaller wheels.
4240

4341

4442
# 1.20.0 (2026-08-08)

test/test_nonunicode.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,10 @@
4848

4949
@utils.requires_network
5050
@works_in_linux
51-
@pytest.mark.skipif(sys.platform == 'darwin', reason='non-unicode branch names are not supported on macOS')
51+
@pytest.mark.skipif(
52+
sys.platform == 'darwin',
53+
reason='non-unicode branch names are not supported on macOS',
54+
)
5255
def test_nonunicode_branchname(testrepo: Repository, tmp_path: Path) -> None:
5356
folderpath = tmp_path / 'temp_repo_nonutf'
5457
if folderpath.exists():
@@ -64,7 +67,10 @@ def test_nonunicode_branchname(testrepo: Repository, tmp_path: Path) -> None:
6467

6568

6669
@works_in_linux
67-
@pytest.mark.skipif(sys.platform == 'darwin', reason='non-unicode status paths are not supported on macOS')
70+
@pytest.mark.skipif(
71+
sys.platform == 'darwin',
72+
reason='non-unicode status paths are not supported on macOS',
73+
)
6874
def test_nonunicode_status_path(tmp_path: Path) -> None:
6975
repo = pygit2.init_repository(str(tmp_path / 'repo'), bare=False)
7076
path_bytes = 'éléphant'.encode('latin1')

test/test_status.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
2424
# Boston, MA 02110-1301, USA.
2525

26+
import sys
2627
from pathlib import Path
2728

2829
import pytest
@@ -110,6 +111,10 @@ def test_status_file_non_breaking_space(tmp_path: Path) -> None:
110111
assert repo.status_file(path) == FileStatus.INDEX_NEW
111112

112113

114+
@pytest.mark.skipif(
115+
sys.platform == 'darwin',
116+
reason='macOS filesystem normalizes filenames to NFD',
117+
)
113118
@pytest.mark.parametrize(
114119
'path',
115120
[

0 commit comments

Comments
 (0)