I guess I get to buck the trend :). On 25 October 2013 01:38, Joe Gordon <joe.gord...@gmail.com> wrote: > Since the beginning of OpenStack we have had vim modelines all over the > codebase, but after seeing this patch > https://review.opeenstack.org/#/c/50891/ I took a further look into vim > modelines and think we should remove them. Before going any further, I > should point out these lines don't bother me too much but I figured if we > could get consensus, then we could shrink our codebase by a little bit. > > Sidenote: This discussion is being moved to the mailing list because it > 'would be better to have a mailing list thread about this rather than bits > and pieces of discussion in gerrit' as this change requires multiple > patches. https://review.openstack.org/#/c/51295/.
I don't deeply care about them, but I think the logic being used to promote their removal is flawed. > Why remove them? > > * Modelines aren't supported by default in debian or ubuntu due to security > reasons: https://wiki.python.org/moin/Vim This affects folk who haven't turned it on. We have no idea about how many that is. The presumption is that if it's off by default everyone has it off - but one of the first things most folk end up doing with vim as they head down the path to poweruser is customing their vimrc... > * Having modelines for vim means if someone wants we should support > modelines for emacs > (http://www.gnu.org/software/emacs/manual/html_mono/emacs.html#Specifying-File-Variables) > etc. as well. And having a bunch of headers for different editors in each > file seems like extra overhead. This is a slippery slope argument. We could equally say 'it's up to the editors to support our style declaration, use a vim-compatible plugin in your editor'. We can also say 'we'll directly support the three most common editors' and gather data on that from our developer surveys. (We /do/ gather developer data don't we? :) ). > * There are other ways of making sure tabstop is set correctly for python > files, see https://wiki.python.org/moin/Vim. I am a vIm user myself and > have never used modelines. The other ways won't help folk that > * We have vim modelines in only 828 out of 1213 python files in nova (68%), > so if anyone is using modelines today, then it only works 68% of the time in > nova That seems like a reason to add it to all files to me ;). > * Why have the same config 828 times for one repo alone? This violates the > DRY principle (Don't Repeat Yourself). The same argument applies to copyright licences, .py file suffixes and common imports. I do agree that the repeated unchanging nature of modelines is suboptimal, and it would be nice to be able to define the style hints to vim for an entire subtree. This is probably possible through a little bit of scripting. Since you skipped it, I should add a case for pushing modelines everywhere. *) They help everyone when editing files where the format is less well known than Python (.yaml for instance) or our style guide doesn't match a global document (shell scripts, docbook). *) They help casual contributors *more* than long time core contributors : and those are the folk that are most likely to give up and walk away. Keeping barriers to entry low is an important part of making OpenStack development accessible to new participants. *) We can move them to the very end of the file where ~nobody will see them. *) We can teach hacking to enforce a specific modeline per file type, avoiding accidental mistakes. *) Possibly we can move the copyright licence grants to the end of the files as well, making opening our source code up much more pleasant. Cheers, Rob -- Robert Collins <rbtcoll...@hp.com> Distinguished Technologist HP Converged Cloud _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev