Opened 12 years ago
Last modified 12 years ago
#19806 new Bug
django_bash_completion clobbers upstream completion of ‘python’
Reported by: | Anders Kaseorg | Owned by: | |
---|---|---|---|
Component: | Core (Management commands) | Version: | 1.4 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | yes | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
extras/django_bash_completion
now tries to complete python manage.py
in addition to ./manage.py
(#12174), but this results in the upstream completion hook for python
being entirely clobbered. For example, the upstream hook completes python -Q
, but this is lost when loading django_bash_completion
:
$ python -Q <TAB> new old warn warnall $ . extras/django_bash_completion $ python -Q <TAB> AUTHORS .git/ LICENSE setup.py CONTRIBUTING.rst .gitattributes MANIFEST.in tests/ django/ .gitignore README.rst .tx/ docs/ .hgignore scripts/ extras/ INSTALL setup.cfg
That seems like a really unfriendly thing to do, especially on Linux distros where merely installing the Django package pulls in django_bash_completion
automatically.
I don’t know of a way to install a completion hook for python manage.py
without clobbering all of python
, so I would propose that the second half of the script (starting at _python_django_completion
) should be deleted entirely. Users who want bash completion can type ./manage.py
or django-admin
instead.
Attachments (2)
Change History (7)
comment:1 by , 12 years ago
Component: | Uncategorized → Core (Management commands) |
---|---|
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → Bug |
comment:2 by , 12 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:3 by , 12 years ago
Owner: | changed from | to
---|
by , 12 years ago
Attachment: | ticket19806.diff added |
---|
comment:4 by , 12 years ago
Has patch: | set |
---|---|
Needs tests: | set |
Owner: | removed |
Status: | assigned → new |
comment:5 by , 12 years ago
Copying the upstream completion for python
is still unfriendly, because the upstream completion might change, and things will break again if any other package wants to extend python
completion. Also, in bash-completion 2, the preferred way to install completions is in /usr/share/bash-completion/completions/command_name
where they are loaded dynamically (rather than all at once at startup), which will break this anyway. This really needs some help from bash-completion upstream. Until that happens, I still recommend that the completion for python manage.py
be removed entirely. For concreteness, I’ll attach that patch below.
by , 10 years ago
Attachment: | Remove-completion-of-python-manage.py.patch added |
---|
Agreed, this is quite unfriendly.