BREAKING CHANGE
- Updates will overwrite existing files always. If you need to select only some files, just use
git mergetool
orgit difftool
after updating. - Flag
--overwrite/-w
disappeared fromcopier update
. It is now implicit. - To update via API,
overwrite=True
is now required. - The default update conflict mode is now
inline
instead ofrej
. - By default, updates now consider 3 lines of context instead of just 1.
- All CLI calls to Copier must now include the subcommand as the 1st argument. For example,
copier
must become nowcopier update
; alsocopier ./tpl ./dst
must becomecopier copy ./tpl ./dst
. - All flags must go after the subcommand now. For example,
copier -r HEAD update ./dst
must now becomecopier update -r HEAD ./dst
orcopier update ./dst -r HEAD
. - Automatic mode removed. Since now subcommands are required, the automatic mode is removed.
- Deprecated
copier.copy
function is removed. Usecopier.run_copy
,copier.run_update
orcopier.run_recopy
explicitly as needed. - default values must be of the same type than the question.
Feat
- disable unsafe features by default and add
--UNSAFE
switch (#1171) - basic nixpkgs overlay
- add
recopy
command and function - support conditional choices (#1010)
- validate default values (#1075)
Fix
- explain better why an answer casting fails
- cli: display subcommand args meaning
- preserver recursive symlinks
- work around Pydantic bug when parsing choices
- skip validating question and generating its default value when its skip condition is met
Refactor
- overwrite always on updates
- update: default to inline markers and 3 lines of context
- remove unused local overrides to answers