dulwich breaking changes
Every breaking API change we have recorded in dulwich on PyPI: 1,878 breaking changes in 3 versions. Below are its newest 3 versions, removals and renames first, each with its source.
Newest change January 17, 2026
On this page
1.0.0
- Removed
The release removes the functions that earlier versions had deprecated. The notes do not name them, so code that still calls deprecated dulwich functions must be checked and updated. github.com - Removed
dulwich.line_ending.get_checkin_filter
Use get_clean_filter instead. pypi.org - Removed
dulwich.line_ending.get_checkin_filter_autocrlf
Use get_clean_filter_autocrlf instead. pypi.org - Removed
dulwich.line_ending.get_checkout_filter
Use get_smudge_filter instead. pypi.org - Removed
dulwich.line_ending.get_checkout_filter_autocrlf
Use get_smudge_filter_autocrlf instead. pypi.org - Removed
dulwich.objects.Commit.extra
Commit.extra was removed in dulwich 1.0.0 pypi.org - Removed
dulwich.objects.parse_commit
dulwich.objects.parse_commit was removed in dulwich 1.0.0 pypi.org - Removed
dulwich.pack.PackIndex.object_index
PackIndex.object_index was removed in dulwich 1.0.0 pypi.org - Removed
dulwich.porcelain.checkout_branch
dulwich.porcelain.checkout_branch was removed in dulwich 1.0.0 pypi.org - Removed
dulwich.repo.BaseRepo.do_commit
BaseRepo.do_commit was removed in dulwich 1.0.0 pypi.org
And 8 more in this version.
0.25.0
- Removed
Python 3.9 is no longer supported; users on Python 3.9 must upgrade their interpreter before using this release. github.com - Removed
dulwich.annotate.BaseObjectStore
dulwich.annotate.BaseObjectStore was removed in dulwich 0.25.0 pypi.org - Removed
dulwich.annotate.Blob
dulwich.annotate.Blob was removed in dulwich 0.25.0 pypi.org - Removed
dulwich.annotate.Commit
dulwich.annotate.Commit was removed in dulwich 0.25.0 pypi.org - Removed
dulwich.annotate.ORDER_DATE
dulwich.annotate.ORDER_DATE was removed in dulwich 0.25.0 pypi.org - Removed
dulwich.annotate.TreeChange
dulwich.annotate.TreeChange was removed in dulwich 0.25.0 pypi.org - Removed
dulwich.annotate.TreeEntry
dulwich.annotate.TreeEntry was removed in dulwich 0.25.0 pypi.org - Removed
dulwich.annotate.Walker
dulwich.annotate.Walker was removed in dulwich 0.25.0 pypi.org - Removed
dulwich.archive.BaseObjectStore
dulwich.archive.BaseObjectStore was removed in dulwich 0.25.0 pypi.org - Removed
dulwich.archive.Tree
dulwich.archive.Tree was removed in dulwich 0.25.0 pypi.org
And 1,723 more in this version.
0.24.0
- Removed
dulwich.cli.parse_commit
dulwich.cli.parse_commit was removed in dulwich 0.24.0 pypi.org - Removed
dulwich.filters.AttributeValue
dulwich.filters.AttributeValue was removed in dulwich 0.24.0 pypi.org - Removed
dulwich.filters.match_path
dulwich.filters.match_path was removed in dulwich 0.24.0 pypi.org - Removed
dulwich.repo.BlobNormalizer
dulwich.repo.BlobNormalizer was removed in dulwich 0.24.0 pypi.org - Removed
dulwich.repo.CommitError
dulwich.repo.CommitError was removed in dulwich 0.24.0 pypi.org - Removed
dulwich.repo.HookError
dulwich.repo.HookError was removed in dulwich 0.24.0 pypi.org - Removed
dulwich.repo.TreeBlobNormalizer
dulwich.repo.TreeBlobNormalizer was removed in dulwich 0.24.0 pypi.org - Renamed
dulwich.filters.Pattern
Use dulwich.line_ending.Pattern instead. pypi.org - Signature changed
dulwich.archive.BaseObjectStore.tree_changes
Was def tree_changes(self, source, target, want_unchanged=False, include_trees=False, change_type_same=False, rename_detector=None); now def tree_changes(self, source, target, want_unchanged=False, include_trees=False... pypi.org - Signature changed
dulwich.bundle.Bundle.prerequisites
Was prerequisites: list[tuple[bytes, str]]; now prerequisites: list[tuple[bytes, bytes]]. pypi.org
And 117 more in this version.
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. A fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous maintenance.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcpCodex, Cursor and any MCP client use https://api.since.dev/mcp.