Python 3 project development tools.
Chicken Turtle Project (CTP) provides CLI tools for developing Python 3 projects. It makes it easier to make quality commits and releases, through automating what can be automated and by verifying manual work against quality requirements.
Chicken Turtle Project has been abandoned due to a lack of flexibility, every project is different, at least slighty. Instead, I recommend using a combination of tools, checklists and simple scripts. Chicken Turtle Project will no longer be developed or maintained.
- Fixed:
- ct-mkvenv did not upgrade pip, wheel and setuptools
- git pre-commit hook did not enter venv properly when running tests
- added missing numpy requirement, an optional dependency of networkx
- requirements.in: dependencies on extra requires (e.g.
dependency[extra]
) failed
- Optimised:
- ct-mkvenv reruns are faster
- Added or enhanced:
- when CT_NO_MKPROJECT environment variable is set, ct-mkproject will exit immediately when called.
- --debug option: more detailed messages on stdout.
- minimise changes in setup.py and requirements.txt (by sorting any lists)
- Changed:
- Terser and more readable messages on stdout
- Generate API using autosummary_generate instead of sphinx-apidoc.
- if pip, wheel or setuptools is mentioned in a requirements.in file, it will also appear in requirements.txt, for the rare cases where you need to constrain one of them.
- ct-mkvenv: dependencies no longer installed in the order they are specified in requirements.txt
- Removed:
ct-mkvenv --no-mkproject
: instead, useCT_NO_MKPROJECT=y ct-mkvenv
.
- Changed: user friendlier error messages
- Added:
- project.py::python_version: allows specifying which Python version to use for the venv and testing
ct-mkvenv --no-mkproject
: run without first calling ct-mkproject
- Fixed: the project's package was missing from venv after each commit. The venv wasn't restored properly after a pre-commit.
- Changed: expect tests in
your_pkg.tests
instead ofyour_pkg.test
- Added:
- project.py::package_name: allows package name and PyPI/index name to be different
- project.py::pre_commit_no_ignore: files not to ignore in precommit checks, despite them not being tracked by git.
No changelist