pypi / copier
copier
What changed in copier 9, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-31.
1 breaking6 security1 new APIs and options1 behavior and defaults3 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initcopier 912 changes
Breaking changes 1
Trusted prefix matching is restricted for URL paths containing characters outside the unreserved set; other paths require an exact, verbatim match.
Security 6
Argument injection via git subprocess calls is prevented.
Copier has a trust-prefix bypass via path traversal that runs tasks unprompted
Copier
_external_dataallows path traversal and absolute-path local file read without unsafe modeCopier
_subdirectoryallows template root escape via parent-directory traversalCopier safe template has arbitrary filesystem read access via symlinks when _preserve_symlinks: false
Copier safe template has arbitrary filesystem write access via directory symlinks when _preserve_symlinks: true
New APIs and options 1
The ask setting enables opt-in questions.
Behavior and default changes 1
Destination symlinks can now be overwritten when preserve_symlinks is false.
Fixes and other changes 3
Restores support for Git older than 2.43.1.
When a directory containing a symlink is renamed during updating, its symlink targets are kept.
Submodules are resolved from the current checkout's .gitmodules.