# What changed in jsonpatch

> 18 changes in jsonpatch 1 from its official release notes, upgrade guides and advisories: 4 breaking, 1 security. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/pypi/jsonpatch/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## jsonpatch 1

### Breaking changes

- Rejects moving a location into its own children. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)
- JSON diff comparison no longer treats 1 and True as equal. (1.34) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.34)
- Pointers can no longer index into strings. (1.34) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.34)
- The project supports only currently supported Python versions. (1.34) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.34)

### Security

- Malformed patches and "from": "/-" raise the documented exceptions. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)

### Performance

- Finds moves without rewriting all later operations. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)
- Patch operations are hashed by their op and path. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)

### Behavior and default changes

- Supports whole-document operations on scalar documents. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)
- Compares values using JSON equality. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)

### Fixes and other changes

- Closes the original input before performing an in-place replacement. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)
- List diffing uses sequence alignment to avoid unnecessary replacements and cascading changes. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)
- Handles self-containing values when generating a patch. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)
- Adds support for Python 3.13 and 3.14. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)
- Rejects '-' only when it refers to an array, rather than rejecting it in other contexts. (1.35) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.35)
- Fix operation reindexing for nested paths and other operation reindexing bugs in generated diffs. (1.34) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.34)
- Comparison ordering is deterministic, making JSON diff results consistent. (1.34) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.34)
- Applying patch operations no longer modifies the patch object. (1.34) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.34)
- Handle the whole-document pointer in the sequence branch and fix copying from that pointer. (1.34) — [release notes](https://github.com/stefankoegl/python-json-patch/releases/tag/v1.34)
