[Bash-completion-devel] [RFC] Completions location
Ville Skyttä
ville.skytta at iki.fi
Sun Sep 20 21:00:10 UTC 2009
On Sunday 20 September 2009, Guillaume Rousse wrote:
> David Paleino a écrit :
> > Hello,
> > I remember we decided to push all completions to respective upstreams,
> > but didn't decide anything more than that, at the time. -- or it could've
> > been a joke of my mind :)
> >
> > On IRC the discussion was raised by the maintainer of the PLD package. He
> > has a few points, which I believe we already discussed about, with some
> > new features:
> >
> > 1) upstreams won't possibly handle completions like we can -- be it
> > syntactically, stylistically, functionally;
I don't think syntactic or stylistic issues are anything to be concerned
about.
Regarding functionality, I don't think it would be impossible for upstreams to
do practically as good job as we (or even better), but we should make it
easier for them: define a stable well documented API they can count on being
available and not change. This would consist of both functions and completion
snippet dir location stability (perhaps a pkg-config file or something for the
latter would be a good idea).
When completions are included/installed from upstream packages, there is room
for improvements that we can't as easily do, which I believe in the long run
can result in _better_ functionality/performance/end user experience than we
can provide:
- No need to do any have() or trigger games, when installed with rest of the
upstream software, it is known that the completed commands are there.
- No need to keep completion stuff for old versions of the software around nor
try to be careful or do guesses what the commands might look in the future:
just keep it up to date with the released version - it doesn't have to work
with anything else except that. We on the other hand should provide
documented and stable helpers that work regardless of (supported) bash version
and to the extent possible, across operating systems.
> > 2) we would lose maintainance of the completions.
Frankly, I think this would be a good trend ;)
> > Or, if we want to keep
> > it, it would be a nightmare: we would need a $vcs write access for the
> > completion for each software package. A mess.
Nah, these should be exceptional cases. If someone wants to maintain
something upstream, by all means do it, but there should be no actual
requirement for this.
> > 3) bash-completion will rapidly decrease in performance, because of
> > probably poorly written code.
I don't buy this.
> For the last issue, which is to distribute in a single package, and
> activate only when needed, I initially attempted to use triggers too.
> However, we now have 175 various completions in contrib directories,
> meaning 175 * 2 triggers (installation/uninstallation) to maintain,
> keeping track of the various mismatch between package names and
> completion file name. All in all, that's just impossible.
This is surely a bit (yep, a bit, not a lot) of work, but why would it be
impossible? I haven't packaged post 1.0 bash-completion for Fedora but I do
for now intend to continue with the trigger approach. With a few helper
macros I think it's quite manageable, see
http://cvs.fedoraproject.org/viewvc/rpms/bash-completion/devel/bash-
completion.spec?revision=1.42&view=markup
> The intent of the script I recently commited in the project
> (install-completions), is to leverage this problem,
I'll however intend to look into this script as well.
More information about the Bash-completion-devel
mailing list