Until now, only linting was enabled. My failure.
I added this setting to widen the code style automation. I also enabled [keep-runtime-typing](https://docs.astral.sh/ruff/settings/#lint_pyupgrade_keep-runtime-typing) because we use Pydantic.
Finally, I executed the new formatting over all the project.
`poe lint` now uses nix if available. Otherwise, it will try to use docker or podman, by downloading the nix image and running pre-commit nix-based from there.
Fixes https://github.com/copier-org/copier/issues/931.
- Provide a dev shell.
- Provide a nix package.
- Provide a nix flake.
- Development environment based on direnv.
- Docs.
- Configure Gitpod to use direnv and nix.
- Configure Cachix out of the box, and document how to use it.
- Add direnv and nix to CI.
- Satisfy some linters that came from Precommix, even when Precommix was later discarded.
- Mark some tests as impure.
- Run only pure tests when building Copier with Nix.
- Add poetry loader to direnv.
- Update contribution guide.
There are small typos in:
- copier/template.py
- copier/user_data.py
- devtasks.py
Fixes:
- Should read `multiline` rather than `mutliline`.
- Should read `descriptive` rather than `descripted`.
- Should read `artefacts` rather than `artefacrts`.
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.
The new `[tool.poe.tasks]` section and new poetry based workflow are a complete
replacement for the makefile which has also been removed. #129
Also:
- add devtasks for python functions to be referenced as poe tasks
- update CONTRIBUTING.MD #154 to keep things coherent
- remove reference to tox
- update ci to work with more expressive toml syntax (upgrade pip)
- and use poe tasks in ci