Fixes#613
Based on #627, but:
* Supports both old (`.rej` files) and new (inline markers) conflict behavior
* Update a test to test both rej and inline conflict resolution
* Update some tests to explicitly specify "rej" conflict mode
* Add documentation for the two conflict modes
* keeping only 3-way merge
Co-authored-by: Oleh Prypin <oprypin@users.noreply.github.com>
Co-authored-by:
Thierry Guillemot <tguillemot@users.noreply.github.com>
Co-authored-by: Barry Hart <barry.hart@zoro.com>
Co-authored-by: Jairo Llopis <yajo.sk8@gmail.com>
Co-authored-by: Timothée Mazzucotelli <pawamoy@pm.me>
* docs: add note to docstring
* feat: print spawn logs on failure, and fix failure in test
The test was failing because it turns out that `tui` won't print letters that must not change, when running an interactive TUI.
I changed the error message for something that will force all letters to change. This way it works as expected.
Co-authored-by: Jairo Llopis <yajo.sk8@gmail.com>
A skipped question was not saved by Questionary, so I need to check if the answer is exactly like the question and, in that case, re-render it again.
Docs clarified to avoid false expectations on what should be the answer.
Fixes https://github.com/copier-org/copier/issues/529
In migration scripts, environment variables `$VERSION_FROM`, `$VERSION_CURRENT` and `$VERSION_TO` didn't always get a valid PEP440 version identifier, but the tag. Now we add the PEP440 variants of those variables, autogenerated with dunamai, and these are used instead to sort the versions. This will help comparing template evolution when doing a checkout to an untagged version, or when you happen to add a tag without `v` when the previous one had it. If you want to get the exact commit or version, you can still use the old variables in your scripts, so no backwards incompatibility is introduced. It should remove some false negatives when comparing those version strings.
Fixes https://github.com/copier-org/copier/issues/269.
* fix: Fix unicode error on binary files
If a unicode decode error is raised
while trying to compile a file as a Jinja2 template,
and the templates suffix is empty,
we fallback to copying this file as is.
Fixes#433.
These days, Gitpod supports VSCode workspaces instead of only Theia.
Theia understands settings under `.vscode` as well as under `.theia`, but VSCode only understands settings under `.vscode`. Thus, it seems reasonable to move settings to that new location and then provide a good UX on both local VSCode and Gitpod's.
I also install new tools such as commitizen.
The goal is that just clicking on Gitpod badge, you have a full dev environment ready to hack.
* Refactor
* Fix#110.
* Rewrite test_config_exclude, test_config_exclude_overridden and test_config_include. These tests were badly designed, using a monkeypatch that would never happen in the real world, and actually producing false positives. I moved them to test_exclude.py and rewritten to test the what and not the how.
* Fix#214 by removing skip option. Relevant tests use the better skip_if_exists=["**"].
* Remove subdirectory flag from API/CLI. It was confusing and could lead to bad maintenance situations. Fixes#315.
* Remove extra_paths and fix#321
* Remember that you cannot use _copier_conf.src_path as a path now
* use dataclasses
* Create errors module, simplify some tests, fix many others
* Fix some tests, complete EnvOps removal
* Fix#214 and some tests related to it
* Reorder code
* Update docs and imports
* Modularize test_complex_questions
* Interlink worker and questionary a bit better
* Removal of Questionary class, which only had 1 meaningful method that is now merged into Worker to avoid circular dependencies.
* Fix#280 in a simple way: only user answers are type-casted inside API, and CLI transforms all `--data` using YAML always. Predictable.
* Use prereleases correctly.
* Reorder AnswersMap to have a more significative repr.
* Simpler cache for old `Question.get_choices()` method (renamed now).
* fix wrong test
* Fix test_subdirectory
* Fix test_tasks (and remove tests/demo_tasks)
* Fix path filter tests, and move it to test_exclude, where it belongs
* Make test_config pass
* Fix more wrongly designed tests
* Use cached_property backport if needed
* xfail test known to fail on mac
* force posix paths on windows
* Add typing_extensions for python < 3.8
* Sort dependencies in pyproject.toml
* Support python 3.6 str-to-datetime conversion
* Workaround https://bugs.python.org/issue43095
* xfail test_path_filter on windows
* Upgrade mkdocs and other dependencies to fix https://github.com/pawamoy/mkdocstrings/issues/222
* Add missing reference docs.
* Add workaround for https://github.com/pawamoy/mkdocstrings/pull/209
* Docs.
* Remove validators module
* Add workaround for https://github.com/pawamoy/mkdocstrings/issues/225
* Restore docs autorefs as explained in https://github.com/pawamoy/mkdocstrings/issues/226#issuecomment-775413562.
* Workaround https://github.com/pawamoy/pytkdocs/issues/86